USB 端口绑定/取消绑定和自动挂起之间有什么区别?

USB 端口绑定/取消绑定和自动挂起之间有什么区别?

我有一台小型服务器,采用 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 听起来更适合您的用例。

相关内容