
Я часто монтирую удаленный диск с помощью sshfs. Мне бы хотелось, чтобы это монтирование происходило автоматически. Однако, если я монтирую его в своем .bashrc или скриптах запуска, монтирование часто не удается, поскольку мое беспроводное подключение к Интернету еще не установлено.
Кто-нибудь знает простой способ запускать скрипт bash каждый раз при установлении соединения или автоматически монтировать диск sshfs?
решение1
Добавьте ваш скрипт в /etc/network/if-up.d/
. Назовите ваш скрипт без расширения «.sh».
Также после добавления скрипта запустите его chmod +x /etc/network/if-up.d/yourscriptname
, чтобы предоставить необходимые разрешения.
Убедитесь, что сетевой интерфейс (например, wlan0 или eth0), который должен запускать ваш скрипт при включении, указан в файле /etc/network/interfaces
.
решение2
Примечание редактора: Cuttlefish не обновлялся с 2012 года и не входит ни в один из текущих репозиториев Ubuntu.
Убунту 12.04
- УстановитьКаракатица: Простой инструмент, который реализует рефлексы на вашем компьютере, выполняя действия при возникновении определенных событий.
Откройте Cuttlefish и нажмите на New.
- Дайте ему имя и изменитеАктивируется стимуломвариант ВКЛ.
- Нажмите наСтимул, выберите категориюСетьи типПодключиться к беспроводной локальной сети. Нажмите ОК.
- Вы также можете выбрать SSID беспроводной сети и включить или отключить его проверку при запуске.
- Теперь вам нужно будет указать реакцию. Перейти кРеакциявкладку и нажмите добавить. ВыберитеПриложенияиз категории иЗапустить приложение (в расширенном режиме)от типа.
- Теперь укажите скрипт, который вы хотите запустить в исполняемом параметре. Вы даже можете передать параметры скрипту.
- И все! Также убедитесь, что вы добавили Cuttlefish в автозагрузку приложений. Перейти кРедактировать > Настройкии включите опцию автозапуска.
решение3
Я отвечу на эту часть вопроса автора: «Я бы хотел иметь это ездовое животное автоматически»
Мой любимый инструмент для автоматического монтирования сетевых ресурсов — autofs: https://help.ubuntu.com/community/Autofs
AutoFS — мой любимый инструмент для монтирования NAS-устройства на всех моих ноутбуках и рабочих станциях.
"autofs — это программа для автоматического монтирования каталогов по мере необходимости. Автоматические монтирования монтируются только при доступе к ним и отмонтируются после определенного периода бездействия. Благодаря этому автоматическое монтирование общих ресурсов NFS/Samba экономит пропускную способность и обеспечивает лучшую общую производительность по сравнению со статическими монтированиями через fstab."
решение4
systemd
похоже, в наши дни сетевое взаимодействие взяло верх.
$ networkctl
WARNING: systemd-networkd is not running, output will be incomplete.
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback n/a unmanaged
2 enp0s25 ether n/a unmanaged
3 wlo1 wlan n/a unmanaged
3 links listed.
Он также имеет блоки, соответствующие интерфейсам.
$ systemctl list-units |grep wlo1
sys-devices-pci0000:00-0000:00:1c.3-0000:24:00.0-net-wlo1.device loaded active plugged Centrino Ultimate-N 6300 (3x3 AGN)
sys-subsystem-net-devices-wlo1.device loaded active plugged Centrino Ultimate-N 6300 (3x3 AGN)
Видимо, вы можете использовать их в файлах единиц обслуживания. Так что просто создайте единицу обслуживания для запуска вашего скрипта и используйте что-то вроде этого внутри, чтобы заставить его работать условно в сети:
BindsTo=sys-subsystem-net-devices-wlo1.device
After=sys-subsystem-net-devices-wlo1.device
Удачи! Я это не проверял, так что "ваши результаты могут отличаться".
Источники: