crontab 误区

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
该 文件下的前四行内容为crontab的环境变量,SHELL变量的值指定系统使用的SHELL环境(该样例为bash shell),PATH变量定义了执行命令的路径。Cron的输出以电子邮件的形式发给MAILTO变量定义的用户名。若是MAILTO变量定义为空字符 串(MAILTO=""),电子邮件不会被发送。执行命令或脚本时HOME变量可用来设置基目录。
注:以上系统会默承认以不用修改任何!

在root用户下,能够直接vim /etc/crontab文件进行脚本的添加定时任务脚本,而在其余普通用户下能够经过crontab –e 进行脚本的添加

编辑完成,能够用crontab –l进行查看脚本信息

定时命令脚本解析:
从表格中能够看出脚本格式以下:
minute hour day month week user-name command
minute---分钟 (0-59)
  hour------小时(0-23)
  day--------日期(1-31)
  month---月份(1-12)
  week----星期(0-6) //0表明星期天
  除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*表明全部的取值范围内的数字,"/"表明每的意思,"*/5"表示每5个单位,"-"表明从某个数字到某个数字,","分开几个离散的数字。如下举几个例子说明问题:nginx

crontab -u howhy -eshell

* 3-6 * * * /bin/bash /opt/local/nginx/sbin/nginx -s reload 这个错误的表示零晨3点到6点每分钟都重启nginxvim

要表示零晨3点到6点每整点执行重启nginx 最小单位即分就为00bash

要求:测试

 1.要有注释spa

 2.要先进行测试server

 3.有标准输出时不要有>/dev/null 2>&1若没有则能够加crontab

 4.通常要用绝对路径ip

 5.目录文件要存在it

每小时打包,包的文件名要精确到小时 tar zcf /opt/service_$(date +%F-%H).tar.gz /etc/services 要不会覆盖原来打包的文件 天天备份能够精确到到tar zcf /opt/service_$(date +%F).tar.gz /etc/services

crontab -e

00 */2 * * * /bin/sh /server/scripts/tar.sh >/dev/null 2>&1 每两个小时执行tar.sh 注意分 

00 */2 * * * tar zcf /opt/service_$(date +\%F-\%H).tar.gz /etc/services 

若脚本中引用了环境变量则须要在该脚本中从新定义引用的环境变量

相关文章
相关标签/搜索