安排事件或作业自动运行
cron
守护进程和 cron 表 (crontab) 是用于安排常规任务的最有用的工具。 第一个是 crond
,是在后台运行的守护进程。 cron
守护进程检查 cron 表以了解在指定时间运行哪些命令。 我们可以更改 cron 表来安排任务或作业在特定的一天或日期、每天的特定时间或每隔几周或几个月定期执行。
要安排这些任务或作业,将它们输入到位于 /etc/crontab
的 cron 表文件中。cron 表有七个字段:前五个字段用于安排运行任务的时间,第六个字段指定用户,第七个字段用于要执行的命令的绝对路径。 如果我们使用 cron 表来安排脚本,我们可以简单地将脚本的绝对路径放在第七个字段中。
五个时间字段中的每一个都代表不同的时间元素:按顺序为分钟、小时、月份中的某一天、月份和星期几。 时间的每个元素都必须用数字表示,因此 March 表示为 3(不能简单地输入“March”)。 一周中的每一天从 0 (即星期日)开始,到 7 (也是星期日)结束。 下表对此进行了总结。
要编辑 crontab
,可以运行 crontab 命令,然后运行 -e(编辑)选项:crontab -e
第一次运行此命令时,它会询问您要使用哪个编辑器。 默认值为 /bin/nano
,该选项告诉您这是最简单的。 如果选择此选项,终端将直接打开 crontab。
另一种选择,对于 Linux 新手来说通常是更好的选择,是直接在您最喜欢的文本编辑器中打开 crontab。
安排备份任务
要创建作业,只需编辑 crontab 文件,按照规定的格式添加一行即可。 因此,假设您想使用名为“backup”的用户帐户创建常规备份作业。 您可以编写一个用于备份系统的脚本,并将其保存为 /bin
目录中的 systembackup.sh,然后通过将以下行添加到 crontab 来安排此备份在每周六晚上/周日凌晨 2 点运行:00 2 * * 0 backup /bin/systembackup.sh
请注意,*
通配符用于表示“任意”,并且使用它代替数字表示该月的某天、该月或该星期的某天将被解读为“所有”天或月。 如下:
crontab 快捷键
crontab 文件有一些内置的快捷方式,可以使用它们来代替每次指定时间、日期和月份。 其中包括以下内容:
因此,如果您希望 一个脚本或者作业 每晚午夜运行,可以将以下行添加到 crontab 文件中:@midnight user /usr/share/你的脚本文件的名称.sh
使用 rc 脚本在启动时运行作业
每当您启动 Linux 系统时,都会运行许多脚本来为您设置环境。 这些称为 rc
脚本。 内核初始化并加载其所有模块后,内核将启动一个称为 init
或 initd
的守护进程。 然后,该守护进程开始运行 /etc/init.d/rc
中的许多脚本。 这些脚本包含用于启动许多必要服务的命令,这些服务是按您的预期运行 Linux 系统所需的。
Linux 运行级别
Linux 有多个运行级别,指示启动时应启动哪些服务。 例如,运行级别 1 是单用户模式,网络等服务不会在运行级别 1 中启动。rc 脚本设置为根据选择的运行级别运行:
将服务添加到 rc.d
您可以使用 update-rc.d
命令为 rc.d 脚本添加服务以在启动时运行。 此命令使您能够在 rc.d 脚本中添加或删除服务。 update-rc.d 的语法很简单; 您只需列出命令,后跟脚本名称,然后列出要执行的操作,如下所示:update-rc.d <脚本或服务的名称> <remove|defaults|disable|enable>
通过 GUI 将服务添加到启动中
如果您更喜欢在启动时使用 GUI 添加服务,则可以从存储库下载基于 GUI 的基本工具 rcconf,如下所示:apt-get install rcconf
完成安装后,您可以通过输入以下命令来启动 rcconf:rcconf
这将打开一个简单的 GUI。 然后,您可以滚动浏览可用服务,选择要在启动时启动的服务,然后单击“确定”。