Linux 定时任务shell脚本定时移动服务器日志文件到指定目录下

我们业务在生产服务器运行,产生许多日志文件,磁盘空间有限,需要经常 手动清理,现在通过linux的crond服务实现,自动移动日志到指定目录。

1.使用vi命令创建一个脚本文件(我是在home目录下创建的):
vi mvlog.sh
输入

#! /bin/sh
find /home/opt/services/logs/ -name "*.log*" -exec mv {
    
    } /home/testbackup \;

这段命令的意思是,找到 /home/opt/services/logs/ 目录下 名字 是*.log* 的文件 移动到 /home/testbackup 目录下。
也可以加上 -mtime +3 这种方式设置当前时间前4天的文件,如下

#! /bin/sh
find /home/opt/services/logs/ -mtime +3 -name "*.log*" -exec mv {
    
    } /home/testbackup \;

需要注意的是最后的目录名字 和 \ 之间一定要有一个空格 。否则会出现 find: 遗漏”-exec”的参数 这个错误。

2.保存退出,然后可以通过sh来执行脚本,具体的命令是:
sh /home/mvlog.sh 查看下是否能够成功。

3.检查服务器是否有crond服务,命令:
service crond status

正常返回:crond (pid 30084) 正在运行…

如果没有正常返回:需要安装一下,命令如下
yum -y install vixie-cron
yum -y install crontabs

启动命令:
service crond start
停止命令:
service crond stop
重启命令:
service crond restart

4.设置定时任务,命令:
crontab -e
输入:

*/2 * * * * /bin/sh /home/mvlog.sh 

这里设置的是每2分钟执行一次。

* * * * * 命令。。。。
每个*对应的取值范围分别是:
0-59 分钟,0-23小时,1-31日,1-12月,0-7星期几。

更详细解释详情:Linux crond定时任务时间说明
5.wq保存退出,然后重启服务,命令:
service crond restart。

注意:如果操作过过程中有提示权限的问题,记得时候root 权限,给文件开放权限。

猜你喜欢

转载自blog.csdn.net/Better000/article/details/106472359