我通过键入crontab -e在ubuntu环境中为root用户设置了cronjob
34 11 * * * sh /srv/www/live/CronJobs/daily.sh 0 08 * * 2 sh /srv/www/live/CronJobs/weekly.sh 0 08 1 * * sh /srv/www/live/CronJobs/monthly.sh
但是cronjon不会运行。我已经尝试检查cronjob是否正在使用
pgrep cron
并给出了进程ID3033。shell脚本调用了python文件,并用于发送电子邮件。可以运行python文件。没有错误,但cron不运行。daily.sh文件中包含以下代码。
python /srv/www/live/CronJobs/daily.py python /srv/www/live/CronJobs/notification_email.py python /srv/www/live/CronJobs/log_kpi.py
WTF ?! 我的cronjob无法运行?
这是调试未运行cronjobs的清单指南:
ps ax | grep cron
service cron start
service cron restart
* * * * * /bin/echo "cron works" >> /tmp/file
/tmp
/var/log/cron.log
/var/log/messages
grep CRON /var/log/syslog
/var/log/cron
chmod +x /var/www/app/cron/do-stuff.php
30 1 * * * command > /dev/null 2>&1
>/dev/null 2>&1
>>cron.out 2>&1
cron.out
还是行不通? kes!
/etc/default/cron
EXTRA_OPTS="-L 2"
tail -f /var/log/syslog
/etc/rsyslog.d/50-default.conf
cron.crit /var/log/cron.log
sudo /etc/init.d/rsyslog reload
Cronjob语法
# Minute Hour Day of Month Month Day of Week User Command # (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat) 0 2 * * * root /usr/bin/find
此语法 仅对root用户正确。普通用户crontab语法没有“ 用户” 字段(不允许普通用户像其他任何用户一样运行代码);
root
crontab
# Minute Hour Day of Month Month Day of Week Command # (0-59) (0-23) (1-31) (1-12 or Jan-Dec) (0-6 or Sun-Sat) 0 2 * * * /usr/bin/find
Crontab命令
crontab -l
crontab -e
crontab -e -u agentsmith
crontab -r