我有一台小型服务器,采用 Ubuntu 操作系统,24/7 运行,并且有一个每天仅触发一次的脚本,用于从网络检索数据,并将其复制到外部 USB 硬盘驱动器。该数据副本通过 bash 脚本进行管理。大致来说,数据复制从00:00开始,到5:00结束。
由于外部USB硬盘长时间闲置,我想在数据复制前几分钟启动它,并在数据复制后几分钟将其关闭,直接通过我的bash脚本。
我看了一下,主要确定了两种解决方案,但我无法区分。
1. 使用bind
/unbind
。
echo '1-2.2:1.0' > /sys/bus/usb/drivers/r8712u/bind # switch on
echo '1-2.2:1.0' > /sys/bus/usb/drivers/r8712u/unbind # switch off
2. 使用autosuspend
, 从这个问题。
echo "0" > "/sys/bus/usb/devices/usbX/power/autosuspend_delay_ms"
echo "auto" > "/sys/bus/usb/devices/usbX/power/control"
请问,有什么区别,哪一个最适合我的用例?
非常感谢你的帮助。祝你有美好的一天,最好的
答案1
第二个选项“自动挂起”让操作系统的电源管理决定是否关闭设备,并使用一些关于特定超时或自动操作的规则。它仍然会使您的磁盘可供其他程序使用。
在第一个选项中,“解除绑定”类似于拔出 USB 电缆。如果您旁边的另一个脚本正在使用该磁盘,这将会带来麻烦。恕我直言,当某些 USB 设备因任何原因不再做出反应(例如,因为它自行关闭)时,“取消绑定/绑定”组合作为硬重置会更合适。
因此选项 2 听起来更适合您的用例。