作者回复: 搞明白为什么有延时计划任务,要先搞明白计划任务的逻辑。 计划任务是指在有周期性的执行一系列命令。这一系列命令要么因为太频繁,人力不想手动执行,想偷懒;要么因为可能要在深夜执行,不想半夜爬起来敲一下回车。 而让计算机代替人,又想稳定的执行这个任务,那么设计逻辑必然要非常简单,所以计划任务就根据crontab配置的时间点,对照计算机的时钟,每分钟来代替人进行时间的对比, 一旦配置文件的时间和系统时钟的时间相同,那么就可以执行计划任务了。 但是按照上面的逻辑,还有一种意外的情况,就是系统时间还没到计划任务时间的时候,操作系统执行了重启。而系统恢复正常的时候已经过了计划任务的时间。这时候人就要考虑了,错过了定时任务的时间之后,这个任务是在下一个时间周期执行还是等操作系统开机几分钟以后再扫描一遍,把错过的任务给补上。 很明显linux选择的是后一种做法,后一种做法就用到了延时计划任务,它会在linux重启之后几分钟,自动再扫描一次计划任务的配置文件:“延时计算任务会查询计划任务,哪些任务在该执行的时间点没执行?需要在开机多久再补充执行一次?” 这就是延时计划任务的用途了,默认操作系统已经配置好延时计划任务了,大部分情况下你是不需要改动它的。除非你想利用这样的机制来给自己写的另一套计划任务加上“保险”,才需要改动它
作者回复: 是的
作者回复: 这些是shell脚本的变量替换功能 , :- 是一个整体
作者回复: ubuntu需要安装anaconda ,它不是ubuntu自带的软件包
作者回复: 确保你的锁文件权限正确,可以的话,把代码贴上来一起分析一下原因
作者回复: 在cron 里的一行命令,相当于bash 直接解释,所以flock 当做单行命令使用即可