linux crontab定时任务迁移日志

文章目录

    • 场景
    • 解决方案
      • 使用脚本过程
      • 如果要清空日志

场景

需要定时将日志迁移到挂载点。

解决方案

linux 自带这个功能的,crontab。
crontab -e 编辑定时任务。
1、脚本简单的话直接在定时任务里面编辑即可。
2、脚本复杂的话,可以引入可执行文件,我这里用引入sh文件。

使用脚本过程

# 编辑脚本文件
vim /root/lognas_transfer.sh ;
# 添加文件头,然后保存
输入: #!/bin/bash
# 授权 一定别忘了授权,因为新文件是没有执行权限的
chmod 755 /root/lognas_transfer.sh;
# chmod -x 授权加不上,原因未知
# chmod -x /root/lognas_transfer.sh;

# cronttab -e 定时任务中指定每天2点执行脚本文件
00 02 * * * /root/lognas_transfer.sh # 每天2点执行一次

# 编辑lognas_transfer.sh,输入逻辑
# 修改时间3天以上的,剪切到目录(mv命令不要加-r)
find /root -mtime +3 -name "*.log" -exec mv -f {} /root/logs \;


# 修改时间3天以上的,删除掉
find /root -mtime +3 -name "*.log" -exec rm -rf {} \;

如果要清空日志

删除和迁移是一回事,清空语法有点不一样,如下两种都是可以的:

find /data -type f -name  "nohup.out" -exec bash -c 'echo 1 > $1'  _ {} \;
find /data -type f -name  "nohup.out" -print | xargs -n1 -i  bash -c 'echo 1 > $1' _ {};

你可能感兴趣的:(linux,linux,bash,运维)