突然意识到的关于cron的问题
每次去面试只要遇到有cron的问题他一定考察你知道不知道,cron时间分几个,五个,五个,呵呵
* * * * * 分别是 分(1-59) 时(0-23) 日(1-31) 月(1-12) 周(1-7)
cron格式
*/15 * * * * * root echo "This a cron task" 每隔15分向标准输出打印那句话
可以这样记cron格式 几分几时哪天几月周几 那个人 要干嘛
crontab的一些参数
e --edit 编辑用户的cron任务(写在/etc/crontab文件中)
u --user 给哪个用户添加cron任务
l --list 看cron任务列表,默认不加u参数只显示当前用户的cron任务,一般用户这能编辑自己的cron任务
r --delete 删除cron任务,默认不佳U参数,删除当前登录用户的cron任务
cron目录结构
cron.d/ cron.deny cron.monthly/ cron.weekly/
cron.daily/ cron.hourly/ crontab
看到很明白这些目录的作用,主要强调一下 hourly,daily,weekly,monthly这四个目录,当有这些cron任务是可以直接把脚本放在对应的目录下即可,不需要额外添加cron任务,不错,就这样
实际环境中有时候会遇到cron任务不执行,如果这是在实验还无所谓,但是如果凌晨3点数据库备份没执行,这就惨了,为了保证百分百养成一个好习惯是必要的
在为某个用户指定cron任务时,最好加上-u参数,笔者就遇到过,原本cactiuser每五分钟要执行下poller.php,结果发现没执行,后来才发现问题,我以root的身份为cactiuser制订了任务
[root@localhost ~] crontab -e
*/5 * * * * cactiuser /usr/bin/php /var/www/html/cacti/poller.php
虽然这么设定了但结果是未执行,原因就是你这个cron任务既是当前用户root的cron,又是cactiuser的cron这显然在执行是发生冲突
正确的方法
[root@localhost ~] crontab -e -u cactiuser
*/5 * * * * cactiuser /usr/bin/php /var/www/html/cacti/poller.php
希望以后养成好习惯
阅读(1651) | 评论(0) | 转发(0) |