注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

谷搜互联网应用www.iguso.com

谷搜专注企业邮箱十二年

 
 
 

日志

 
 

crontab 的使用者的设定  

2014-08-07 17:04:25|  分类: Linux技术文章 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

crontab 的使用者的设定

  使用者想要建立循环型工作排程时,使用的是 crontab 这个指令啦~不过,为了安全性的问题, 与 at 同样的,我们可以限制使用 crontab 的使用者帐号O!使用的限制资料有:

  /etc/cron.allow:

  将可以使用 crontab 的帐号写入其中,若不在这个档案内的使用者则不可使用 crontab;

  /etc/cron.deny:

  将不可以使用 crontab 的帐号写入其中,若未记录到这个档案当中的使用者,就可以使用 crontab 。

  与 at 很像吧!同样的,以优先顺序来说, /etc/cron.allow 比 /etc/cron.deny 要优先, 而判断上面,这两个档案只选择一个来限制而已,因此,建议你只要保留一个即可, 谷搜企业邮箱免得影响自己在设定上面的判断!一般来说,系统预设是保留 /etc/cron.deny , 你可以将不想让他执行 crontab 的那个使用者写入 /etc/cron.deny 当中,一个帐号一行!

  当使用者使用 crontab 这个指令来建立工作排程之后,该项工作就会被纪录到 /var/spool/cron/ 里面去了,而且是以帐号来作为判别的O!举例来说, dmtsai 使用 crontab 后, 他的工作会被纪录到 /var/spool/cron/dmtsai 里头去!但请注意,不要使用 vi 直接编辑该档案, 因为可能由于输入语法错误,会导致无法执行 cron O!另外, cron 执行的每一项工作都会被纪录到 /var/log/cron 这个登录档中,所以罗,如果你的 Linux 不知道有否被植入木马时,也可以搜寻一下 /var/log/cron 这个登录档呢!

  好了,那么我们就来聊一聊 crontab 的语法吧!

  [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

  #分 时 日 月 周 |<==============指令串========================>|

  预设情况下,任何使用者只要不被列入 /etc/cron.deny 当中,那么他就可以直接下达『 crontab -e 』去编辑自己的例行性命令了!整个过程就如同上面提到的,会进入 vi 的编辑画面, 然后以一个工作一行来编辑,编辑完毕之后输入『 :wq 』储存后离开 vi 就可以了! 而每项工作 (每行) 的格式都是具有六个栏位,这六个栏位的意义为:

  代表意义分钟小时日期月份周指令

  数字范围0-590-231-311-120-7呀就指令啊

  比较有趣的是那个『周』O!周的数字为 0 或 7 时,美国空间都代表『星期天』的意思!另外, 还有一些辅助的字符,大概有底下这些:

  特殊字符代表意义

  *(星号)代表任何时刻都接受的意思!举例来说,例子一内那个日、月、周都是 * , 就代表着『不论何月、何日的礼拜几的 12:00 都执行后续指令』的意思!

  ,(逗号)代表分隔时段的意思。举例来说,如果要下达的工作是 3:00 与 6:00 时,就会是:

  0 3,6 * * * command

  时间参数还是有五栏,不过第二栏是 3,6 ,代表 3 与 6 都适用!

  -(减号)代表一段时间范围内,举例来说, 8 点到 12 点之间的每小时的 20 分都进行一项工作:

  20 8-12 * * * command

  仔细看到第二栏变成 8-12 O!代表 8,9,10,11,12 都适用的意思!

  /n(斜线)那个 n 代表数字,亦即是『每隔 n 单位间隔』的意思,例如每五分钟进行一次,则:

  */5 * * * * command

  很简单吧!用 * 与 /5 来搭配,也可以写成 0-59/5 ,相同意思!

  我们就来搭配几个例子练习看看吧!底下的案例请实际用 dmtsai 这个身份作看看O!后续的动作才能够搭配起来!

  例题:

  假若你的女朋友生日是 5 月 2 日,你想要在 5 月 1 日的 23:59 发一封信给他,这封信的内容已经写在 /home/dmtsai/lover.txt 内了,该如何进行?

  答:

  直接下达 crontab -e 之后,编辑成为:

  59 23 1 5 * mail kiki < /home/dmtsai/lover.txt

  那样的话,每年 kiki 都会收到你的这封信O!(当然罗,信的内容就要每年变一变啦!)

  例题:

  假如每五分钟需要执行 /home/dmtsai/test.sh 一次,又该如何?

  答:

  同样使用 crontab -e 进入编辑:

  */5 * * * * /home/dmtsai/test.sh

  那个 crontab 每个人都只有一个档案存在,就是在 /var/spool/cron 里面啊! 还有建议您:『指令下达时,最好使用绝对路径,这样比较不会找不到执行档O!』

  例题:

  假如你每星期六都与朋友有约,那么想要每个星期五下午 4:30 告诉你朋友星期六的约会不要忘记,则:

  答:

  还是使用 crontab -e 啊!

  30 16 * * 5 mail friend@his.server.name < /home/dmtsai/friend.txt

  真的是很简单吧!呵呵!那么,该如何查询使用者目前的 crontab 内容呢?我们可以这样来看看:

  [dmtsai@www ~]$ crontab -l

  59 23 1 5 * mail kiki < /home/dmtsai/lover.txt

  */5 * * * * /home/dmtsai/test.sh

  30 16 * * 5 mail friend@his.server.name < /home/dmtsai/friend.txt

  # 注意,若仅想要移除一项工作而已的话,谷搜外贸企业邮箱必须要用 crontab -e 去编辑~

  # 如果想要全部的工作都移除,才使用 crontab -r O!

  [dmtsai@www ~]$ crontab -r

  [dmtsai@www ~]$ crontab -l

  no crontab for dmtsai

  看到了吗? crontab 『整个内容都不见了!』所以请注意:『如果只是要删除某个 crontab 的工作项目,那么请使用 crontab -e 来重新编辑即可!』如果使用 -r 的参数,是会将所有的 crontab 资料内容都删掉的!千万注意了!

  评论这张
 
阅读(5)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018