首页
Linux常用
docker常用
关于
Search
1
docker安装MDCX
231 阅读
2
麒麟KylinV10离线下载安装包及安装
141 阅读
3
iStoreOS上使用WireGuard
107 阅读
4
UNRAID增加和缩小虚拟机虚拟磁盘大小
52 阅读
5
unraid添加iSCSI 发起程序
39 阅读
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
登录
Search
标签搜索
nginx
unraid
PVE
数据库
dockerfile
同步
wow服务器
装机硬件
宏
v2ray
直通
电视盒子
相册
黑裙7.0.1
远程穿透
定时
ssh
emby
symlink
软链接
奥黛丽·逐爱者
累计撰写
115
篇文章
累计收到
16
条评论
首页
栏目
默认分类
docker
容器安装
Linux
数据库
群辉
软路由
unRAID
PVE
Nginx
wow
杂项
图床
飞牛
转载微信公众号文章
Docker学习
Linux学习
页面
Linux常用
docker常用
关于
搜索到
20
篇与
Linux
的结果
2024-05-16
记Linux新增和挂载磁盘
User:Linux查看挂载盘Kimi:在Linux系统中,查看挂载的磁盘和分区信息可以通过多种命令实现。以下是一些常用的命令:df 命令:df 命令用于显示文件系统的磁盘空间使用情况。默认情况下,它只显示挂载点的磁盘使用百分比和已用/可用空间。df使用 -h 参数可以以人类可读的格式(例如,以 K、M、G 为单位)显示信息:df -hmount 命令:mount 命令不仅可以用于挂载文件系统,还可以列出当前挂载的信息。mount这将列出所有当前挂载的文件系统及其挂载点。lsblk 命令:lsblk 命令列出所有可用的块设备,包括它们的大小、分区、挂载点等信息。lsblk使用 -o 参数可以指定显示的字段,例如:lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINTfdisk 命令:fdisk 是一个磁盘分区表操作工具,也可以用来查看磁盘分区信息。sudo fdisk -l-l 参数列出所有磁盘的分区表,但请注意,这不会显示挂载点信息。findmnt 命令:findmnt 命令用于查找和列出已挂载的文件系统。findmnt它可以显示挂载点、源设备、文件系统类型等信息。/etc/fstab 文件:查看 /etc/fstab 文件可以了解系统启动时应该挂载的文件系统配置。cat /etc/fstab/proc/mounts 文件:这个文件包含了当前系统挂载的所有文件系统的信息。cat /proc/mounts请注意,这个文件的内容会随着系统的挂载和卸载操作实时更新。stat 命令:stat 命令可以显示关于文件或文件系统的信息。stat -f对于文件系统,-f 参数将显示文件系统的设备编号、类型、挂载点等。使用这些命令,您可以获得关于Linux系统中挂载磁盘和分区的详细信息。通常,df 和 mount 是最常用的查看磁盘挂载情况的命令。User:NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTvda 253:0 0 40G 0 disk└─vda1 253:1 0 40G 0 part /vdb 253:16 0 200G 0 diskKimi:您提供的输出来自于 lsblk 命令,它显示了系统中的块设备(通常是硬盘驱动器和分区)的列表。以下是输出中各项指标的解释:NAME:设备名称,如 vda、vda1 等。在虚拟化环境中,vda 通常表示第一个虚拟磁盘。MAJ:MIN:这是设备的主要(MAJ)和次要(MIN)号码。它们是用于在 Unix 和 Linux 系统中唯一标识设备的数字。RM:设备可移动的标记。0 表示设备不是可移动的,1 表示设备是可移动的。SIZE:设备的大小,这里显示为 40G 和 200G,表示 vda 磁盘的总容量为 40GB,而 vdb 磁盘的总容量为 200GB。RO:只读(Read Only)标记。0 表示设备是可读写的,1 表示设备是只读的。TYPE:设备类型,这里 disk 表示这是一个磁盘设备,而 part 表示这是一个分区。MOUNTPOINT:挂载点,显示了设备的挂载位置。/ 表示 vda1 分区已经挂载为根文件系统。从这个输出中,我们可以了解到:存在两个磁盘设备 vda 和 vdb。vda 磁盘的总容量为 40GB,并且它被分为一个分区 vda1,大小也是 40GB。vdb 磁盘的总容量为 200GB,目前没有显示分区信息。vda1 分区已经挂载到根目录 /,这意味着它被用作系统的根文件系统。这个输出没有显示 vdb 磁盘是否有分区或挂载点,如果 vdb 磁盘有分区并且已经挂载,您可以通过运行 lsblk 命令来查看这些信息。如果需要查看所有分区的挂载点,可以使用 df -h 命令。如果需要创建新的分区或挂载点,可以使用 fdisk、parted 或 mkfs 等工具来创建分区,然后使用 mount 命令来挂载分区。User:vdb如何挂给系统使用Kimi:要将 vdb 磁盘挂载给系统使用,您需要执行以下步骤:创建分区(如果需要):如果 vdb 磁盘还没有分区,您可以使用 fdisk 或 parted 命令来创建分区。例如,使用 fdisk 创建一个新分区:sudo fdisk /dev/vdb按照提示操作,创建新分区,写入更改并退出。格式化分区:创建分区后,您需要将其格式化为一个文件系统。例如,使用 mkfs 命令为分区创建一个 ext4 文件系统:sudo mkfs.ext4 /dev/vdb1请将 /dev/vdb1 替换为您的实际分区名称。创建挂载点:选择或创建一个目录,这将作为磁盘的挂载点。例如,创建一个新的目录 /mnt/vdb:sudo mkdir /mnt/vdb挂载分区:使用 mount 命令将分区挂载到您创建的目录:sudo mount /dev/vdb1 /mnt/vdb同样,请确保将 /dev/vdb1 替换为您的分区名称。自动挂载(可选):如果您希望在系统启动时自动挂载这个分区,您需要编辑 /etc/fstab 文件。首先,找到您的分区的 UUID:sudo blkid这将列出所有分区的 UUID。然后,将以下行添加到 /etc/fstab 文件中,将 <UUID> 替换为分区的实际 UUID:UUID=<UUID> /mnt/vdb ext4 defaults 0 2确保使用正确的文件系统类型(如 ext4、xfs 等)替换 ext4。测试挂载:您可以通过将文件复制到挂载点或在挂载点执行命令来测试挂载是否成功。卸载分区:当您完成操作后,不要忘记卸载分区:sudo umount /mnt/vdb请注意,您需要根据您的 Linux 发行版和文件系统选择合适的文件系统类型。另外,确保您对分区和挂载点有足够的了解,并且对命令行操作有一定的熟悉度。如果您不确定,请咨询有经验的系统管理员。User:Welcome to fdisk (util-linux 2.35.2).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.Device does not contain a recognized partition table.Created a new DOS disklabel with disk identifier 0xedca3bc7.Command (m for help):Kimi:您看到的输出来自于 fdisk 工具,它用于管理磁盘分区。根据输出信息,fdisk 检测到 vdb 设备没有包含一个可识别的分区表,并已经为您创建了一个新的 DOS 磁盘标签(disklabel)。DOS 磁盘标签是一种分区表的类型,通常用于 MBR(主引导记录)分区方案。现在,您可以开始在 vdb 设备上创建新的分区。这里是一些基本的 fdisk 命令:n:创建一个新的分区。系统会询问您是要创建主分区(p)、扩展分区(e),还是逻辑分区(l)。对于大多数使用情况,选择创建主分区即可。p:打印分区表,显示现有分区的布局。d:删除一个分区。如果您需要删除已存在的分区,可以使用这个命令。t:更改分区的分区类型。这可以用来设置分区为特定的文件系统类型,如交换空间。w:将更改写入磁盘并退出。所有更改直到执行这个命令才会生效。q:不保存更改并退出 fdisk。如果您想要创建一个新的分区,可以按照以下步骤操作:输入 n 并按回车,选择分区类型(通常是 p 表示主分区)。fdisk 会询问您分区的类型。对于大多数用途,选择主分区即可。接下来,它会询问您分区的起始和结束位置。您可以接受默认值,或者手动输入分区的大小。创建分区后,输入 w 来写入更改并退出 fdisk。退出 fdisk 后,您需要格式化新分区。例如,如果分区是 vdb1,可以使用以下命令为其创建一个 ext4 文件系统:sudo mkfs.ext4 /dev/vdb1最后,您可以将新分区挂载到一个目录并开始使用它:sudo mount /dev/vdb1 /mnt/vdb请记得,创建和格式化分区将会删除分区上的所有数据。确保您已经备份了任何重要数据,或者确保磁盘上没有您需要保留的数据。User:Partition number (1-4, default 1):Kimi:当 fdisk 提示 Partition number (1-4, default 1): 时,它正在询问您想要创建或修改的分区编号。在MBR分区方案中,一个磁盘最多可以有四个主分区,或者三个主分区加一个扩展分区(扩展分区可以进一步分割为多个逻辑分区)。由于您之前收到了消息说 fdisk 已经为您的磁盘创建了一个新的 DOS 磁盘标签,这表明磁盘上还没有任何分区。因此,当提示分区编号时,您通常会输入 1,因为这是您将要创建的第一个分区。如果您只打算创建一个分区,或者您正在修改第一个分区,那么您可以:直接按回车键接受默认值 1。或者输入 1 然后按回车键。接下来,fdisk 会询问您关于分区大小和分区类型的问题。对于大多数情况,您可以接受提示时的默认建议,除非您有特定的分区大小或分区类型需求。以下是您可能遇到的后续提示:分区大小:您可以输入分区的大小,或者使用默认值。分区类型:对于 Linux 系统,通常是 p 表示主分区。分区的文件系统类型:在分区创建并格式化后,您可以选择如 ext4、xfs、ntfs 等文件系统。完成分区创建后,记得使用 w 命令将更改写入磁盘,然后退出 fdisk。之后,您可以格式化分区并将其挂载到文件系统中使用。请谨慎操作,因为对磁盘进行分区和格式化会清除磁盘上的所有数据。确保您已经备份了所有重要数据。User:First sector (2048-419430399, default 2048):Kimi:当 fdisk 命令提示 First sector (2048-419430399, default 2048): 时,它要求您指定新分区的第一个扇区的位置。这个选项允许您定义分区的起始位置,但在大多数情况下,您可以接受默认值。默认值 2048 是一个常见的起始扇区,因为它从磁盘的第一个有效数据扇区开始,跳过了引导扇区,这样可以避免与引导加载程序或MBR(主引导记录)发生冲突。在大多数情况下,接受默认值是一个好习惯,特别是如果您:不需要特定的分区大小或对齐要求。不需要为操作系统引导保留特定的扇区。如果您对分区的起始扇区有特定的需求,或者您正在尝试优化分区性能(例如,使用固态硬盘的特定扇区对齐),您可以输入一个不同的扇区号。要接受默认值,您可以:直接按回车键。或者输入 2048 然后按回车键。完成此步骤后,fdisk 将继续提示您指定分区的最后一个扇区,即分区的大小。您可以为分区指定一个大小,或者如果这是您在磁盘上创建的唯一分区,可以使用默认值让它占据所有剩余空间。请记得,在执行分区操作时,您应该小心谨慎,因为这些操作会清除磁盘上的所有数据。确保您已经备份了所有重要数据,或者确保磁盘上没有您需要保留的数据。User:Created a new partition 1 of type 'Linux' and of size 200 GiB.Command (m for help):Kimi:您已经成功创建了一个新的分区,类型为 'Linux',大小为 200 GiB。在 fdisk 提示 Command (m for help): 时,您现在有几个选择:完成分区并写入更改:如果您已经满意分区的设置,可以输入 w 来写入更改并退出 fdisk。这将把分区表写入磁盘,所有更改将生效。查看分区信息:输入 p 可以打印出当前分区表的概览,包括分区编号、起始扇区、大小和分区类型。继续创建更多分区:如果您想要在同一个磁盘上创建更多分区,可以继续输入 n 来创建新的分区。由于您已经创建了一个主分区,您可能需要创建扩展分区或逻辑分区,具体取决于您的需求。删除分区:如果新创建的分区是一个错误,或者您想要重新配置分区,可以使用 d 来删除分区,然后重新创建它。退出不保存:如果您不想保存对分区表的更改,可以输入 q 退出 fdisk 而不写入更改。获取帮助:输入 m 可以获取帮助信息,列出所有可用的 fdisk 命令。在写入分区表后,您需要格式化新分区并创建一个挂载点才能使用它。以下是完成分区后的步骤:格式化分区:退出 fdisk 后,确定分区的设备名称(通常是 /dev/vdb1,取决于磁盘和分区编号)。然后使用 mkfs 命令为分区创建一个文件系统:sudo mkfs.ext4 /dev/vdb1创建挂载点:创建一个目录来作为新分区的挂载点:sudo mkdir /mnt/mydisk挂载分区:使用 mount 命令将新分区挂载到您创建的目录:sudo mount /dev/vdb1 /mnt/mydisk自动挂载:为了让分区在系统启动时自动挂载,您需要编辑 /etc/fstab 文件,并添加一行配置,指定分区的 UUID、挂载点以及文件系统类型:UUID=<您的分区UUID> /mnt/mydisk ext4 defaults 0 2您可以使用 blkid 命令获取分区的 UUID。请记得,在执行分区和格式化操作时,您应该小心谨慎,因为这些操作会清除分区上的所有数据。确保您已经备份了所有重要数据。 {lamp/}
2024年05月16日
9 阅读
0 评论
0 点赞
2024-05-16
常用命令
{collapse}{collapse-item label="Nginx常用操作命令" open}# 查看 Nginx 版本 /usr/local/nginx/sbin/nginx -v # 检查配置文件 ngnix.conf 的正确性 /usr/local/nginx/sbin/nginx -t # 启动 Nginx 服务 /usr/local/nginx/sbin/nginx # 启动 Nginx 服务,-c 指定配置文件的路径 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf # 重新加载配置 /usr/local/nginx/sbin/nginx -s reload # 停止 Nginx 服务(快速关闭,不管有没有正在处理的请求) /usr/local/nginx/sbin/nginx -s stop # 安全退出 Nginx 服务(在退出前会完成已经接受的连接请求,比较优雅) /usr/local/nginx/sbin/nginx -s quit{/collapse-item}{collapse-item label="查看top前十"}ps aux --sort=-%mem | head{/collapse-item}{collapse-item label="查看tomcat/其它 进程"}ps -ef | grep tomcat{/collapse-item}{collapse-item label="杀死进程"}kill -9 进程号 #多的话全kill了 kill -9 `ps -ef|grep tomcat|grep -v grep|awk '{print $2}'`{/collapse-item}{/collapse}{lamp/}{timeline}{timeline-item color="#19be6b"}#设置开机自启动 systemctl enable tomcat.service #停止开机自启动 systemctl disable tomcat.service #启动Tomcat服务 systemctl start tomcat.service #查看服务当前状态 systemctl status tomcat.service #重新启动服务 systemctl restart tomcat.service #查看所有已启动的服务 systemctl list-units --type=service{/timeline-item}{timeline-item color="#19be6b"}{card-describe title="卡片描述"}#设置开机自启动 systemctl enable tomcat.service #停止开机自启动 systemctl disable tomcat.service #启动Tomcat服务 systemctl start tomcat.service #查看服务当前状态 systemctl status tomcat.service #重新启动服务 systemctl restart tomcat.service #查看所有已启动的服务 systemctl list-units --type=service{/card-describe}{/timeline-item}{timeline-item color="#19be6b"}标注{callout color="#f0ad4e"}#设置开机自启动 systemctl enable tomcat.service #停止开机自启动 systemctl disable tomcat.service #启动Tomcat服务 systemctl start tomcat.service #查看服务当前状态 systemctl status tomcat.service #重新启动服务 systemctl restart tomcat.service #查看所有已启动的服务 systemctl list-units --type=service{/callout}{/timeline}开始插入折叠面板{collapse}{collapse-item label="centos离线安装htop" open}{timeline}{timeline-item color="#19be6b"}{card-describe title="源码安装"} 1、下载 htop 源码包wget https://hisham.hm/htop/releases/2.2.0/htop-2.2.0.tar.gz2、解压源码包:tar -zxvf htop-2.2.0.tar.gz3、进入源码目录:cd htop-2.2.0/4、配置编译选项:./configure --prefix=/usr/local这里使用 --prefix 指定了安装目录,您也可以根据需要修改为其他路径。 5、编译源代码:make6、安装sudo make install{/card-describe}{card-describe title="RPM包安装"} #### 下载 htop 的 RPM 包: 您可以从 EPEL 存储库的官方网站或其他可信的软件源下载 htop 的 RPM 包。 #### 安装 RPM 包:sudo rpm -ivh htop-2.2.0-3.el7.x86_64.rpm请将 htop-2.2.0-3.el7.x86_64.rpm 替换为您下载的 RPM 包的实际文件名。{/card-describe}{/timeline-item}{timeline-item color="#19be6b"}{card-default label="默认卡片" width="100%"}12123{/card-default}{/timeline-item}{timeline-item color="#19be6b"} 正式上线{/timeline-item}{timeline-item color="#ed4014"} 删库跑路{/timeline-item}{/timeline}{/collapse-item}
2024年05月16日
3 阅读
0 评论
0 点赞
2024-05-15
Nginx日志切割
{collapse}{collapse-item label="logrotate配置分割" open}logrotate简单介绍logrotate 是一个 Linux系统日志的管理工具。可以对单个日志文件或者某个目录下的文件按时间 / 大小进行切割,压缩操作;指定日志保存数量;还可以在切割之后运行自定义命令。下面命令可以查看是否安装了logrotate --version/etc/logrotate.conf 是主配置文件, /etc/logrotate.d 文件夹下面是自定义的配置文件新增切割nginx日志的配置文件在 /etc/logrotate.d 目录下新增nginx文件 nano nginx_log 写入下面内容(我的日志文件目录是/usr/local/nginx/logs/)/usr/local/nginx/logs/ /usr/local/nginx/logs/*.log { daily # 按天分割 rotate 30 create sharedscripts # 所有的文件切割之后只执行一次下面脚本,通知nginx重新打开新的日志文件进行后续写入 postrotate if [ -f /usr/local/nginx/logs/nginx.pid ]; then kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` # 通过USER1信号通知nginx重新打开日志文件 fi endscript }如果报错则删掉注释这样就会每天定时分割日志了也可以手动执行命令测试一下能否正常分割日志logrotate -f /etc/logrotate.d/nginx修正配置文件后,您需要通知 logrotate 重新读取配置文件,或者重新启动 logrotate 服务。在大多数Linux系统中,您可以使用以下命令来重新启动 logrotate:sudo service logrotate restart或者,如果您使用的是基于systemd的系统,可以使用:sudo systemctl restart logrotate又或者logrotate是属于rsyslog里的其中一个服务重启的方法: CentOS6命令:service rsyslog restart CentOS7命令:systemctl restart rsyslog 另外,可以手动执行分隔命令进行测试【以nginx的为例】 logrotate -f /etc/logrotate.d/nginx确保您的 logrotate 配置文件格式正确,并且没有语法错误。您可以通过运行 logrotate -d /etc/logrotate.d/nginx_log 来测试配置文件,而不实际执行轮换,-d 参数可以输出 logrotate 执行时的调试信息。在修改配置文件并重新启动 logrotate 服务之后,错误应该不会再出现,日志文件将按照新的配置进行管理。{card-describe title="描述"}从您提供的输出信息来看,您使用了 logrotate -d /etc/logrotate.d/nginx_log 命令来以调试模式运行 logrotate,这个命令不会实际执行日志的轮换,而只是打印出它将会执行的操作。调试模式下的输出显示了以下信息:logrotate 正在读取配置文件 /etc/logrotate.d/nginx_log。logrotate 正在考虑轮换位于 /usr/local/nginx/logs/ 目录下的日志文件,具体是匹配 /usr/local/nginx/logs/*.log 的所有文件。对于每个日志文件,logrotate 检查是否满足轮换条件。在这个例子中,配置似乎是每天轮换一次日志(after 1 days (30 rotations)),意味着每天都会执行轮换。logrotate 检查了 access.log 和 error.log 文件,并且发现它们在 2024-05-15 08:30 已经被轮换过,因此它们不需要再次轮换,因为还没有到下一次轮换的时间(即还没有过去一整天)。由于没有日志文件满足轮换条件,logrotate 没有执行 postrotate 脚本。如果您希望 logrotate 实际执行轮换操作,而不是仅仅以调试模式运行,您应该使用 -v 参数(verbose,详细模式)来获取详细的输出,但不会更改实际的行为。例如:logrotate -v /etc/logrotate.d/nginx_log{/collapse-item}{collapse-item label="定时任务执行分割脚本"}创建一个sh文件,写入以下内容(个别内容根据自己nginx的情况修改)我这里的文件为 /usr/local/nginx/log_bak.sh#/bin/bash yesterday=$(date +%Y-%m-%d) #取得服务器当前时间 savepath_log=' /var/log/nginx_bak'#分割后的日志文件保存目录(注意结尾目录斜杠去掉) nglogs='/usr/local/nginx/logs' #nginx日志文件目录,具体根据实际地址替换(结尾目录斜杠去掉 以免与下面路径中的"/"重复) #判断分割日志保存目录是否存在不存在则创建 if [ ! -d ${savepath_log} ] # 注意 语句之间 空格不可省略,这是bash脚本 不是php脚本那样随和 then mkdir -p ${savepath_log} fi #通过mv命令将日志移动到分割后的日志目录里,然后发送kill -USR1信号给Nginx的主进程号,让Nginx重新生成一个新的日志文件。 mv ${nglogs}/access.log ${savepath_log}/access_${yesterday}.log #具体根据你的实际日志文件名路径 进行修改access.log名字 mv ${nglogs}/error.log ${savepath_log}/error_${yesterday}.log #具体根据实际日志文件名地址 修改error.log名字 mv ${nglogs}/host.access.log ${savepath_log}/host.access_${yesterday}.log kill -USR1 $(cat /usr/local/nginx/logs/nginx.pid) #通知nginx重新生成新的日志添加定时任务crontab -e #后添加下面内容 59 23 * * * /usr/local/nginx/log_bak.sh(自己写的脚本的路径)这样每天的23点59就会将当天的日志进行备份,并生成新的日志文件继续记录访问日志{/collapse-item}{collapse-item label="手动切割日志"}如果您更喜欢手动管理日志,或者没有使用 logrotate,您可以编写一个自定义的脚本来切割 NGINX 日志。这个脚本可以运行 gzip 来压缩旧的日志文件,然后创建一个新的日志文件。#!/bin/bash gzip /var/log/nginx/access.log gzip /var/log/nginx/error.log touch /var/log/nginx/access.log touch /var/log/nginx/error.log chown www-data:adm /var/log/nginx/access.log /var/log/nginx/error.log路径以实际为准。{/collapse-item}{collapse-item label="docker-compose设置日志"}使用 Docker Compose 配置日志对于使用 Docker Compose 管理的应用,可以在 docker-compose.yml 文件中配置日志选项:version: '3.8' services: web: image: nginx logging: driver: "json-file" options: max-size: "10m" max-file: "3"Nginx日志文件:Nginx默认只生成两个日志文件:access.log(访问日志)和error.log(错误日志)。在docker-compose配置中,Nginx的日志通过logging选项限制了大小和数量(max-size: "5m"和max-file: "2"),因此日志文件会被轮转并保留最多2个。{/collapse-item}{/collapse}
2024年05月15日
5 阅读
0 评论
0 点赞
2024-05-14
tomcat日志切割
{collapse}{collapse-item label="源码安装方式" open}进入 tomcat bin目录下新建sh脚本[root@iZon201ihvpnoi2e3ftkphZ bin]# nano cut_log.sh填写:#!/bin/bash cd `dirname $0` DATE=`date +%Y-%m-%d` DATE30=`date -d '30 days ago' +%Y-%m-%d` cd /usr/local/tomcat/apache-tomcat-9.0.88/logs/ ls others >/dev/null 2>&1 if [ $? != 0 ];then mkdir others fi find . -type f -mtime +30 -exec rm -f {} \; cp catalina.out catalina.out.${DATE} echo "" > catalina.out给个权限 执行一下~chmod +x cut_log.sh看看日志,成功~设置定时任务crontab -e 50 23 * * * /usr/local/tomcat/apache-tomcat-9.0.88/bin/cut_log.sh #23点50分执行此脚本[root@iZon201ihvpnoi2e3ftkphZ bin]# crontab -l */5 * * * * /root/sync_sh/lssj.sh 55 23 * * * /usr/local/tomcat/apache-tomcat-9.0.88/bin/cut_log.sh [root@iZon201ihvpnoi2e3ftkphZ bin]#{/collapse-item}{collapse-item label="docker安装方式"}Tomcat日志文件:Tomcat的日志分为多种类型,每种类型都有独立的文件:Catalina日志:记录Tomcat容器的启动、停止和运行状态(如catalina.2025-06-17.log)。Host-manager/Manager日志:记录Tomcat管理界面的操作(如host-manager.2025-06-17.log和manager.2025-06-17.log)。Localhost日志:记录应用程序的调试或错误信息(如localhost.2025-06-17.log)。Access日志:记录HTTP请求的详细信息(如localhost_access_log.2025-08-05.txt)。Access日志数量多的原因:Tomcat的AccessLogValve默认配置会按日期和文件大小分割日志。例如,每天生成一个新的日志文件,或者当文件达到一定大小时分割。如果没有明确配置分割规则,可能会频繁生成新文件(例如按小时或请求量分割),导致文件数量较多。如何控制Tomcat的Access日志数量?如果需要减少Tomcat的访问日志文件数量,可以修改Tomcat的conf/server.xml文件中的AccessLogValve配置。例如:<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" fileDateFormat="yyyy-MM-dd" rotatable="true" maxDays="7"/> <!-- 保留最近7天的日志 -->通过maxDays参数可以限制日志文件的保留天数,从而减少文件数量。{/collapse-item}{/collapse}
2024年05月14日
10 阅读
0 评论
0 点赞
2024-05-09
Windows部署CwRsyncServer实现Linux下文件同步到WindowsServer服务器
场景描述需要将Linux服务器某个目录下的所有文件定期同步到WindowsServer2022服务器上在Windows Server 2022服务器上先安装部署cwRsyncServer1、下载CwRsyncServer V4.1.0 以管理员身份运行进行安装CwRsyncServer_V4.1.0_XiTongZhiJia.zip2、系统自动创建用户SvcCWRSYNC,无需修改用户名,修改好密码并记住,然后直接默认安装安装过程会给系统创建用户,让防护软件放行。3、呼出系统服务,属性-服务启动设置为自动-登入账号密码为刚刚安装时默认账号和修改的密码。我反复装了好几次,最后成功的一次是使用默认账号和修改的密码登入。所以觉得前几次的坑都是这里没有使用默认账号导致客户端连不上来。4、修改配置!!! C:\Program Files (x86)\ICW目录下修改rsyncd.confuid = 0 gid = 0 use chroot = false strict modes = false #这里↓如果只允许某一个机器访问的话,可以填写IP地址 hosts allow = * log file = rsyncd.log pid file = rsyncd.pid #端口↓默认是873 port = 873 #允许的最大连接数↓ max connections = 4 # Module definitions # Remember cygwin naming conventions : c:work becomes /cygwin/c/work # 模块↓ [backup] #路径↓这个是需要同步的文件位置,Windows目录的写法,应该按照POSIX风格来写, #默认配置文件的写法cygwin貌似不工作,而要写成cygdrive,如D:/data,要写成/cygdrive/d/data。 path = /cygdrive/c/ftp #只读或者读写↓read only = true 表示客户端只能下载服务端的文件而不能上传(单向同步).如果有上传需要,设置read only = false 即可. read only = false transfer logging = yes lock file = rsyncd.lock #下方↓secrets file密码文件中的用户名 auth users = cwrsync #密码文件存放的路径↓ secrets file = etc/cwrsync.passwd{card-describe title="配置详细描述"}这个 rsyncd.conf 文件是 rsync 守护进程的配置文件,用于定义 rsync 服务器的行为和模块。下面是对配置文件中各项设置的解析:uid = 0:这指定了 rsync 服务运行的用户的ID。在这里,0 是 root 用户的ID,意味着 rsync 服务将以 root 用户权限运行。gid = 0:这指定了 rsync 服务运行的组的ID。0 通常对应于 root 组。use chroot = false:这个设置禁用了 chroot 功能,chroot 是一种安全措施,可以将 rsync 进程限制在特定的目录结构中,防止它访问文件系统的其他部分。strict modes = false:这禁用了严格模式,允许 rsync 与具有不同权限的文件进行交互,而不会报错。hosts allow = *:这允许任何客户端连接到 rsync 服务器。在生产环境中,出于安全考虑,通常会指定特定的IP地址或IP范围。log file = rsyncd.log:这指定了 rsync 服务的日志文件名。pid file = rsyncd.pid:这指定了 rsync 服务的进程ID文件名,用于记录 rsync 服务的进程ID。port = 873:这指定了 rsync 服务监听的端口号,这里是 873。max connections = 4:这指定了 rsync 服务允许的最大连接数,这里是 4。接下来是模块定义部分:[backup]:这是模块的名称,客户端将使用这个名称来访问同步的内容。path = /cygdrive/c/ftp:这指定了模块的路径,即远程服务器上同步文件存放的目录。read only = false:这指定了模块不是只读的,客户端可以向该模块写入文件。transfer logging = yes:这指定了开启传输日志记录。lock file = rsyncd.lock:这指定了 rsync 服务使用的锁文件,用于同步过程中的并发控制。auth users = cwrsync:这指定了允许认证并使用该模块的用户列表,这里是 cwrsync 用户。secrets file = etc/cwrsync.passwd:这指定了包含用户认证信息的密码文件,这里是 /etc/cwrsync.passwd 文件。综上所述,这个配置文件定义了一个 rsync 服务器,允许用户 cwrsync 通过端口 873 访问 backup 模块,并且可以进行读写操作。服务器将记录所有传输活动到 rsyncd.log 文件,并且会使用 rsyncd.pid 文件记录进程ID。同时,服务器将使用 /etc/cwrsync.passwd 文件来验证连接的用户。{/card-describe}uid = 0 gid = 0 记得加上,解决@ERROR: invalid gid nobody报错问题5、在 C:\Program Files (x86)\ICW\etc 目录下创建cwrsync.passwd密码文件cwrsync:123456还要设置好权限6、添加cwRsyncServer 873端口的入站防火墙规则 放通入方向的873端口7、然后启动RsyncServer服务Linux端部署rsync客户端并测试Linux端的rsync部署就百度吧。一般默认都会带吧~同步命令:#linux>windows rsync --progress -avz --delete /home/ixjkj/sync* cwrsync@192.168.0.111::backup #windows>linux rsync --progress -avz --delete cwrsync@192.168.0.111::backup /home/ixjkj/sync*{card-describe title="同步命令详细描述"}这条 rsync 命令用于同步本地目录 /home/ixjkj/sync 下的文件到远程服务器上的 backup 模块。下面是命令的详细解析:rsync:是命令的名称,用于文件同步和传输。--progress:显示文件传输过程中的进度信息。-a(archive):归档模式,该选项通常用于备份,它会保留文件的权限、时间戳、软硬链接以及文件模式。-v(verbose):详细模式,增加输出的详细程度,可以显示处理的文件信息。-z(compress):压缩模式,在传输过程中压缩数据,以加快传输速度,节省带宽。--delete:在同步完成后,删除目标位置中本地不存在的文件,使得源和目标目录保持完全一致。/home/ixjkj/sync*:指定本地同步的文件或目录,星号(*)是一个通配符,匹配所有的文件和目录。cwrsync@192.168.0.111:指定远程服务器的用户名和地址。在这个例子中,用户名是 cwrsync,服务器的IP地址是 192.168.0.111。::backup:指定远程服务器上的模块名。rsync 支持模块化配置,backup 是在远程服务器的 rsync 配置文件中定义的一个模块。综上所述,该命令的作用是:从本地的 /home/ixjkj/sync 目录同步所有文件和子目录到远程服务器(192.168.0.111)上定义的 backup 模块。传输过程中显示进度,并且提供详细的输出。数据在传输时会被压缩。归档模式确保同步时保留原始文件的所有属性。同步后,远程服务器上 backup 模块中本地不存在的文件将被删除。在执行此命令之前,需要确保:远程服务器上已经配置了 rsync 服务,并且 backup 模块已经定义在 rsyncd.conf 文件中。本地用户具有访问远程服务器的权限,并且知道正确的用户名和密码或拥有相应的私钥进行认证。端口22(SSH默认端口)在服务器上是开放的,除非 rsync 服务配置了使用其他端口。注意:在实际使用中,根据具体环境和需求,可能需要对命令进行调整。{/card-describe}编写脚本,利用crontab实现定时同步1、新建和编辑一个cwrsync.sh文件nano /home/ixjkj/cwrsync.sh填入后保存#!/bin/bash rsync --progress -avz --delete cwrsync@192.168.0.111::backup /home/ixjkj/sync* >/dev/null 2>&1给执行权限chmod 755 /home/ixjkj/cwrsync.sh2、利用crontab实现定时同步crontab定义* * * * * - - - - - | | | | | | | | | +----- 星期中星期几 (0 - 6) (星期天 为0) | | | +---------- 月份 (1 - 12) | | +--------------- 一个月中的第几天 (1 - 31) | +-------------------- 小时 (0 - 23) +------------------------- 分钟 (0 - 59)crontab -e #例如每5钟同步一次 */5 * * * * /home/ixjkj/cwrsync.sh crontab -l查看服务端日志,5分钟一次linux中重启rsync服务使用root用户或具有sudo权限的用户登录到Linux系统。 打开终端或命令行界面。 停止rsync服务:sudo systemctl stop rsync.service 等待一段时间,确保rsync服务已停止。 启动rsync服务:sudo systemctl start rsync.service 检查rsync服务是否已经启动:sudo systemctl status rsync.service按参考 部署CwRsyncServer实现Linux下文件同步到WindowsServer服务器 rsync,从零开始Nas备份 {collapse}{collapse-item label="Linux客户端传到Windows服务端" open}rsync --progress -avz --delete --itemize-changes --log-file=/var/log/rsynclog/rsync.log --log-file-format='%t %f %b' /home/ixjkj/sync cwrsync@192.168.0.111::backup这条 rsync 命令用于将本地的 /home/ixjkj/sync 目录同步到远程服务器上的 backup 模块,并且包含了一些控制日志记录和同步行为的选项。下面是对命令中每个参数的解释:rsync:命令的名称,用于文件同步和传输。--progress:显示文件传输进度。-avz:-a:归档模式,递归地复制文件并保持大部分文件属性,如权限、时间戳、软硬链接等。-v:详细模式,提供更详细的输出。-z:压缩模式,在传输过程中压缩数据,以加快传输速度。--delete:在同步后删除远程 backup 模块中本地 /home/ixjkj/sync 目录不存在的文件。--itemize-changes:为所有更新显示变化摘要。--log-file=/var/log/rsynclog/rsync.log:将 rsync 的日志输出到指定的 /var/log/rsynclog/rsync.log 文件。--log-file-format='%t %f %b':为日志文件指定格式,其中 %t 表示时间戳,%f 表示文件名,%b 表示文件大小(以字节为单位)。/home/ixjkj/sync:本地的源目录,即该目录将被同步到远程的 backup 模块。cwrsync@192.168.0.111::backup:指定远程服务器的用户名 cwrsync,IP 地址 192.168.0.111,以及 rsync 守护进程上配置的模块名 backup。综上所述,该命令的作用是:将本地的 /home/ixjkj/sync 目录同步到远程服务器(192.168.0.111)上的 backup 模块。显示文件传输的进度。同步时保持文件的权限、时间戳和链接,并进行数据压缩。同步结束后,删除远程模块中本地不存在的文件。记录所有变化的详细摘要到日志文件。使用指定的格式将日志信息记录到 /var/log/rsynclog/rsync.log。在执行该命令之前,请确保:远程服务器的 rsync 服务已经配置了 backup 模块,并且正在运行。用户 cwrsync 有权限访问远程服务器上的 backup 模块。本地用户有权限读取 /home/ixjkj/sync 目录的内容,以及写入 /var/log/rsynclog/ 目录(如果该目录不存在,需要先创建它)。确保网络连接稳定,以避免因超时导致同步中断。注意:命令中的 --progress 选项在某些 rsync 版本中可能已被 --progress 替代,但两者在功能上是等效的。{/collapse-item}{/collapse}
2024年05月09日
3 阅读
0 评论
0 点赞
1
2
3
4