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

时间:2021-05-31 10:46:50

  视频链接:http://www.bilibili.com/video/av11008859/

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 atd on

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

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

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

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

#再过五分钟后,将 /root/.bashrc 寄给 dmtsai 这个使用者
at now + minutes
/bin/mail dmtsai -s "testing at job" < /root/.bashrc
<EOT> #<==这里输入 [ctrl] + d 就会出现 <EOF> 的字样!代表结束! #由于机房预计于 // 停电,我想要在 // : 关机
at : --
/bin/sync
/bin/sync
/sbin/shutdown -h now
<EOT> #按下ctrl+d 就结束

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

#查询目前主机上面有多少的 at 工作排程?
atq #将上述的第 个工作移除!
atrm

结束.

crontab 循环执行的例行性命令

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

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

执行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私房菜——第十九章:例行命令的建立

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

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

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

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

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

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