Liunx定时任务个人记录使用,仅供参考。
系统环境Centos7.5
1、启动crond服务
说明:crontab定时任务需要启动crond 服务才可以使用。
[root@db01 ~]# systemctl start crond
[root@db01 ~]# systemctl status crond
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 一 2021-06-07 23:11:29 CST; 1min 54s ago
Main PID: 7156 (crond)
Tasks: 1
CGroup: /system.slice/crond.service
└─7156 /usr/sbin/crond -n
6月 07 23:11:29 db01.db01 systemd[1]: Started Command Scheduler.
6月 07 23:11:30 db01.db01 crond[7156]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 18% if used.)
6月 07 23:11:31 db01.db01 crond[7156]: (CRON) INFO (running with inotify support)
[root@db01 ~]#
2、编写定时任务
编写命令crontab -e进入定时任务编写模式。其实就是进入vi的编辑模式。进入之后默认是空白界面,下面开始编写第一条定时任务。
*/5 * * * * rm -rf /tmp/*
说明:上述命令意思是每间隔5分钟执行一遍 “ rm -rf /tmp/* ”
重点如下
解析:上面命令可以看到出现了 五个“ * ”号,后面跟了一个删除命令。下面图解一下这五个*号的意思
第一个"*":代表分钟(0-59);
第二个"*":代表小时(0-23);
第三个"*":代表天(1 - 31);
第四个"*":代表月(1-12);
第五个"*":代表星期几(0-6);
在回顾上面的命令, 看似每个*号代表不同的指,但写法不同意思也不同,如上述:*/5 * * * * 代表每间隔五分钟执行一次,如果写成 5 * * * * 那么就是每个小时的第5分钟执行一次, 也可以配合使用,
比如: 0-20/5 * * * * 意思就是没小时的0-20分钟每间隔5分钟执行一次。
下面写两个稍微复杂一点的:
5 0 1 * * rm -rf /tmp/* ##这里代表每个月的1号 零点过5分 执行一次。
*/5 0-6 * * * rm -rf /tmp/* ##代表每天凌晨到六点,每间隔5分钟执行一次。
注意:在crontab -e编写是 如果编写格式有错误,在保存的时候,会保存不上的。
3、crond服务停止及其他命令
systemctl stop crond #t停止服务,停止后定时任务失效
systemctl enable crond #设置crond服务开机自启