(一)计划任务

1、daemon:后台服务(进程),并且持续不断的运行。

           如Apache 服务进程。

2、at命令下达计划任务

1)ps -ef | grep atd

  clip_p_w_picpath002

  其中 clip_p_w_picpath004 1为守护进程

2)在/tmp/work目录下,创建一个test.sh的脚本文件

  vi test.sh输入内容如下图

  clip_p_w_picpath006

  bash test.sh执行脚本

  clip_p_w_picpath008

3)echo > time.sh 清除time.sh文件的数据;

  at 16:00 按下回车,进入at>提示符,下达相应的指令;

  at>bash /tmp/work/test.sh 确认命令输入完毕按ctrl d结束输入;

  16:00之后,执行cat time.txt

  显示16:00进行了执行

  clip_p_w_picpath010

4)at 16:10

  atq 查看at任务

  clip_p_w_picpath012

  4(首个数字) 任务编号表示当天下达的第几个at任务

  2013-03-03 日期

  16:10 时间

  root 执行者

  下达的at命令任务保存目录

  /var/spool/at/

  vi a00009015a735e查看脚本文件

  clip_p_w_picpath014

  atd会周期性的扫描/var/spool/at/目录的文件及文件里的设定。每分钟扫描一次。


3、at命令删除计划任务

  atrm 任务编号

  效果等同于删掉/var/spool/at目录下的文件

  删除之前用atq命令查看一下

  clip_p_w_picpath016

  注意:at只能下达单次的计划任务。


4、周期性的计划任务下达

  cron 指下达周期性计划任务这一系列的指令。

  同at一样,有一个daemon服务在后台持续运行,该服务称为crond

  clip_p_w_picpath018

 1)定制个人计划任务

    crontab -e

 2)书写格式

    先写五颗星* * * * *,从左到右依次代表

    minute 每到多少分钟

    hour 每到多少小时

    day of month 每到一个月的多少天

    month 每到多少个月

    day of week 每到一周的某几天

    * * * * * 查看cron的计划任务配置文件的时候,时间上要从右往左读。

    0-23/2 中的/2不是除以2的意思,

           /后表示间隔的步长

           */2 表示每隔两小时

    例如:

    #* * * * *

    02 4 * * * bash /tmp/xxx.sh

    注意:为了避免执行失败,比如有重定向等特殊字符时会导致执行失败。建议下达计划任务时统

          一的用bash解释一个脚本,然后在脚本中写相应的任务,如果有必要,在脚本中加载某个

          用户的环境变量。


    clip_p_w_picpath020

3)

   crontab -l查看当前指定的周期性计划任务

   clip_p_w_picpath022

4)crontab -r 删除全部的周期性计划任务(慎用)。

  建议crontab -e编辑删除相应的周期性计划任务


5)查看文件保存目录及内容

  clip_p_w_picpath024


  注意:crond每分钟扫描一次/var/spool/cron/目录

        atd同样也是每分钟扫描一次/var/spool/at目录


6)执行秒一级的周期性计划任务

  sleep n 等待n秒时间再循环开始


5、系统级的计划任务

  保存在/etc/crontab

1)vi /etc/crontab

  clip_p_w_picpath026

  SHELL指定用的哪个脚本类型

  PATH变量指定 。如果不指定,意味着命令找不到或者必须以绝对路径的方式执行

  MAILTO=root这里所做的计划任务完成都会发信给root用户

  HOME指定系统级计划任务时家目录的位置


  run-parts:

  每小时的第一分钟执行小时级的计划任务

  每天的4:02执行每日级的计划任务

  每个周日的4:22执行周级的计划任务

  每个月的第一天的4:42执行月级计划任务

  如果错过系统级计划任务的时间(关机或重启),/etc/下的anacron配置文件执行补救工作

  vi /etc/anacrontab

  clip_p_w_picpath028

  1 65 每天开机65分钟之后执行cron.daily

  7 70 每7天开机70分钟之后执行cron.weekly

  30 75 每30天开机75分钟之后执行cron.monthly


2)时间间隔20分钟设置的原因:

  避免由于在特殊时间,计划任务交叉在同一时间造成系统负担过重。建议下达个人计划任务时,

  根据需要酌情把时间错开。


3)cat mlocate.cron

  clip_p_w_picpath030

  renice +19 -p $$ >/dev/null 2>&1

  把所有程序的输出内容输出到/dev/null(黑洞),2>&1表示将错误信息(2表示错误信息代号)也

  输出到黑洞

  clip_p_w_picpath032

6、进程描述符

     进入/proc/目录下以数字命名的目录下的/fd/目录

     fd目录下至少有3个软链接


  clip_p_w_picpath034

  其中0代表标准输入;标准输入指输入设备,默认是键盘

      1代表标准输出;默认是屏幕

      2代表错误输出;默认也是屏幕


7、重定向符号:

1)>  标准输出重定向

2)<  标准输入重定向

3)》 标准输出追加

4)《 标准输入追加

5)2加><》《 表示标准错误重定向

6)| 管道符号

例如:

(1)mysql < backup.sql

    表示将这个mysql数据库备份文件内容输入给mysql命令

(2)ll | grep txt

    ll的输出当成后面命令的输入;

    grep后直接跟正则表达式

    clip_p_w_picpath036