linux 注释crontab,linux学习之Crontab工具

Install

Crontab默认是安装的,可以使用crontab -l检测是否安装

使用service cron status是否启动 如果没安装

Debian:apt-get install cron

Centos: yum install vixie-cron

yum install crontabs

基础格式

参数:

-l 检查

-e 编辑

-u 指定用户

-r 删除

格式:

* cmd

第一个0-59分钟

第二个 0-23小时

第三个1-31日期

第四个 1-12月份

第五个* 0-7星期[0\7都可以表示星期日]

重启nginx:

每晚23:30重启nginx

30 21 service nginx restart

每月1,11,21日4:45重启nginx

45 4 1,11,22 service nginx restart

每月1到104:45重启nginx

45 4 1-10 service nginx restart

每隔2分钟重启nginx/2 service nginx restart

1-59/2 service nginx restart

晚上23点到早上7点每隔1h重启

0 23-7/1 service nginx restart

每天18点-23点每隔30min重启

0,30 18-23 service nginx restart

0-59/30 18-23 * service nginx restart

* 表示任何都匹配

A,B,C 表示A或B或C执行

A-B 表示在A-B的区间内执行

/A 表示每隔A执行一次

查看是否执行

Debian:tail -f /var/spool/mail/xxx [xxx为非root用户]

另外Debian默认cron日志记录状态默认是关闭的

root@server:~# nano /etc/rsyslog.conf

默认在63行去掉注释

root@server:~# /etc/init.d/rsyslog restart

root@server:~# tail -f /var/log/cron.log

可以查看是否执行了

配置文件

系统级和用户级

系统级任务调度:/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等

用户级任务调度:/var/spool/cron/crontabs目录中。其文件名与用户名一致

misc

每条任务调度执行完毕,系统都会将任务输出信息通过电子邮件的形式发送给当前系统用户,这样日积月累,日志信息会非常大,可能会影响系统的正常运行,因此,将每条任务进行重定向处理非常重要

0 /3 cmd >/dev/null 2>&1 忽略日志输出,/dev/null 2>&1 表示先将标准输出重定向到/dev/null,然后将标准错误重定向到标准输出.可以/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到

ERROR之环境变量

先在/etc/profile中add Love=/etc export Love source /etc/profile echo $Love crontab -e add这个 /1 * echo $Love >> /tmp/love.log tail -f /tmp/love.log 环境变量为未识别

传参方式

在脚本中定义环境变量

在脚本中加载环境变量文件 ‘source /etc/profile'

还有可以在crontab中加载环境变量

1)新创建的cron job,不会马上执行,至少要过2分钟才执行。如果重启cron则马上执行。 2)每条 JOB 执行完毕之后,系统会自动将输出发送邮件给当前系统用户。日积月累,非常的多,甚至会撑爆整个系统。所以每条 JOB 命令后面进行重定向处理是非常必要的: >/dev/null 2>&1 。前提是对 Job 中的命令需要正常输出已经作了一定的处理, 比如追加到某个特定日志文件。 3)当crontab突然失效时,可以尝试/etc/init.d/crond restart解决问题。或者查看日志看某个job有没有执行/报错tail -f /var/log/cron。 4)千万别乱运行crontab -r。它从Crontab目录(/var/spool/cron)中删除用户的Crontab文件。删除了该用户的所有crontab都没了。 5)在crontab中%是有特殊含义的,表示换行的意思。如果要用的话必须进行转义\%,如经常用的date ‘+%Y%m%d’在crontab里是不会执行的,应该换成date ‘+\%Y\%m\%d’`。

ERROR之第三个和第五个域执行的是或操作

四月的第一个星期日早晨1:59运行a.sh 59 1 1-7 4 * test date +\%w -eq 0 && /root/a.sh

半分钟执行

date;sleep 0.5s;date;

/1 date >> /tmp/datex.log/1 sleep 30s;date >> /tmp/datex.log

root@server:~# cat /tmp/datex.log

Sun May 15 15:20:01 EDT 2016

Sun May 15 15:20:31 EDT 2016

Sun May 15 15:21:01 EDT 2016

Sun May 15 15:21:31 EDT 2016

Sun May 15 15:22:01 EDT 2016

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值