有没有办法通过 SSH 远程开机?

有没有办法通过 SSH 远程开机?

我是 Linux 新手,会使用一些基本命令 (SSH)。我在运行 Ubuntu 服务器的 Raspberry Pi 上运行 minimserver。效果很好!

每天晚上我都会使用 sudo poweroff(使用名为 Terminus 的 iOS 应用)。我之所以这么做更多是因为我想保留存储音乐的已安装 USB HDD。Ubuntu 关闭电源后,HDD 也会自动关闭,这正是我想要的结果。问题是服务器在房子的另一个地方,第二天我必须去服务器并重新启动它(我拔掉 Rpi 的电源并重新插入)。这也会启动并安装 USB HDD(因为我成功配置了启动时自动安装)。

我想要实现的是简单地远程卸载并关闭 HDD,这样第二天我只需运行 sudo reboot(再次远程)即可让 HDD 再次通电并运行。我尝试使用 umount /mnt/music,但此命令不会关闭 HDD。或者是否有一种远程方式可以打开 Rpi,但这在技术上似乎不可行。

任何帮助都将不胜感激。抱歉发了这么长的帖子。希望我说得有道理。

答案1

如果 Raspberry Pi 有电,那么它就会打开,即使你在操作系统中进入“关机”状态 - 此时它只是将操作系统置于准备关闭的状态。还记得旧的 IBM 计算机吗?在 Windows 中,你会进入关机状态,然后你会看到? 我不清楚如何从该状态远程重启设备,因为操作系统已经卸载了所有网络支持等。

HDD 可以全天候运行。如果您不喜欢全天候运行,可以启用使用 hdparm 延迟后自动降速。请注意警告,在不使用时降低驱动器转速,在需要时提高转速,会导致驱动器磨损加剧。在某些时候,降低转速然后提高转速一定次数对驱动器的损害可能比您让它继续旋转的时间更长。

您甚至可以随时使用 手动降低硬盘的转速hdparm -y。此时无需手动将其加速,因为当需要读取或写入时,系统会自动加速。

警告:通过 hdparm 进行降速的支持情况各不相同,对于 USB 硬盘和机箱尤其如此。有些支持,但有些 USB 硬盘甚至会忽略所有降速命令,并有自己的内置空闲降速功能。

答案2

正如所提到的这个答案,当树莓派处于关机状态时,它并不处于接受任何指令的状态,所以不能使用SSH来开机。

解决此问题的一种方法是将树莓派的电源连接到 RF 或智能插座。

答案3

我看到两种可能性:

  1. 网络唤醒:在这种情况下,您必须配置 Raspberry 以接受 WOL 请求。这只是 BIOS 的问题。之后,您必须在用于向 Raspberry 发送所谓的“魔术包”的计算机上安装特定程序。注意:两个设备必须连接到同一个子网,因为该协议不可路由。
  2. 醒来时间:使用脚本(最终是 cronjob)指示您的树莓派在特定日期/时间唤醒,然后再关闭它。

一些细节:

对于 WOL:

在 Ubuntu 上,使用etherwake

sudo apt-get install etherwake

发送魔术包:

etherwake  AA:BB:CC:DD:EE:FF

其中 AA:BB:CC:DD:EE:FF 是您的树莓派的 MAC 地址。可以通过以下方式获取:

ping -c 4 server3 && arp -n

更多细节这里

对于脚本

首先,您需要进入 BIOS 并确保计算机警报已启用,可在指定时间启动。有关更多信息,请参阅例如

之后,这只是一个脚本问题。这是我使用的脚本:

#!/bin/bash
# This program shuts down the PC and set a start time for next wake up
# Wake up is scheduled on next weekday at 6:00

# Setting wake-up alarm
springtime="+1 days 06:00"
echo 0 > /sys/class/rtc/rtc0/wakealarm
echo `date +%s -d "$springtime"`   > /sys/class/rtc/rtc0/wakealarm

/sbin/shutdown now

相关内容