【shell】crontab知识点总结

it2022-05-05  136

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                 最后一个& , 是让该命令在后台执行

 

 


最新回复(0)