cron
是处理定时任务的程序,来源是希腊语里面意思是“时间”的某个词,可以查看它是不是在运行 ps -ef | grep cron | grep -v grep
,crontab 里面内容能执行的前提是 cron 必须在运行。crontab
是 Cron Table 的意思。每个用户都有自己的,可以在 /var/spool/cron
找到这些文件。但是不要直接编辑它。而是通过命令,分别是列出内容、编辑、删除:
$ crontab -l
$ crontab -e
$ crontab -r
想备份的话直接把 crontab -l
的内容保存到文件就好了。
另外系统级别还有这样的目录 /etc/cron.{hourly,daily,weekly,monthly}
,里面的内容会按照对应的周期执行。
Crontab 里面每一项的设置的规则如下:
# Example of job definition:
# .---------------- 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)
# | | | | |
# * * * * * command to be executed
可以写一个 Hello World 来测试,会每分钟把时间打在 ~/date_log
里面:
* * * * * date >> date_log
执行 Crontab 里面的命令时产生的 stdout 会通过邮件发送给当前用户。有邮件之后命令行中会提示 You have new mail
,What is the "You have new mail" message in Linux/UNIX? - Super User。
再多设置几个来做测试吧!
# m h dom mon dow command
* * * * * date >> ~/cron_test/every_minute
10 * * * * date >> ~/cron_test/every_hour_10
44 4 * * * date >> ~/cron_test/every_day_4_44
0 4 1 * * date >> ~/cron_test/every_month_1_4_00
参考:
附带基础讲解的 troubleshooting linux - Why is my crontab not working, and how can I troubleshoot it? - Server Fault
有包含更多内容的 Wiki:Cron - Wikipedia
-
简单介绍
-
Wiki
-
Example
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。