首页 > 代码库 > 鸟哥的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私房菜——第十九章:例行命令的建立