1.cron和crontab的区别:cron是系统进程,可以在无人工干预的情况下执行作业,crontab是命令,允许用户读写操作对应的作业。即用户通过修改crontab中的shell向cron提交作业,且crontab中需要提供这些脚本的绝对路径
2.crontab的格式:crontab的格式:分 时 日 月 星期 要运行的命令
例:31 21 * * * /app/bin/cleanup.sh 每天晚上21:31运行 /app/bin目录下的脚本cleanup.sh
30 21 1,10,15 * * /app/bin/update.sh 每月1,10,15号的21:31运行 /app/bin目录下的脚本cleanup.sh
0,30 18-23 * * * /app/bin/check.sh 每天18:00-23:00之间每隔30分钟运行/app/bin目录下的脚本check.sh
0 23 * * 6 /app/bin/send.sh 每周六23:00运行/app/bin目录下的脚本send.sh
3.crontab的常用命令:
crontab [-u user] -e -l -r 其中: [] 可给出也可不给出 -u 用户名。 -e 编辑crontab文件。 -l 列出crontab文件中的内容。 -r 删除crontab文件
注:建议在工作目录下创建一个crontab的备份文件,假设在自己的 $HOME目录下还有一个备份,如果不小心误删了crontab文件,那么可以将其拷贝到/var/spool/cron/<username>,其中<username>是用户名。如果由于权限问题无法完 成拷贝,可以用:$ crontab <filename>其中,<filename>是你在$HOME目录中副本的文件名。
4.crontab定时的时候往往只需后台运行,例:* * * * * /app/bin/send.sh 2>&1 &
解释: &表示在后台执行 > 代表重定向到哪里,例如:echo "123" > /home/123.txt /dev/null 代表空设备文件 1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null" 2 表示stderr标准错误 & 表示等同于的意思,2>&1,表示2的输出重定向等同于1 最后一个& , 是让该命令在后台执行