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 mailWhat 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

参考:


常伟佳
310 声望16 粉丝

« 上一篇
Hello Conda

引用和评论

0 条评论