Crontab示例: 在Linux中安排Cron作业

时间:2020-03-05 15:26:17  来源:igfitidea点击:

在本教程中,将介绍如何使用Linux Crontab文件设置Cron作业。
Linux Crontab将允许我们在后台定期安排作业执行。

我们可以安排要执行的任何命令/脚本,将其放在Linux系统的Crontab中,以便它将在预定时间自动执行,并将邮寄详细信息。

1. CRONTAB命令

查看cron任务

以下命令将列出当前登录用户的计划Cron作业:

# crontab -l

如果我们已以root用户身份登录,则它将显示root用户下设置的CRON作业。
如果要在另一个用户下设置设置的Cron作业,则必须使用以下命令:

# crontab -l -u username

编辑Cron任务

我们可以按如下方式添加或者编辑当前登录用户的Cron作业:

# crontab -e

这将打开一个文件,在那里我们可以添加/修改Cron作业。
该文件实际上位于"/var/spool/cron/username"中。
命令"Crontab -e"将正常工作,如"VI"编辑器中的"文件"。

如果要修改其他用户的Cron作业,则需要使用命令:

# crontab -e -u username

删除cron工作

如果要删除当前登录用户的Cron作业,请执行以下命令:

# crontab -r

这将删除所有Cron作业而不要求确认。
如果要交互式删除,则需要使用以下命令:

# crontab -ir

如果要删除其他用户的Cron作业,请执行以下操作:

# crontab -ir -u username

从文件中加载Cron作业

如果我们有一个包含所有计划的Cron作业的文件,则可以执行以下命令将这些作业加载到Crontab中。

# crontab -u username cronfile.txt

这将从文件cronfile.txt加载作业。

2.安排CRONTAB的工作

CRONTAB条目的语法如下:

Minute Hour DOM Month DOW Command_to_be_Executed

分钟=>在哪一分钟待执行的作业。
小时=>在哪个小时内需要执行工作。
DOM =>当时需要执行的月份的月份=>在哪个月中需要执行作业的Dow =>需要执行作业的一天。

我们将经历一些澄清的例子。

3. CRONTAB示例

例1:安排在5月23日上午10点30日运行的Cron工作

这可以完成以下操作:

30 10 23 05 * sh /root/sh

其中

30 =>第30分钟10 =>第10小时23 =>第23天06 =>六月* =>每周一天

示例2:安排每分钟运行的作业

* * * * * sh /root/test.sh

其中* =每分钟* =每小时* =每天* =每天一个月* =每周的每一天

示例3:安排每10分钟运行的Cron作业。

这可以以两种方式设置。

0,10,20,30,40,50 * * * * sh /root/test.sh

可以通过以下方式完成相同的方法:

*/10 * * * * sh /root/test.sh

示例4:在周一到星期五,安排一个Cron作业以每5分钟运行。

这可以通过以下Cron作业完成

*/5 * * * 1-5 sh /root/test.sh

这里*/5是指"每5分钟和"1-5"是指周一至周五的。

(0-6 =星期六 - 星期六)

示例5:安排在每个星期四在"3.00 PM"运行的Cron作业。

00 15 * * 4 sh /root/test.sh

这里"00 15"是指3.00 PM和"4"是指"星期四"。

4. CRONTAB的特殊单词使用

我们将能够在CRONTAB中使用一些特殊的单词来表示一些特定的时间。
下表显示了这种特殊的单词及其含义。

@reboot Run once, at startup
@yearly Run once in a year, similar to "0 0 1 1 *"
@monthly Run once in a month, similar to "0 0 1 * *"
@weekly Run once in a week, similar to "0 0 * * 0"
@daily Run once in a day, similar to "0 0 * * *"
@hourly Run once in an hour, similar to "0 * * * *”

例如,我们可以安排每天12点运行的作业,如下所示:

@daily sh /root/test.sh

5.处理Cron输出

一种。向邮件地址发送报告

我们可以设置要其中接收执行的Cron作业通知的邮件地址,如下所示:

[email protected]

湾如果要禁用发送输出邮件,可以将其设置为如下

* * * * * sh /root/test.sh > /dev/null 2>&1

其中2指的是"stderr"(错误),1是指stdout(标准输出)。
因此,"2>&1"将在一个数据流中创建错误和输出。
因此,DataStream(错误和输出)将被发送到/dev/null一个特殊的设备文件,它将丢弃在没有通知的情况下丢弃写入它的所有数据。

C。如果要丢弃输出邮件,但需要在错误的情况下发送邮件,需要设置如下

* * * * * sh /root/test.sh > /dev/null