Ubuntu 如何将cron执行推迟几个小时

Ubuntu 如何将cron执行推迟几个小时,ubuntu,cron,crontab,cron-task,Ubuntu,Cron,Crontab,Cron Task,我必须每天重新启动我的系统,为此我创建了一个脚本文件。在该脚本文件中,我添加了一个条件,即如果正在下载或上载,则跳过重新启动 这是我的脚本文件 #!/bin/bash if [ "$Upload" ]; then echo itsme | sudo -S shutdown -r now fi 为了执行这个脚本文件,我编写了一个cron作业 0 12 * * * ${HOME}/reboot-me.sh 现在我必须添加功能,因为正在进行下载或上载,然后将重新启动延迟1小时或添加延迟1

我必须每天重新启动我的系统,为此我创建了一个脚本文件。在该脚本文件中,我添加了一个条件,即如果正在下载或上载,则跳过重新启动

这是我的脚本文件

#!/bin/bash

if [ "$Upload" ]; then
    echo itsme | sudo -S shutdown -r now
fi
为了执行这个脚本文件,我编写了一个cron作业

0 12 * * * ${HOME}/reboot-me.sh
现在我必须添加功能,因为正在进行下载或上载,然后将重新启动延迟1小时或添加延迟1小时

那我怎么能推迟这项工作呢

编辑 我已经编辑了我的条件,这是工作吗

if [ "$Upload" ]; then
        echo itsme | sudo -S shutdown -r now
else
        sleep 3600
        if [ "$Upload" ]; then
           echo itsme | sudo -S shutdown -r now
        else
           echo "uploading....."
        fi
fi

让您的cronjob每小时运行一次,并检查是否需要重新启动:

  • 12点过
  • 今天已经重启了吗
  • 应该推迟重启的正在运行的东西

有了这三点,您应该能够决定是否可以重新启动计算机。

关于
sleep 3600
?一个简单的问题,我每天执行一次脚本如果我在脚本中添加sleep 3600,我是否必须再次运行该脚本,或者它将在1小时后继续。它应该在1小时后继续。请注意,
sleep
就像一个“暂停”,一旦时间结束,它就会继续执行。@fedorqui我已经编辑了我的条件,这是否有效?是的,它应该有效。注意,这将延迟一次,然后重新启动;如果在一小时后再次上传,则不会重新启动。如果你真的想在上传后重新启动,任何时候,你可以考虑使用<代码>而真实;做已完成,内部有条件。