@reboot
@reboot 是一个在 crontab(cron 表的简称)文件中使用的特殊字符串,用于指定某个任务或命令在系统每次重启后立即执行一次。cron 是一个基于时间的作业调度器,在 Unix 和类 Unix 操作系统(如 Linux)中广泛使用,用于在后台自动执行任务。
具体来说,@reboot 的用法如下:
在 crontab 文件中,你可以通过在第一列(通常是分钟字段)中使用 @reboot 而不是具体的时间值,来指定一个任务在系统启动时执行。
紧接着 @reboot 的是要执行的命令或脚本的路径。
例如,如果你想在系统每次重启后都自动执行 /home/user/script.sh 脚本,你可以在 crontab 文件中添加这样一行:@reboot /home/user/script.sh。
crontab 文件中的其他特殊字符串还包括 @yearly(或 @annually)、@monthly、@weekly、@daily 和 @hourly,它们分别用于指定每年、每月、每周、每天和每小时执行一次的任务。
需要注意的是,crontab 文件是用户级别的,每个用户都可以有自己的 crontab 文件来定义自己的定时任务。系统级别的定时任务则通常通过 /etc/crontab 文件或类似的系统级配置文件来管理。
此外,虽然 @reboot 用于指定系统重启后立即执行的任务,但它并不保证任务会在所有服务都启动完成后才执行。因此,如果你的任务依赖于某些特定服务,你可能需要使用其他机制(如 systemd 服务文件)来确保任务在正确的时间执行。
综上所述,@reboot 是 crontab 文件中用于指定系统重启后立即执行一次任务的特殊字符串。
使用示例
- 终端输入
crontab -e
- 在 crontab 文件中添加以下内容,使脚本在系统启动时运行:
@reboot /path/to/your/script.sh
- 指定每隔多久执行一次脚本
仍然在 crontab 文件中,添加一行来指定脚本每隔一段时间执行一次。例如,每隔10分钟运行一次脚本,可以添加以下内容:
*/10 * * * * /path/to/your/script.sh
解释:
- */10 表示每 10 分钟运行一次。
* * * *
表示每小时、每天、每月、每年的所有时间。
- 如果后序还需要添加脚本以及自动执行周期,只需要在crontab文件中加入
@reboot /path/to/your/script2.sh
*/10 * * * * /path/to/your/script.sh
- 启动
使用service cron restart
或者sudo service cron restart
- 验证是否启动成功
crontab -l
命令,查看正在执行的任务列表