概述
crontab(全称:cron table)是 Linux 系统中用于设置定时任务的工具。它允许用户在指定的时间间隔执行特定的命令或脚本。cron 是一个守护进程(daemon),它在后台运行,负责按照 crontab 文件中定义的时间表来调度任务。
例如,系统管理员可以使用 crontab 来定期备份数据、清理临时文件、更新系统软件等。普通用户也可以利用它来安排一些个人任务,比如定时发送邮件、定时运行某个程序等。
crontab 文件存放位置
1、用户 crontab 文件
所有用户定义的 crontab 文件通常保存在 /var/spool/cron 目录中,文件名与用户名一致。例如,用户 bystart 的 crontab 文件位于 /var/spool/cron/bystart。
2、系统 crontab 文件
系统级别的 crontab 文件通常位于 /etc/crontab。这个文件负责调度各种管理和维护任务。
crontab 文件格式
从图中的信息可以得出,每个任务的格式为 * * * * * command
,其中前五个字段分别表示分钟、小时、日期、月份和星期几,并且给出的了取直范围,最后一个字段是要执行的命令或脚本的路径。每一行代表一个定时任务。
这里给大家列举几个例子:
# 每分钟执行一次
* * * * * /path/to/command1.sh
# 每小时的第 0 分钟执行一次 command2
0 * * * * /path/to/command2.sh
# 每天午夜 0 点执行一次 command3
0 0 * * * /path/to/command3.sh
# 每周日午夜 0 点执行一次 command4
0 0 * * 0 /path/to/command4.sh
# 每月的第 1 天午夜 0 点执行一次 command5
0 0 1 * * /path/to/command5.sh
# 每年的 1 月 1 日午夜 0 点执行一次 command6
0 0 1 1 * /path/to/command6.sh
# 每隔 10 分钟执行一次 command7
*/10 * * * * /path/to/command7.sh
# 每隔 4 小时执行一次 command8
0 */4 * * * /path/to/command8.sh
# 每天的上午 9 点到下午 5 点,每小时的第 0 分钟执行一次 command9
0 9-17 * * * /path/to/command9.sh
# 每月的第 1 天和第 15 天午夜 0 点执行一次 command10
0 0 1,15 * * /path/to/command10.sh
# 每周的周一和周五午夜 0 点执行一次 command11
0 0 * * 1,5 /path/to/command11.sh
我们可以通过 crontab -e 命令来编辑自己的 crontab 文件。这个命令会打开一个文本编辑器(通常是 vi 或 nano),用户可以在其中添加、修改或删除任务条目。
如果想要查看当前的 crontab 内容,可以使用 crontab -l 命令。如果需要删除所有的 crontab 任务,可以使用 crontab -r 命令。
需要注意的地方
当 cron 执行 crontab 中的任务时,它会为任务设置一个相对简单的环境变量集合。默认情况下,PATH 环境变量可能只包含 /usr/bin 和 /bin 等基本目录。这意味着如果任务中使用了其他目录下的命令,可能需要指定完整的路径。
例如,如果有一个任务是执行 /usr/local/bin/myapp,那么在 crontab 文件中就应该写成 /usr/local/bin/myapp 而不是只写 myapp。
欢迎大家关注我的公众号,将会为大家推荐更优质的内容!