Linux-crontab-shell 定时清理日志文件

1、日志目录及格式

比如日志文件存放目录在/usr/app/log 

日志文件格式 :

2020-03-01.log

2020-03-02.log

2020-03-03.log

2020-03-04.log

2020-03-05.log

2020-03-06.log

2、根据需求新建shell脚本

在该目录下新建autoCleanLog.sh

searchPath=/usr/app/log

cd ${searchPath}

declare -i total=`ls *.log | wc -l`

declare -i nums=$total-7

if [ "${nums}" -ge 1 ];then

    rm -rf `ls -tr *.log | head -${nums}`

fi

如上。只保留最近7天的日志文件

或者 find /usr/log -mtime +15 -name "*2020*" -exec rm -rf {} \;

chmod +x autoCleanLog.sh   赋予脚本可执行权限

3、crontab 因为是Linux自带的。所以不需要按照

service crond status  查看当前状态

crond (pid  80728) is running...

此时说明cron 服务已经启动 占据pid为80728

--如果cron服务未启动

/sbin/service crond start       //启动

/sbin/service crond stop     // 停止

/sbin/service crond restart  // 重启

4、新增或者编辑定时任务

crontab -e  进入编辑或者新增 。 

前面的5项分别代表 分 时 天 月 星期 。下面的代表每天的14点23分执行一次

23 14 * * * /usr/log/log/autoCleanLog.sh

如果想追加日志   23 14 * * * /usr/log/log/autoCleanLog.sh  >> /usr/log/reboot.log

保存文件退出。

--异常情况。提示权限不够/var/spool/cron/tmp.XXXXFSq8E3: 权限不够 crontab: edits left in /tmp/crontab.HaZsu1

那么可能目录有什么特殊的地方,root用户也被约束了查看是否有特殊的属性
lsattr /var/spool/cron/    查看特殊的属性
chattr -ai /var/spool/cron   去掉特殊的属性
再次编辑定时任务保存即可
5、让改动的配置立即生效

sudo /etc/init.d/cron restart

6、查看当前运行的定时任务  crontab -l

23 14 * * * /usr/log/autoCleanLog.sh

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bug来袭~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值