crontab
是 Unix和类Unix操作系统中的一个命令,它用于设置定时任务(即 cron job)。这些定时任务会在预定的时间自动执行,适用于自动化系统维护和管理任务,例如定期备份、发送邮件通知等。
基本语法
crontab -e
:编辑当前用户的 crontab 文件。
crontab -l
:列出当前用户的 crontab 文件中的任务。
crontab -r
:删除当前用户的 crontab 文件。
crontab -i -r
:在删除当前用户的 crontab 文件前进行确认。
crontab
文件格式
crontab
文件的每一行定义一个任务,每行包含六个字段
格式
* * * * * command_to_be_executed
每个字段的含义
每个字段用空格或制表符分隔:
1. 分钟 (0 - 59)
2. 小时 (0 - 23)
3. 日期 (1 - 31)
4. 月份 (1 - 12)
5. 星期几 (0 - 7)(0 和 7 都表示星期日)
6. 要执行的命令
字段的特殊符号
*:代表任何时间。
,:分隔多个值。
-:表示时间范围。
/:表示步长,例如 */5 表示每 5 分钟。
示例
每小时的第 0 分钟执行脚本
/path/to/script.sh
0 * * * * /path/to/script.sh
每天凌晨 2 点执行脚本
/path/to/backup.sh
:
0 2 * * * /path/to/backup.sh
每周一到周五的上午 8 点到下午 5 点之间,每小时的第 30 分钟执行脚本
/path/to/report.sh
:
30 8-17 * * 1-5 /path/to/report.sh
每个月的 1 号和 15 号的凌晨 3 点执行脚本
/path/to/cleanup.sh
:
0 3 1,15 * * /path/to/cleanup.sh
每 10 分钟执行一次脚本
/path/to/check.sh
:
*/10 * * * * /path/to/check.sh
编辑crontab文件
使用 crontab -e
命令打开当前用户的 crontab 文件。在文件中添加或编辑任务后,保存文件并退出编辑器,任务会自动生效。
环境变量
crontab 任务默认使用 /bin/sh
来运行,您可以在 crontab 文件中设置环境变量:
SHELL=/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin
日志
cron 作业的输出(标准输出和标准错误)默认会通过邮件发送给当前用户。如果需要将输出重定向到文件,可以在命令末尾添加重定向符号:
0 2 * * * /path/to/backup.sh > /path/to/backup.log 2>&1
管理其他用户的 crontab
使用 sudo
来编辑、列出或删除其他用户的crontab:
sudo crontab -u username -e
:编辑指定用户的 crontab 文件。sudo crontab -u username -l
:列出指定用户的 crontab 文件中的任务。sudo crontab -u username -r
:删除指定用户的 crontab 文件。
评论区