linux中的工作排程

一、linux中工作排程的种类:
1、例行性工作排程:每隔一定时间就要办的事情,如上班打卡;linux中通过crontab命令,实现例行性工作排程
2、突发性工作排程:仅运行一次就结束的,如打折促销;linux中通过at命令,实现突发性工作排程

二、at
at用来处理仅运行一次就结束排程的命令,不过要运行at命令,必须先有atd这个服务的支持。
at的运行方式:我们使用at这个命令产生所要运行的工作,并将这个工作以文字档的方式写入/var/spool/at目录内,该工作便能等待atd这个服务的取用和运行了。
at命令的使用权限:1、在、/etc/at.allow文件内的用户; 2、不在/etc/at.deny文件内的用户; 3、root用户
基本语法:
root@www ~]# at [-mldv] TIME
[root@www ~]# at -c 工作号码选项与参数:
-m  :当 at 的工作完成后,即使没有输出信息,亦以 email 通知使用者该工作已完成。
-l  :at -l 相当於 atq,列出目前系统上面的所有该使用者的 at 排程;
-d  :at -d 相当於 atrm ,可以取消一个在 at 排程中的工作;
-v  :可以使用较明显的时间格式列出 at 排程中的工作列表;
-c  :可以列出后面接的该项工作的实际命令内容。
TIME:时间格式,这里可以定义出『什么时候要进行 at 这项工作』的时间,格式有:
  HH:MM                        ex> 04:00
        在今日的 HH:MM 时刻进行,若该时刻已超过,则明天的 HH:MM 进行此工作。
  HH:MM YYYY-MM-DD              ex> 04:00 2009-03-17
        强制规定在某年某月的某一天的特殊时刻进行该工作!
  HH:MM[am|pm] [Month] [Date]  ex> 04pm March 17
        也是一样,强制在某年某月某日的某时刻进行!
  HH:MM[am|pm] + number [minutes|hours|days|weeks]
        ex> now + 5 minutes  ex> 04pm + 3 days
        就是说,在某个时间点『再加几个时间后』才进行。

三、crontab
crontab的运行方式:当使用crontab创建工作行程后,该工作就会被记录到/var/spool/crontab/$username($username 代表执行名的用户,如:ym用户执行了crontab命令,那么这项工作形成就会被写入/var/spool/crontab/ym文件中去)。注意:不要直接使用vim访问该文件,否则可能由于语法错误,导致crontab无法运行。
crontab命令的使用权限:1、在/etc/crontab.allow文件中的用户; 2、不再/etc/crontab.deny文件中的用户; 3、root用户
基本语法:
[root@www ~]# crontab [-u username] [-l|-e|-r]选项与参数:
-u  :只有 root 才能进行这个任务,亦即帮其他使用者创建/移除 crontab 工作排程;
-e  :编辑 crontab 的工作内容
-l  :查阅 crontab 的工作内容
-r  :移除所有的 crontab 的工作内容,若仅要移除一项,请用 -e 去编辑。
范例一:用 dmtsai 的身份在每天的 12:00 发信给自己
[dmtsai@www ~]$ crontab -e
# 此时会进入 vi 的编辑画面让您编辑工作!注意到,每项工作都是一行。
0  12  *  *  * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc
#分 时 日 月 周 |<==============命令串========================>|

每项工作的格式都是具有6个栏位,这六个栏位的意义分别表示:
代表意义     分钟     小时     日期     月     周     命令
数字范围    0-59     0-23    1-31    1-12   0-7   工作命令

辅助字符:
*(星号):代表任何时刻都接受的意思
,(逗号):代表分隔时段的意思。举例来说,如果要下达的工作是 3:00 与 6:00 时,就会是:0 3,6 * * * command 时间参数还是有五栏,不过第二栏是 3,6 ,代表 3 与 6 都适用!
-(减号):代表一段时间范围内,举例来说, 8 点到 12 点之间的每小时的 20 分都进行一项工作:20 8-12 * * * command 仔细看到第二栏变成 8-12 喔!代表 8,9,10,11,12 都适用的意思!
/n(斜线):那个 n 代表数字,亦即是『每隔 n 单位间隔』的意思,例如每五分钟进行一次,则:*/5 * * * * command 很简单吧!用 * 与 /5 来搭配,也可以写成 0-59/5 ,相同意思!

练习:
每天凌晨3点执行一次/usr/local/nginx/html/test.php 文件;
使用crontab -e 进入编辑:
     0 3 * * * /usr/local/nginx/html/test.php 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值