vps服务器上crontab加入backup.sh脚本不执行是服务器与本地时间有时差
最近给丰的博客做定时备份。
在美国vps服务器ubuntb系统上执行backup.sh脚本正常工作,加入crontab后不能定时执行。
经过一天的测试,发现是美国vps服务器与本地北京时间有8小时时差,比本地时间慢8小时。
而vps服务器与美国首都华盛顿时间不是同步的,实际上美国首都华盛顿时间与北京时间有13小时时差,比北京慢13小时。
测试的方法思路是,在crontab,加入24条同一分钟45分,但不同24个小时的任务。如果能执行,对半执行12条,先执行0-11小时,如果不可以,就执行另外12条(12-23小时)。如果可以,就跳过,再执行12条中对半的6条,如果能执行,再执行6条对半的3条,如能也能执行,再执行3条中的另外两条,直到测试出准确时间指令的最后一条,就是与本地时间对应时差的这条。计算出这条时间为14:45的指令与本地北京时间的时差。
比如,测试后能执行时本地北京时间为22:45,美国vps时间为14:45执行能成功的,就是相差了8小时的时差。
那设定crontab的指令就是以设定为 14:45执行,也就相当于是本地北京时间22:45执行该指定。
而比如要设定本地北京时间23:58分执行脚本,crontab中指令要设定时间为15:58,即本地北京时间23点减去与美国vps服务器时间时差8小时。(58 15 * * * root sudo /backup/backup.sh)
测试例子:
45 0 * * * root sudo /backup/backup.sh
45 1 * * * root sudo /backup/backup.sh
......
45 14 * * * root sudo /backup/backup.sh (这条是测试能成功执行的指令)
......
45 23 * * * root sudo /backup/backup.sh
(minute hour day month week command指令格式为 前面6位数分别是,第一位数是分钟,01-60。第二位数是小时,0-23。第三位数是日期,1-31。第四位数是月份,1-12。第五位数是星期,0-7,0和7是星期天。最后是要执行的命令,可以是系统命令,或是编写的脚本文件如backup.sh。)
《vps服务器上crontab加入backup.sh脚本不执行是服务器与本地时间有时差》——丰Feng
上一篇
《印象-微信公众号上传M4A音频提示转码失败》
猜你也喜欢六点听歌,你的歌单