最近用Linux越来越多,所以很多东西都要研究一下在Linux下的实现。比如今天要研究的,在Linux下使用crontab命令实现定时执行任务。
在Linux中,如果我们想实现像Windows下的计划任务功能,则需要借助于crontab命令。crontab命令的安装如下:
yum install crontabs
编辑任务列表:crontab -e
格式如下:
* * * * * 要执行的命令或者脚本文件
分 时 日 月 周 要执行的命令或者脚本文件
第1列表示分钟0~59,每分钟用*或者 */1表示
第2列表示小时0~23,10-15表示10:00~15:00
第3列表示日期1~31
第4列表示月份1~12
第5列表示星期0~6(0或7表示星期日)
第6列是要执行的命令
如果发现定时任务执行不成功的话,先检查cron服务有没有启动
systemctl status cron
如果服务已经启动,那么检查一下有没有日志生成。日志文件:/var/log/cron.log,假如cron.log这个文件不存在的话,那么可能是没有启动日志服务或者没有启用cron服务的日志功能。
检查日志服务有没有启动:
systemctl status rsyslog
如果服务已经启动的话,那么检查日志服务的配置文件是否没有开启cron服务的日志
vim /etc/rsyslog.conf
找到#cron.* -/var/log/cron.log,把#去掉,然后重启日志服务:systemctl restart rsyslog
然后等待cron任务执行,再次查看/var/log/cron.log应该就有这个日志文件了
特别提示:大家一定要注意系统时间和时区,因为如果用的是国外的vps或者服务器的话,默认不是北京时间,如果我们按北京时间来设置定时任务的话,肯定是不准的。使用timedatectl命令可以查看当前系统时间和时区,使用命令timedatectl set-timezone Asia/Shanghai可以将时区设置为上海。
修改时区后,特别要注意的就是要重启cron服务,否则定时任务同样可能不生效。
重启cron服务命令:systemctl restart cron
ok
mjj通道