科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Linux操作系统中例行性命令的建立 (2)

Linux操作系统中例行性命令的建立 (2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

假如你每一天早上8点要服务器连接上音响,并启动音乐来唤你起床;而中午12点希望 Linux 可以发一封信到你的邮件信箱,提醒你可以去吃午餐了;另外,在每年的你爱人的生日的前一天,先发封信提醒你,以免忘记这么重要的一天.....要怎样达到这个目的呢?其实是很简单的,只要使

作者:jinyuan 来源:赛迪网技术社区 2007年10月19日

关键字: 建立 命令 操作系统 Linux

  • 评论
  • 分享微博
  • 分享邮件

•就可以啦!有两件事要注意一下:(1) 指令的路径最好是下达绝对路径,这样比较不会找不到执行的档案喔!;(2) 第一个数字 */5 表示『每五分钟执行一次』的意思!

•例题三:假如你每个礼拜五下午 4:30 要告诉朋友星期六的约会不要忘记,如何下达指令?

  
[vbird@tsai vbird]# crontab -e 30 16 * * 5 
mail frend@test.domain.name < /home/vbird/frend.txt
  

•就成功啦!这样了不了呀!

察看个人用户的例行性命令:

如果你一直使用 crontab 这个方法来下达例行性命令的话,有可能有一些指令你会忘记了!那怎办呢?没关系,只要下达:crontab -l (注: -l 是 L 的小写喔!)。就可以知道你曾经下达的 crontab 的命令啰!

删除例行性命令:这个更简单,使用 crontab -r 就删除了。修改 /etc/crontab 档案,如果你是系统管理员的话,那么是否还是需要以 crontab -e 来管理你的例行性命令呢?当然不需要,你只要编辑 /etc/crontab 这个档案就可以啦!有一点需要特别注意喔!那就是 crontab -e 这个 crontab 其实是 /usr/bin/crontab 这个执行档,但是 /etc/crontab 可是一个『纯文字档』喔!你可以 root 的身份编辑一下这个档案哩!

  [root@tsai /root]# vi /etc/crontab SHELL=/bin/bash 
PATH=/sbin:/bin:/usr/sbin:/usr/bin
 MAILTO=root HOME=/ # run-parts 01 * * * * root 
run-parts /etc/cron.hourly 02 4 * * * root 
run-parts /etc/cron.daily 22 4 * * 0 root 
run-parts /etc/cron.weekly 42 4 1 * * root 
run-parts /etc/cron.monthly

看到这个档案的内容你大概就了解了吧!呵呵,没错!这个档案与将刚刚我们下达 crontab -e 的内容几乎完全一模一样!只是有几个地方不太相同:

oMAILTO=root:是说,当 /etc/crontab 这个档案中的例行性命令发生错误时,会将错误讯息或者是萤幕显示的讯息传给谁?由于 root 并无法在用户端中收信,因此,我通常都将这个 e-mail 改成自己的帐号,好让我随时了解系统的状况!

o01 * * * * root run-parts /etc/cron.hourly:在 #run-parts 这一行以后的命令,我们可以发现,五个数字后面接的是 root 喔!没错,这一行代表的是『执行的层级为 root 身份』当然啰,你也可以将这一行改写成其它的身份哩!而 run-parts 代表后面接的 /etc/cron.hourly 是『一个目录内(/etc/cron.hourly)的所有可执行档』,这也就是说,每个小时的 01 分,系统会以 root 层级的使用者去 /etc/cron.hourly 这个目录下执行所有可以执行的档案!后面的三行也都是类似的意思!你可以到 /etc/ 底下去看看,系统本来就预设了这四个目录了!你可以将每天需要执行的命令直接写到 /etc/cron.daily 即可,还不需要使用到 crontab -e 的程序呢!方便吧!

好!你现在大概了解了这一个咚咚吧!OK!假设你现在要作一个目录,让系统可以每 2 分钟去执行这个目录下的所有可以执行的档案,你可以写下如下的这一行在 /etc/crontab 中:

  */2 * * * * root run-parts /etc/cron.min

当然啰, /etc/cron.min 这个目录是需要存在的喔!那如果我需要执行的是一个『程序』而已,不需要用到一个目录呢?该如何是好?例如在侦测网路流量时,我们希望每五分钟侦测分析一次,可以这样写:

  */5 * * * * root /usr/local/mrtg-2/bin/mrtg /usr/local/apache/htdocs/mrtg/net/mrtg.cfg

没有了 run-parts 就是代表『一个档案』的意思啦!

如何!?建立例行性命令很简单吧!如果你是系统管理员的话,直接修改 /etc/crontab 这个档案即可喔!又便利,又方便管理呢!

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章