标签归档:linux crontab

Linux(ubuntu)开机启动脚本遇到的坑

使用python制作了一个脚本,想法是每6小时重新执行一次,而脚本是重复循环的也就是6小时里它是不会自动结束运行,所以单纯使用crontab定制定时任务不能直接达到目的,需要使用脚本检查PID,太麻烦!于是想到是使用crontab定制每6小时重启一次主机,然后脚本放在/etc/rc.local里达到开机启动的目的,坑也在这里挖好了,其实还是自己技术不精导致的!!!
1、crontab脚本是在root下编辑的,如下:

0 */6 * * * reboot

这里是第一个坑,到时间主机就是不重启?!原来reboot需要root权限所以脚本要写成如下形式,改完立即好用:

0 */6 * * * sudo reboot

2、rc.local中脚本是这样写的:

/usr/bin/python3 /root/dl.py

这里是第二大坑,问题不在语法,而是dl.py文件没有可执行权限!使用命令chmod 111 dl.py解决
第三大坑是脚本执行了,却提示mysql错误没有conn对象,原来是脚本启动时mysql还没有准备好所以连接失败解决方法很多,异常判断等待几秒重连mysql数据库,我索性脚本运行开始先等10s后再连接数据库,问题解决。

Linux系统计划任务crontab的用法

近期有个需求,使用python写的小程序需要开机自动运行,并在后台运行,每间隔5分钟自动监测本地IP的变化,可是程序运行几天就会自动挂掉,没有错误提示,就那么无缘无故挂掉。后来通过linux计划任务crontab解决问题。
crontab有五个可选参数:crontab [ -u user ] [ -i ] { -e | -l | -r }
1、 crontab -u 设定某个用户的cron服务
2、 crontab -e 编辑当前用户的crontab文件
3、 crontab -l 列出当前用户的任务
4、 crontab -r 删除当前用户的任务
5、 crontab -i 忽略删除用户任务时的确认 继续阅读