at相关文件linux
var/spool/at/ ---at指令制定运行的工做排程会以文本的方式记录到这个文档中,等待atd执行vim
/etc/inid.d/atd ----atd服务程序安全
/etc/at.allow ----容许执行at命令的帐号(有这个文件就不会理/etc/at.deny)bash
/etc/at.deny ----禁止使用at命令的帐号(at.allow不存在才会检查这个文件),系统默认使用这个文件 网络
cron相关文件app
/usr/bin/crontabui
/var/spool/cron/ ----相应的,这是cron的,不事后面还会以帐号做为判断【1-8】spa
/etc/cron.allow rest
/etc/cton.denyserver
/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