这几天使用crontab下的root文件做定时处理问题,root一直不执行,通过查找日志也毫无发现任何有用的博客。现在就我遇到的这个问题总结一下我的解决方案。
1.crontab中的环境变量问题,在写所要执行的命令或脚本时要以绝对路径去执行
例如:/usr/sbin/ntpdate 0.pool.ntp.org
网络更新时间,/usr/sbin/ntpdate 这个命令在/usr/sbin目录下
2.要通过crontab -e的命令在生成root文件,不要拷贝其他文件下的root文件。在生成的root文件下在添加其他内容。
通过以上这两点希望能对遇到和我一样crontab不能执行的问题提供解决思路。
crontab实现每十秒钟执行一次脚本
* * * * * sleep 10; /usr/bin/flock -xn /tmp/rsync-test.lock -c '/root/kit/rsync-test.sh'
* * * * * sleep 20; /usr/bin/flock -xn /tmp/rsync-test.lock -c '/root/kit/rsync-test.sh'
* * * * * sleep 30; /usr/bin/flock -xn /tmp/rsync-test.lock -c '/root/kit/rsync-test.sh'
* * * * * sleep 40; /usr/bin/flock -xn /tmp/rsync-test.lock -c '/root/kit/rsync-test.sh'
* * * * * sleep 50; /usr/bin/flock -xn /tmp/rsync-test.lock -c '/root/kit/rsync-test.sh'
打开crontab日志并查看日志
vi /etc/rsyslog.d/50-default.conf
打开文件,在文件中找到cron.*,把前面的#去掉,保存退出,输入
sudo service rsyslog restart
重启系统日志,然后稍微等下应该就能在/var/log目录下看到cron.log,vi cron.log就可以查看cron运行日志了。
如果在日志中能看到有这样的记录