摘要:# 每分钟执行一次* * * * * echo "Hello Cron" >> /tmp/cron.log# 每天凌晨 2 点执行0 2 * * * /path/to/script.sh# 每周一凌晨 1 点执行0 1 * * 1 /path/to/backu
大多数 Linux 发行版(Ubuntu、CentOS、Debian)默认已安装。可以用:
crontab -V如果有输出版本号,说明已安装。
Debian/Ubuntu 系统sudo apt updatesudo apt install cron -yCentOS/RHEL 系统# 启动服务sudo systemctl start cron # Ubuntu/Debiansudo systemctl start crond # CentOS/RHEL# 设置开机自启sudo systemctl enable cron # Ubuntu/Debiansudo systemctl enable crond # CentOS/RHEL一个定时任务的基本格式:
* * * * * command依次代表:
分 时 日 月 星期 命令字段取值范围说明分钟0 - 59每小时的第几分钟小时0 - 23每天的第几个小时日期1 - 31每月的第几天月份1 - 12月份星期0 - 7星期几(0 和 7 都表示周日)# 每分钟执行一次* * * * * echo "Hello Cron" >> /tmp/cron.log# 每天凌晨 2 点执行0 2 * * * /path/to/script.sh# 每周一凌晨 1 点执行0 1 * * 1 /path/to/backup.sh# 每 10 分钟执行一次*/10 * * * * /path/to/task.sh# 每天 3 点到 6 点之间,每小时执行0 3-6 * * * /path/to/job.sh# 每月 1 日和 15 日执行0 0 1,15 * * /path/to/report.sh七、日志查看默认 cron 日志在:
/var/log/cron # CentOS/RHEL/var/log/syslog # Ubuntu/Debian实时查看:
tail -f /var/log/syslogtail -f /var/log/cron数据库定时备份0 2 * * * mysqldump -uroot -p123456 mydb > /backup/mydb_$(date +\%F).sql定时清理日志0 0 * * 0 rm -f /var/log/myapp/*.log定时采集网站数据*/30 * * * * /usr/bin/python3 /home/user/spider.pycrontab 默认不会加载用户环境变量(如 PATH),建议在脚本里写绝对路径。例如:/usr/bin/python3 /home/user/script.py如果要调试,可以把输出重定向到日志:* * * * * /path/to/script.sh >> /tmp/test.log 2>&1权限问题:/etc/cron.allow:只有在此文件里的用户才可用 crontab/etc/cron.deny:在此文件里的用户禁止使用 crontab
来源:梯子科技一点号