Shell定时脚本:定时查找指定路径的日志文件并清除

一、Crontab定时命令

1.安装定时任务命令

yum install crontabs

2.设置定时任务

crontab -e

3.查看当前定时任务

crontab -l

4.查看crontab状态

systemctl status crond.service

5.启动crontab

systemctl start crond.service

6.关闭crontab

systemctl stop crond.service

7.重启crontab

systemctl restart crond.service

8.编辑定时任务的具体操作和规则

# 修改/添加定时任务(每个系统用的定时任务文件是隔离的)
crontab -e

# 每天3点执行
* 3 * * * 执行的语句
* 
# 每天18点30分执行
30 18 * * * 执行的语句

# 每个月的1号的12点15分执行
15 12 1 * *  执行的语句

# 每年的3月1号的11点45分执行
45 11 1 3 * 执行的语句

# 每周三的16点30分执行
30 16 * * 3 执行的语句

# 第1列表示分钟1~59 每分钟用或者 /1表示 
# 第2列表示小时1~23(0表示0点) 
# 第3列表示日期1~31 
# 第4列表示月份1~12 
# 第5列标识号星期0~6(0表示星期天) 
# 第6列要运行的命令

二、定时任务DEMO

1.这里是定时清理docker日志的脚本例子

#! /bin/bash
echo "" >> /data/app/clear-task/cron-task.log
echo "" >> /data/app/clear-task/cron-task.log
echo "" >> /data/app/clear-task/cron-task.log
echo "" >> /data/app/clear-task/cron-task.log
echo "" >> /data/app/clear-task/cron-task.log
echo "" >> /data/app/clear-task/cron-task.log
echo "" >> /data/app/clear-task/cron-task.log
echo "" >> /data/app/clear-task/cron-task.log
echo "" >> /data/app/clear-task/cron-task.log
echo "" >> /data/app/clear-task/cron-task.log
echo "***************************************************************开启定时任务***************************************************************"   >> /data/app/clear-task/cron-task.log
echo "定时任务执行时间:"$(date +%Y-%m-%d_%H:%M:%S) >> /data/app/clear-task/cron-task.log
count=0
for i in `find /data/app/docker/containers/  -size +1G -name "*-json.log"`
do
        let count=$count+1
done

if [ $count -gt 0 ]
then
	echo "==========开启清理日志=========="   >> /data/app/clear-task/cron-task.log
	echo "查找出所有超过1G的Docker日志文件:进行迭代清理"   >> /data/app/clear-task/cron-task.log
	for i in `find /data/app/docker/containers/  -size +1G -name "*-json.log"`
	do
					echo “当前正在清理日志文件:”$i  >> /data/app/clear-task/cron-task.log
					cat /dev/null > $i
	done
	
	flag=0
	for i in `find /data/app/docker/containers/  -size +1G -name "*-json.log"`
	do
			let flag=$flag+1
	done
	if [ $flag -eq 0 ]
	then echo "==========清理日志文件成功【清理文件数量:"$count"】=========="   >> /data/app/clear-task/cron-task.log
	else echo "==========清理日志文件失败【当前未清理文件数量:"$flag"】=========="   >> /data/app/clear-task/cron-task.log
	fi
else
	echo "不需要清理:未发现超过1G的Docker日志文件..." >> /data/app/clear-task/cron-task.log
fi
echo "***************************************************************结束定时任务***************************************************************"   >> /data/app/clear-task/cron-task.log


2.编辑Shell定时任务

#执行命令(编辑定时任务文件crontab.VISNmp);如果没有,请百度安装改命令
crontab -e
#任务规则:【定时触发时间(cron规则:分、时、日、月、年) shell脚本目录】
#如下配置:表示每日零时零分,定时调度data/app/clear-task/目录的task.sh脚本
0 0 * * * /data/app/clear-task/task.sh

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值