我试图自己做一些“编码”,这就是我想出的:
00 02 * * 1,3,5 sudo shutdown -r
@midnight sudo apt-get update && sleep 60 && apt-get upgrade -y
@reboot sleep 60 && sudo netplan apply && sleep 15 && sudo omd start website
Run Code Online (Sandbox Code Playgroud)
重新启动后,网络和网站都已启动并正在运行,这一点至关重要。另外,这1,3,5部分可行吗?这会在 Mo、We 和 Fr 上重新启动机器吗?在更新/升级后安排重新启动是否好/聪明?
一般评论:不要sudo在usercrontab中使用,而是考虑将这些命令放在rootcrontab 中,这样它们就可以在没有 sudo 的情况下运行。
至于您的 3 个 crontab 行:
@午夜 sudo apt-get update && sleep 60 && apt-get upgrade -y
这是完全可行的做法apt-get update,并apt-get upgrade -y以这种方式。(不适用于生产服务器,并且在您了解无人值守升级的含义的情况下。)
00 02 * * 1,3,5 须藤关机 -r
我认为没有必要每周重启 3 次。我自己使用这个非常简单的重启脚本:(称为auto-reboot.sh)
#!/bin/bash
[[ -f /var/run/reboot-required.pkgs ]] && reboot
Run Code Online (Sandbox Code Playgroud)
因此,在升级和清理脚本之后,我每周都使用 cron 运行此脚本。它仅在机器需要重新启动(如果/var/run/reboot-required.pkgs存在)时重新启动。(同样,这不适用于生产服务器。)
@reboot sleep 60 && sudo netplan apply && sleep 15 && sudo omd start website
我不明白为什么你需要netplan apply在重启时运行。
此外,启动依赖于另一个服务或条件(例如网络)的服务的更可靠方法是创建一个 systemd.service来完成这项工作。有几个针对此的教程 ( 1 , 2 ),我建议您查看一下。
不。
但如果你真的想这样做,我会添加以下 3 ...
sleep 60 && sudo netplan apply && sleep 15 && sudo omd start website
这应该是不需要的。我会用“服务”来安排这个。这样你就可以创建一个等待彼此的命令链。“sleep 60”和“sleep 15”...如果需要 61 和 16 怎么办?服务将为您解决该问题。
另外,1,3,5 部分是否可行?这会在 Mo、We 和 Fr 上重新启动机器吗?
正如丹在评论中所说:crontab.guru插入了您的 crontab 规则,声明“在星期一、星期三和星期五的 02:00”。
如果没有重新启动的理由,我不会执行它。我的服务器运行了 5 年以上,每次我清理内存问题时都会出现一次:+
| 归档时间: |
|
| 查看次数: |
951 次 |
| 最近记录: |