crontab定时作业

crontab用于在指定时间执行某项作业,如执行脚本或命令。

  1、crontab -e      创建一个crontab文件,并添加作业(这个crontab的拥有者是创建者)。

    

    这里要注意:必须指定shell和环境变量,不然执行脚本时程序在编译的时候找不到交叉编译器,就会出现编译失败。

    如果不指定环境变量crontab的默认环境变量是 PATH=/usr/bin:/bin。

    上面的截图部分表示每天的20:48都会执行这个命令,如果dom下面“ 表示每天,mon下面“*表示每月。

    如果定时执行几月几日几点几分执行后面的命令,在下面设置对应的时间即可。

  以下是系统的定时作业:

     m  :分钟              h  :小时            dom :日               mon :月      * :dai

    dow    :day of week 每周的第几天(0 和7都可以表示星期天)  

    command  :表示要执行的命令。(在执行命令或脚本时,当执行的命令和脚本文件不在当前目录时,要写绝对路径

  2、启动crontab服务:    service cron start (有的用service crond start )或者用 /etc/init.d/cron start

  3、关闭服务:        service cron stop 

  4、查看crontab服务:     crontab  -l

  5、删除定时作业:       crontab  -r

  6、查看crontab服务的状态:  service cron status    

    7、重启crontab服务:     service cron restart

当你想要查询所有对contab操作日志可在/var/log/cron.log文件中查看:

注意:如果在/var/log/目录下没有找到cron.log文件,则修改以下文件:

  (1) sudo vim /etc/rsyslog.d/50-default.conf : 将cron的注释去掉。

   

      (2) 重启  sudo service rsyslog restart

crontab中的输出配置

  crontab中经常配置运行脚本输出为:>/dev/null 2>&1,来避免crontab运行中有内容输出。
  shell命令的结果可以通过‘> ’的形式来定义输出
  /dev/null 代表空设备文件
  > 代表重定向到哪里,例如:echo "123" > /home/123.txt
  1  表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
  2  表示stderr标准错误
  &  表示等同于的意思,2>&1,表示2的输出重定向等同于1
  那么重定向输出语句的含义:
  1>/dev/null   首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,不显示任何信息。
  2>&1     表示标准错误输出重定向等同于标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。

 

使用者权限文件:

  文件:  /etc/cron.deny      没有的话可进行创建

  说明: 该文件中所列用户不允许使用crontab命令

  文件:/etc/cron.allow         没有的话可进行创建

  说明:该文件中所列用户允许使用crontab命令

  文件:/var/spool/cron/      没有的话可进行创建

     说明:所有用户crontab文件存放的目录,以用户名命名

 

posted @ 2017-12-19 21:56  轻轻的吻  阅读(935)  评论(0编辑  收藏  举报