7.例行性工作排程



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 

原文地址:https://www.cnblogs.com/eli01/p/3559660.html