1、crontab命令的常用参数

  • crontab -e  编辑计划任务
  • crontab -l  查看计划任务
  • crontab -u zywqs -l 查看指定用户的计划任务

2、@reboot 表示重启时执行

@ /shells/xxx.sh

3、cron中的环境变量和bash 中的环境变量不一致,所以在写 cron 任务时,命令路径要求写全路径,或先在首部先定义PATH。用户的cron中默认 PATH=/usr/bin:/bin,如果使用其它路径,在任务文件的第一行加PATH=/path或者加入到计划任务执行的脚本中。

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/go/bin 
SHELL=/bin/bash
* * * * * /shells/xxx.sh


4、cron 任务中的标准输入输出会发送邮件到用户邮箱,如果不想有邮件,则可以在定时任务中加上重定向到/dev/null

* * * * * sh xxx.sh &>/dev/null

5、cron任务中不建议使用%,它有特殊用途,它表示换行的特殊意义,且第一个%后的所有字符串会被将成当作命令的标准输入,如果在命令中要使用%,则需要用 \ 转义  注意:将%放置于单引号中是不支持的

30 2 * * * /bin/cp -a /etc/ /data/etc`date +\%F_\%T`

6、实现秒级计划任务

#!/bin/sh
PATH=/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
for i in {1..60};do
if [ $[$i%5] -eq 0 ];then
echo `date` >> /tmp/time.log
fi
sleep 1
done