📅  最后修改于: 2023-12-03 15:06:09.100000             🧑  作者: Mango
当我们想让一个脚本在特定的时间(例如每天的凌晨)执行一次,我们会使用 crontab。crontab 是一个用来管理定时任务的程序,它可以让你在指定的时间自动运行指定的命令或脚本。crontab 需要指定需要在特定时间运行的命令或脚本的位置和时间。
使用 crontab -l
命令可以列出当前用户的 crontab。
$ crontab -l
使用 crontab -e
命令可以编辑当前用户的 crontab。
$ crontab -e
这个命令将会打开一个文本编辑器,在里面编写需要定时执行的命令。
crontab 格式由 6 个字段组成,分别是:
* * * * * command-to-be-executed
│ │ │ │ │
│ │ │ │ │
│ │ │ │ └───── day of the week (0 - 6) (0 to 6 are Sunday to Saturday; or use names; 7 is also Sunday)
│ │ │ └────────── month (1 - 12)
│ │ └─────────────── day of the month (1 - 31)
│ └──────────────────── hour (0 - 23)
└───────────────────────── minute (0 - 59)
举个例子,如果我们想让一个脚本文件(例如 ~/script.sh
)每天的凌晨 3 点执行一次,我们可以在 crontab 中添加这一行:
0 3 * * * /home/user/script.sh
在 crontab 中使用 >
将输出重定向到一个文件中。
如果你的命令输出一些不需要的信息(例如错误信息)可以使用 2>&1 >> /path/to/file
将它们重定向到一个文件中。
如果你想定期备份你的数据库,你可以使用 crontab 来执行类似于下面的命令:
0 */3 * * * /path/to/mysql-backup-script.sh
这个命令会在每 3 个小时执行脚本 /path/to/mysql-backup-script.sh
,即实现了定时备份数据库的功能。
crontab 是一个非常有用的工具,可以让你在特定的时间自动执行命令和脚本。它的使用非常简单,只需要按照上面介绍的步骤来操作即可。