LinuxBasicsForHackers笔记 -- 通过作业调度实现任务自动化

2023-12-14 16:43:36

安排事件或作业自动运行

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 脚本。 内核初始化并加载其所有模块后,内核将启动一个称为 initinitd 的守护进程。 然后,该守护进程开始运行 /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。 然后,您可以滚动浏览可用服务,选择要在启动时启动的服务,然后单击“确定”。

文章来源:https://blog.csdn.net/jiawenhao_/article/details/134924319
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。