Linux中自动化组件 --- crontab

crontab是Linux系统在固定时间或在固定时间间隔自动执行其中预定义作业(Job)的一个自动化组件。

 

使用方式:

crontab -l 列出当前用户的所有预定义cron作业(Job)
crontab -e 编辑当前用户的cron作业(可以增加、修改和删除)
crontab -r 删除当前用户的所有cron作业(慎用)

 

crontab -u user -l 列出指定用户的所有预定义作业
crontab -u user -e 编辑指定用户的cron作业(可以增加、修改和删除)
crontab -u user -r 删除指定用户的所有cron作业(慎用)

 

命令执行的结果,无论是标准输出还是错误输出,都将以邮件形式发给用户。

 

时程表的格式如下

f1 f2 f3 f4 f5 program

f1表示分钟,取值范围为0~59
f2表示小时,即几点,取值范围为1~23
f3表示日,即几号,取值范围为1~31
f4表示月份,取值范围为1~12
f5星期,取值范围为0~6(其中0表示星期日)
program表示要自动执行的程序

 

当f1为*时,表示每分钟都要执行program一次,f2为*时,表示每小时都要执行program一次,以此类推;
当f1为a-b时,表示从第a分钟到第b分钟这段时间内要一直执行program,以此类推;
当f1为*/n时,表示每n分钟(个时间间隔)执行program一次,当f2为*/n时,表示每n小时执行program一次,以此类推;
当f1为a,b,c,...时,表示第a,b,c,...分钟都要执行program一次,当f2为a,b,c,...时,表示第a,b,c,...小时都要在执行program一次,以此类推;

 

例子:

#每天早上7点执行一次 /bin/ls:
0 7 * * * /bin/ls 

 

#在 12 月, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup: 
0 6-12/3 * 12 * /usr/bin/backup

 

#周一到周五每天下午 5:00 寄一封信给 alex@domain.name:
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata

#若是你不希望收到这样的信,请在行末尾空一格之后加上 > /dev/null 2>&1 即可
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata > /dev/null 2>&1

 

#每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha" 
20 0-23/2 * * * echo "haha" 

 

#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点
0 11 4 * mon-wed date

 

#1月1日早上4点 
0 4 1 jan * date

 

文件的位置:

1. 在/etc目录下有一个crontab文件,这里存放有系统运行的一些调度程序。每个用户可以建立自己的调度crontab。
2. 作业与它们预定的时间储存在文件/usr/spool/cron/crontabs/username里。username使用户名,在相应的文件中存放着该用户所要运行的命令。
3. /usr/lib/cron/cron.allow表示谁能使用crontab命令。如果它是一个空文件表明没有一个用户能安排作业。如果这个文件不存在,而有另外一个文件/usr/lib/cron/cron.deny,则只有不包括在这个文件中的用户才可以使用crontab命令。如果它是一个空文件表明任何用户都可安排作业。两个文件同时存在时cron.allow优先,如果都不存在,只有超级用户可以安排作业。
4. 命令行中-r选项的作用是从/usr/spool/cron/crontabs目录下删除用户定义的文件crontab。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值