Ubuntu中crontab的使用

it2022-05-05  171

ubuntu18.04下启动、停止与重启cron

sudo /etc/init.d/cron start sudo /etc/init.d/cron stop sudo /etc/init.d/cron restart sudo /etc/init.d/cron status

用户级配置

crontab -e crontab -l

这样执行以后,属于用户自定义的,会被写到 /var/spool/cron/crontabs 目录下,生成一个和用户名一致的文件

系统级配置/etc/crontab

cron是被默认安装并启动的。如果没有启动,自行设置并启动(chkconfig\sysv-rc-conf)。配置文件/etc/crontab:

#m h dom mon dow user command 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Ubuntu调用run-parts命令,定时运行四个目录下的所有脚本。 /etc/cron.hourly下的脚本会被每小时运行一次,在每小时的17分时运行。 /etc/cron.daily下的脚本会被每天运行一次,在每天6点25分运行。 /etc/cron.weekly下的脚本会被每周运行一次,在每周第7天的6点47分运行。 /etc/cron.monthly下的脚本会被每月运行一次,在每月1号的6点52分运行。 关于shell脚本 只需要把计划运行的脚本放到相应目录中就可以了。不过需要注意以下两点: 1.脚本文件的名称不能包含“.”符号。你可以写成“im-alarm”,但不要写成“im-alarm.sh”。(因为命名问题,遇到过不执行的情况) 2.脚本开头必须加上“#!/bin/bash”,否则run-parts调用不成功。 否则直接用run-parts运行时会导致这样的错误: run-parts: failed to exec /etc/cron.hourly/backup-website: Exec format error run-parts: /etc/cron.hourly/backup-website exited with return code 1

(系统级的)做系统级配置我们会直接配置 /etc/crontab (用户级的)一般还是建议大家使用 crontab -e ,这样系统也会帮着检查我们配置的脚本语法。

Ubuntu查看crontab运行日志

crontab记录日志 修改rsyslog

sudo vim /etc/rsyslog.d/50-default.conf cron.* /var/log/cron.log

重启rsyslog

sudo service rsyslog restart

查看crontab日志

less /var/log/cron.log

最新回复(0)