一、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