Crontab示例: 在Linux中安排Cron作业
在本教程中,将介绍如何使用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