在远程 Ubuntu 服务器上安排重启

nix*_*win 20 server reboot remote-access schedule

我在位于我通常不去的地方的 ubuntu 服务器上工作。我在 openvpn 上使用 ssh 来访问它。机器有多个有线接口、多个静态路由和多个默认网关到WAN。我经常更改接口地址和路由。大多数时候我所做的更改都是暂时的——重启会重置我所做的实验。在某些情况下,其中一些修改出错了,机器已经离线。在这种情况下,我不得不在服务器所在的地方打电话给某人,让机器重新启动。

现在我想安排重启——假设 2 小时后机器应该进入重启周期。在那两个小时里,我可以做任何我想做的临时实验。如果所有临时更改都成功,那么我应该能够防止“2 小时后”重新启动。所以我想要的是:

  1. 如何告诉服务器在一定时间后重新启动?
  2. 如果我决定机器不应该重新启动,我应该可以取消它。

小智 35

您还可以at用于安排重新启动。例如sudo at 22:00,在 22:00 以 root 身份运行命令。然后输入要运行的命令:/sbin/shutdown -r now并以ctrl-d. 如果您决定不运行此命令,请运行sudo atrm 1以删除at队列中的第一个命令。随着sudo atq你可以看到队列。

  • 这应该被标记为正确答案!`at` 系列命令是每个服务器管理员都应该知道的。 (6认同)
  • 如果您不熟悉 `at`,请先在 22:00 执行 `sudo`。这将带您进入一种外壳。然后你输入命令,然后`ctrl-d`退出。另见 http://mixeduperic.com/ubuntu/how-to-schedule-a-one-time-restart-on-your-ubuntu-system-using-the-at-command.html (3认同)

Bru*_*ira 15

shutdown -r 10 Waiting 10 minutes before the restart&将使服务器在 10 分钟内重新启动的终端类型上,广播一条消息说明并按 control+c 将中断重新启动请求。

shutdown -r 18:00 Rebooting at 18:00 hours&将使服务器在 18:00 时重新启动的终端类型上,将广播一条消息解释该消息并且可以用 control+c 中断。

您还可以在“工作”终端上使用shutdown -a.

  • 这有点问题,因为它是交互式的并且会阻止您正在运行的 shell。如果会话中断,我不确定这是否可以通过 SSH 以可预见的方式工作。 (3认同)