Linux 定时任务Crontab
描述
Crontab用于创建和管理用户周期性执行的任务;
crond进程每分钟会定期检查是否有要执行的任务,若有则自动执行该任务;
配置解释
定时任务配置解释
\* * * * * user-name command to be executed
第一个*号表示:minute (0 - 59)
第二个*号表示:hour (0 - 23)
第三个*号表示:day of month (1 - 31)
第四个*号表示:month (1 - 12) OR jan,feb,mar,apr…
第五个*号表示:day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
30 21-23 * */2 1,5 command
星号(*):表示所有可能的值,上面例子中day字段为*
,则表示满足其他限制的每一天都执行该任务;
逗号(,):表示一个列表范围,上面例子中week字段为,
,则表示每周一和周五执行该任务;
横杠(-):表示一个区间范围,上面例子中hour字段为-
,则表示21到23点间每小时执行该任务;
正斜线(/):表示指定时间的间隔频率,上面例子中month字段为/
,则表示每两个月执行该任务;
综上分析该任务执行周期为:每隔一个月的周一和周五的21-23点30分执行任务;
使用方式
- 当前用户创建定时任务
[git@centos-36_2 data]$ crontab -e
\* * * * * /home/git/data/hi
\* * * * * /home/git/data/hi1
~
"/tmp/crontab.xVfMO9" 1L, 36C written
crontab: installing new crontab
[git@centos-36_2 data]$ ps -aux | grep /hi
git 131091 0.0 0.0 112724 992 pts/1 S+ 16:59 0:00 grep --color=auto /hi
[git@centos-36_2 data]$ ps -aux | grep /hi
git 131095 0.0 0.0 113180 1208 ? Ss 16:59 0:00 /bin/bash /home/git/data/hi
git 131096 0.0 0.0 113180 1212 ? Ss 16:59 0:00 /bin/bash /home/git/data/hi1
git 131113 0.0 0.0 112724 992 pts/1 S+ 16:59 0:00 grep --color=auto /hi
[git@centos-36_2 data]$ su
密码:
[root@centos-36_2 data]# cat /var/spool/cron/git
\* * * * * /home/git/data/hi
\* * * * * /home/git/data/hi1
[root@centos-36_2 data]#
- 查询当前用户定时任务信息
[git@centos-36_2 data]$ crontab -l
* * * * * /home/git/data/hi
[git@centos-36_2 data]$ su
密码:
[root@centos-36_2 data]# crontab -l
*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1
[root@centos-36_2 data]#
-
删除当前用户定时任务信息
- 删除所有
[git@centos-36_2 data]$ crontab -l \* * * * * /home/git/data/hi \* * * * * /home/git/data/hi1 [git@centos-36_2 data]$ [git@centos-36_2 data]$ crontab -ri crontab: really delete git's crontab? y [git@centos-36_2 data]$ crontab -l no crontab for git [git@centos-36_2 data]$
- 删除单条
[root@centos-36_2 data]# crontab -l \*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1 \* * * * * /home/gaokangkang/data/hi [root@centos-36_2 data]# ps -aux | grep /hi | grep -v grep [root@centos-36_2 data]# ps -aux | grep /hi | grep -v grep root 131739 0.0 0.0 113180 1212 ? Ss 17:05 0:00 /bin/bash /home/gaokangkang/data/hi [root@centos-36_2 data]# [root@centos-36_2 data]# crontab -e 1 */5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1 ~ "/tmp/crontab.Wq1hBp" 1L, 76C written crontab: installing new crontab [root@centos-36_2 data]# crontab -l \*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1 [root@centos-36_2 data]#
-
Crontab可以使用@reboot来执行主机启动之后的命令
[root@centos-36_2 data]# crontab -e 1 */5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1 2 @reboot /root/my_script/on_start.sh ~ "/tmp/crontab.tYgena" 2L, 112C written crontab: installing new crontab [root@centos-36_2 data]# [root@centos-36_2 data]# crontab -l \*/5 * * * * cacti /usr/bin/php /usr/share/cacti/poller.php > /dev/null 2>&1 @reboot /root/my_script/on_start.sh [root@centos-36_2 data]#