首页 > 代码库 > 鸟哥的Linux私房菜——第十九章:例行命令的建立

鸟哥的Linux私房菜——第十九章:例行命令的建立

 

  视频链接:

 

1. 什么是例行性命令                (分为两种,一种是周期性的,一种是突发性的)
1.1 Linux 工作排程的种类: at, cron          ( at是突发的,cron是周期的)
1.2 系统上常见的例行性命令有哪些?         (log rotate,数据库rpm,locate数据库)
2. 仅执行一次的工作排程: at, atq, atrm
3. 循环执行的例行性命令: cron
3.1 使用者的设定: crontab
3.2 系统的设定: /etc/crontab

 

 

at  仅进行一次的工程安排

这个现在好多都是预设关闭的,所以我们要先打开at

/etc/init.d/atd restart


#再设定一下开机启动
chkconfig --level 35 atd on

现在的版本太新了?我的Ubantu是有at的,而且Ubantu没有chkconfig命令,所以上面的代码先不管它,如果你的Linux不管什么版本真的不支持at再来写,还有jim用户执行的at命令的记录存在/var/spool/at/jim里面

 

并不是所有人都可以去执行at的,因为万一有人入侵你的主机,随便一个账号就去执行at了,搞不好在什么时候给你来一锤子,你就JJ了...所以我们要加以限制,这里有两个档案/etc/at.allow和/etc/at.deny

技术分享

 

 

 明白了上面的种种条件限制规则之后,我们正式的开始at命令之旅

#再过五分钟后,将 /root/.bashrc 寄给 dmtsai 这个使用者
at now + 5 minutes
/bin/mail dmtsai -s "testing at job" < /root/.bashrc
<EOT>     #<==这里输入 [ctrl] + d 就会出现 <EOF> 的字样!代表结束!



#由于机房预计于 2005/09/16 停电,我想要在 2005/09/15 23:00 关机
at 23:00 2005-09-15
/bin/sync
/bin/sync
/sbin/shutdown -h now
<EOT>                #按下ctrl+d 就结束

at在工作安排的使用上,系统会将at工作独立出bash环境中,直接交给atd程序,所以你离线也是ok的,没网也行哦,两个命令atq是查看at排程,atrm是删除at排程

#查询目前主机上面有多少的 at 工作排程?
atq


#将上述的第 10 个工作移除!
atrm 10

结束.

 

crontab 循环执行的例行性命令

和at一样,也是两个文档/etc/cron.allow和/etc/cron.deny

技术分享

执行crontab之后,记录会存到/var/spool/cron里面,如果是jim执行的,那就在/var/spool/cron/jim里面

 crontab

-u :只有 root 才能进行这个任务,亦即帮其它使用者建立/移除 crontab;
-e :编辑 crontab 的工作内容
-l :查阅 crontab 的工作内容
-r :移除 crontab 的工作内容

#用dmtsai在每天的12:00发信给自己

crontab -e

0 12 * * * mail dmtsai -s "at 12:00" < /home/dmtsai/.bashrc
 

可以看到,我们进去cron之后有6个字段需要我们编辑,这6个字段分别代表的意思是

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

 

 

 

 

 

 

 

 

 

 

 

 


   

鸟哥的Linux私房菜——第十九章:例行命令的建立