利用CRONTAB自动定时执行任务(ARM-LINUX)

2019-07-12 15:54发布

本人的项目中,应为系统的需要,需要在嵌入式环境下,实现开机自启动定时运行脚本/程序,以实现自动化。一开始是利用while 循环与 sleep 实现定时执行命令,而在了解到crond这一机制后,发现自己的嵌入式平台所搭载的Angstrom系统中也支持crontab功能,于是对其进行探究。
首先,关于什么是crontab? crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
如何编辑、利用crontab的功能?  如要将crontab应用于当前用户,使用命令crontab -e,即可进入crontab的编辑界面。其基本格式如下:  * * * * *cmd  上述5个*分别代表分、时、天、周、月,默认情况下*即代表每一/分/时/天/周/月,也可以用*/x表示每x分/时/天/周/月。
附:个别实例  examle 1:每1分钟执行一次command  命令:  * * * * * command  examp2:每小时的第3和第15分钟执行  命令:  3,15 * * * * command  example3:在上午8点到11点的第3和第15分钟执行  命令:   3,15 8-11 * * * command  example4:每隔两天的上午8点到11点的第3和第15分钟执行  命令:  3,15 8-11 */2 * * command  example5:每个星期一的上午8点到11点的第3和第15分钟执行  命令:  3,15 8-11 * * 1 command  example6:每晚的21:30重启smb  命令:  30 21 * * * /etc/init.d/smb restart  example7:每月1、10、22日的4 : 45重启smb  命令:  45 4 1,10,22 * * /etc/init.d/smb restart  example8:每周六、周日的1 : 10重启smb  命令:  10 1 * * 6,0 /etc/init.d/smb restart  example9:每天18 : 00至23 : 00之间每隔30分钟重启smb  命令:  0,30 18-23 * * * /etc/init.d/smb restart  example10:每星期六的晚上11 : 00pm重启smb  命令:  0 23 * * 6 /etc/init.d/smb restart  example11:每一小时重启smb  命令:  * */1 * * * /etc/init.d/smb restart  example12:晚上11点到早上7点之间,每隔一小时重启smb  命令:  * 23-7/1 * * * /etc/init.d/smb restart  example13:每月的4号与每周一到周三的11点重启smb  命令:  0 11 4 * mon-wed /etc/init.d/smb restart  example14:一月一号的4点重启smb  命令:  0 4 1 jan * /etc/init.d/smb restart  example15:每小时执行/etc/cron.hourly目录内的脚本 命令:  01   *   *  *   *    root run-parts /etc/cron.hourly【1】   若在规划时间执行命令,crond会自动向用户邮箱发送一份记录。也可以自己定义一个日志文件,让其输出到该文件上。 具体方法为,在命令后加空格 >> filepath/filename 如* * * * * ntpdate 192.168.30.31 >> /home/root/cron_log.txt

注意事项:    若命令不能顺利执行成功,可能是因为环境变量的问题,如本人先前试图以如下方式执行脚本:    0*/2 * * * /home/root/BBB_WORK/CMD-TRANSMIT-2H.sh    但失败了,于是修改为:    0*/2 * * * /bin/sh /home/root/BBB_WORK/CMD-TRANSMIT-2H.sh即可!   特别注意!脚本的执行环境默认为当前用户目录,比如为用户root,则在执行脚本时,如在本机环境下,即会将当前目录当做 /home/root,因此,若涉及其他目录的操作,应该相应做出调整。(本人在脚本中利用cd命令进行切换目录)      参考资料:  【1】https://www.cnblogs.com/peida/archive/2013/01/08/2850483.html