at相关文件
var/spool/at/ ---at指令制定运行的工作排程会以文本的方式记录到这个文档中,等待atd执行
/etc/inid.d/atd ----atd服务程序
/etc/at.allow ----允许执行at命令的账号(有这个文件就不会理/etc/at.deny)
/etc/at.deny ----禁止使用at命令的账号(at.allow不存在才会检查这个文件),系统默认使用这个文件
cron相关文件
/usr/bin/crontab
/var/spool/cron/ ----相应的,这是cron的,不过后面还会以账号作为判断【1-8】
/etc/cron.allow
/etc/cton.deny
/var/log/cron ----cron执行的每一个例行工作杜辉记录在这里
/etc/crontab ----系统的例行性任务,编辑后也许需要重新启动一下crond服务(/etc/init.d/crond restart)
ancron相关文件
/etc/anacrontab
/var/spool/anacron/*
linux上常见的例行性工作【1-1,2】
1. linux工作排程的种类:at,cron 【1-0】
A:仅执行一次的工作排程 at【1-3,4】
# /etc/init.d/atd restart ----启动atd(linux系统中负责单一工作排程的服务)
# chkconfig atd on ----设置atd服务开机自动启动
一.实际运作单一工作排程
案例一:再过五分钟,将/root/.bashrc寄给root自己【1-5】
# at now + 5 minutes
at>/bin/mail root -s "testong at job" < /root/.bashrc
at><EOT> ----^d,代表结束
job 4 at 2013/11/30 15:38
案例二:将上述的at工作(第4个)内容列出来【1-6】
# at -c 4 ----第4号at工作实际执行的脚本内容
案例三:在2013/12/21 00:00关机
# at 00:00 2013-12-21
at>sync
at>sync
at>shutdown -h now
at><EOT>
job 5 at 2013-12-21 00:00
案例四:在2013/12/20 4:00在终端机/dev/tty1显示“It is coming....”
# at 04:00 1013-12-20
at>echo "It is coming......" > /dev/tty1 ---at指令时和终端无关的,因此必须制定输出到某个终端
at><EOT>
二:at工作的管理atq,atrm,batch
案例一:查询目前主机上面有多少at工作排程
# atq ----查看工作排程
# atrm 5 ----将5号单一工作排程干掉
案例二:让系统有空时才进行背景任务
# batch 00:00 2013-12-21 ----和上面的案例三相似,还是调用at来执行,不过会在cpu负载小于0.8是才执行,否则暂缓
at>sync
at>sync
at>shutdown -h now
at><EOT>
job 5 at 2013-12-21 00:00
# atq ---你看baech也是atq和atrm管理的
# atrm 6 ----假设该at任务为6
B:循环执行的例行性工作排程
注意:crond服务是系统默认随开机启动的;cron执行的每一个工作都会被记录到/var/log/cron中,因此这个检查这个文件有时候或许可以查杀木马
一:使用者设定例行工排程
案例一:用nemo身份每天12:00发信给自己
# crontab -e ----将进入vi编辑界面
#每项工作都是一行
0 12 * * * mail nemo -s "at 12:00" < /home/nemo/.bashrc ----minute hour day month week command【1-10】
案例二:每年11月19号23:59发一封邮件给yxl
# crontab -e
#女朋友的生日
59 23 19 11 * mail -s "Happy birthday!" < /home/nemo/lover.txt
案例三:每5分钟执行一次/home/nemo/test.sh
#crontab -e
* /5 **** /home/nemo/test.sh
案例四:每周六都和朋友有约,每周五16:30发一封邮件提醒他
# corn -e
30 16 * * 5 mail friend@his.server.name < /home/nemo/friend.txt
# cron -l ---查看当前账号所有的cron工作
# cron -r ----删除当前用户所有的cron工作排程(删除某个工作要cron -e在vi下删除对应那一行)
二:系统例行工作排程
# cat /etc/crontab ----该档案中记录系统周期性例行任务【1-11]】
1.指令形态
注意:/ect/crontab这个档案支持两种指令下达的方式【1-12】
案例一:指令形态
01 × × × × nemo mail -s "testing" yxl < /home/nemo/test.txt ----以nemo的身份每小时执行一次这个mail指令
案例二:目录规划
× /5 × × × × root run-parts /root/runcrono ----每5分钟以root身份执行一下/root/runcrono下的所有可执行文件
× /5 × × × × root run-parts /bin/mrtg /etc/mrtg/mrtg.cfg ----每5分钟侦测一下网络流量
2.一些注意事项
a:资源分配不均【1-13】
b:取消不要的输出项目(数据流重导向)
c:安全检验(检查/var/log/cron)
d:周与日月不可同时并存
三:可唤醒停机期间的工作任务 anacron
1.什么是anacron【1-14,15】
# ll /etc/cron*/*ana* ----在每天、每周、每月的排程目录中都能找到anacron的脚本文件
# cat /etc/cron.daily/0anacron ----看一下脚本文件的内容
# cat /etc/anacrontab ----查看anacron执行文档【1-16】
# more /var/spool/anacron/* ----查看anacron的执行记录【1-17】
# anacron -a cro.daily ----运作流程【1-18】
# chkconfig --list anacron ----查看anacron是否会在开机时自动执行
2.重点回顾【1-19】
3.本章习题
习题一:工作排程中有一个指令产生很多不重要的信息,避免其发邮件给root
# vim /etc/crontab
* /3 * * * * root /usr/local/ping.sh > /dev/null 2>&1 ----标准错误信息和标准输出信息都丢弃(分 时 日 月 周 执行者 指令)
习题二:2013/12/21 寄一封信给yxl
# at 1am 2013-12-21
at>/bin/mail yxl -s "I will be with you forever" < /home/nemo/lastword.txt
at><EOT>
习题三:每个周一至周五的下午3:30执行以下/usr/local/bin/tea_time.sh
# cron -e
30 15 * * 1-5 /usr/local/bin/tes_time.sh
习题四:系统每天、每周、每月各进行什么样的工作
# ll /etc/cron*
习题五:每个星期六凌晨三点去系统搜寻一下内有SUID/SGID的任何档案!并将结果输出到/tmp/uidgid.files
# vim /etc/crontab
0 3 * * 6 root find / -perm +6000 > /tmp/uidgid.files
原文:http://www.cnblogs.com/eli01/p/3559660.html