Linux Crontab教程,带有调度作业的示例

Crontab是一个持续运行并触发指定作业/命令的守护进程。crontab文件是一个简单的文件,其中包含有关作业的条目。这些条目包括时间信息和将要执行的命令。Crontab也被简单地称为cron。

null

Crontab守护程序服务状态

该操作由cron守护进程完成。cron守护进程的状态如下所示。

$ sudo systemctl status cron
图片[1]-Linux Crontab教程,带有调度作业的示例-yiteyi-C++库
使用systemctl获取cron守护程序的状态

停止Cron服务

停止cron和查看cron的状态一样简单。如果停止cron服务,则所描述的cron作业都将不起作用。

$ sudo systemctl stop cron

启动Cron服务

启动与停止类似。为了执行预定的cron作业,我们必须启动cron服务。

$ sudo systemctl start cron

Crontab表格格式

Cron表只是crontab保存有关作业的条目。每行是一个作业。条目为文本格式,易于编辑。我们可以用 -我 参数。

$ crontab -l
Crontab Syntax
Crontab语法

下面一行是backup命令将触发的作业。

# m h  dom mon dow   command                                                                                                            0 0   *   *   *    backup

该行以#is命令开头,下面有一些关于列的说明。

  • 是分钟
  • 小时 是小时
  • 多姆 是一个月的哪一天
  • 周一 是月份
  • 道指 是星期几吗

另一个有用的图表如下。

*     *     *   *    *        command to be executed-     -     -   -    -|     |     |   |    ||     |     |   |    +----- day of week (0 - 6) (Sunday=0)|     |     |   +------- month (1 - 12)|     |     +--------- day of        month (1 - 31)|     +----------- hour (0 - 23)+------------- min (0 - 59)

将作业添加到Cron

若要向crontab添加新作业,将对文件进行编辑。

$ crontab -e

我们已经在编辑模式下打开crontab文件,并添加以下行作为作业。我们在所有列上都加了星号,所以 回音“嗨” 将在一个月的每一天、每一个月、每一周的每一天中每一小时的每一分钟运行。我们将在下面看到更多细节。

  * *   *   *   *    echo "Hi"
Add Job To Cron
将作业添加到Cron

退出时,保存文件将激活新添加的作业。

相关文章: 带有at、atq、atrm和批处理示例的Linux调度命令

Crontab时间定义

cron的魔力和细节在于作业的时间安排。下表提供了有关cron计时示例的快捷方式。

  • @重新启动 将在启动时启动
  • @每年 每年运行一次“0 0 1 1*”
  • @每年 同@年
  • @每月 每月运行一次“0 0 1**”
  • @每周 每周运行一次“0 0**0”
  • @每天 每天运行一次“0***”
  • @午夜 与@daily相同
  • @每小时 每小时运行一次“0***”

Crontab环境

运行作业时,将创建新环境。此环境具有以下环境变量。

限制用户的Cron访问

可以根据用户名限制用户的Cron作业使用。要禁用用户cron新作业,请将用户添加到 /etc/cron.allow

$ echo attacker > /etc/cron.deny

在此示例中,用户攻击者无法向cron添加作业。

删除现有Cron作业

如果我们不需要以前定义的cron作业呢。我们可以通过编辑轻松地删除作业 cron 配置文件。我们将使用 -e 删除所有作业的选项。

$ crontab -e

删除特定用户作业

我们还可以指定一个特定的用户来编辑给定的用户作业。我们将使用 -u 选项,该选项是 user . 我们还将提供一个用户名。在本例中,我们将编辑用户的cron作业 ismail .

$ crontab -e -u ismail

列出Crontab中存储的所有作业

因为我们可以很容易地创建cron作业,所以我们可能需要列出它们。我们将使用 -r 选项以列出当前用户配置文件中存储的所有cron作业。

$ crontab -r

列出特定的用户Cron作业

我们还可以指定用户名,以便只列出给定的用户cron作业。我们将使用 -u -r 具有用户名的选项。在本例中,我们将列出用户的cron作业 john .

$ crontab -r -u john

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享