Cron 守护进程是一个 Linux 实用程序,用于调度系统任务和进程。它使用cron表(crontab)来存储和读取预定的工作。
本教程将介绍如何使用 crontab 安排在系统重新启动时运行的作业。
先决条件
- 运行 Linux 的系统
- 访问命令行/终端窗口
- 具有 root 或 sudo 权限的用户帐户
Crontab 命令 概述
与crontab
命令,你可以完全控制工作何时以及如何执行。使用crontab
将作业执行时间设置为分钟,而不需要在任务中循环和定时逻辑。
crontab
资源需求较低,因为它不运行时不保留系统内存。
Crontab on Boot:在引导时间运行一个Cron作业
使用以下命令打开 cron 任务列表:
crontab -e
如果安装了多个文本编辑器,系统会提示您选择一个编辑器来更新 cron 任务列表。使用括号中的数字来选择您的首选选项。我们将使用默认选项,Nano。
注意: 离开字段空白并按 enter 选择第一个可用的选项。
要在每个系统引导时运行 cron 作业system boot,请添加一个名为@reboot
任务列表的末尾。此字符串定义的作业在启动时运行,在 Linux 重新启动后立即运行。
添加 a 时使用以下语法@reboot
字符串:
@reboot [path to command] [argument1] [argument2] … [argument n]
@reboot [part to shell script]
Note:注意:始终使用要运行的作业、脚本或命令的完整路径,从根开始。
新闻Control + X
退出Nano,然后Y
和Enter
保存你所做的任何改变。
例如,如果我们想在 Linux 重新启动时将系统日期写在名为 date.txt 的文件中,我们将添加以下字符串:
@reboot date >> ~/date.txt
如果我们想在重新启动时运行备份 shell,我们会添加:
@reboot /root/backup.sh
注: 在某些情况下,需要在引导时启用 crond 服务才能使配置正常运行。
要检查是否启用了 crond 服务,请使用:
sudo systemctl status cron.service
要启用此服务,请使用:
sudo systemctl enable cron.service
延迟在引导时运行一个 Cron 作业
要在系统重新启动后运行延迟的工作sleep command,请在添加“睡眠”命令时使用睡眠命令。@reboot
字符串:
@reboot sleep [time in seconds] && [path to job]
如果要在重新启动后五分钟使用系统日期创建文本文件,请添加:
@reboot sleep 300 && date >> ~/date.txt
删除重新启动命令
每个@reboot
添加到 cron 任务列表中的字符串在 Linux 重新启动时运行一个作业。如果您不再希望运行作业,请将其从任务列表中删除。
要执行此操作,请使用以下命令打开任务列表:crontab -e
命令。向下滚动到底部以查看您添加的工作。
要从列表中删除任务,请从相应的字符串中删除相应的行。新闻Control + X
退出Nano,然后Y
和Enter
拯救变化。
注意: 了解有关 Linux 命令的更多信息,这是 cron 作业安排作业的替代方案。
结论
遵循本教程后,您了解如何使用 crontab 安排作业以在系统重新启动时运行。
有关在crontab安排工作的更多方法,请查看我们的创建cron作业指南。
接下来,cron expressions阅读我们关于cron表达式的文章。