Используя NAS-сервер в качестве файлового сервера 24/7, я бы хотел использовать sshfs для подключения к нему с рабочего стола Ubuntu 9.04. В настоящее время у меня есть эта строка в fstab рабочего стола:
sshfs#jldugger@storage:/mnt/HD_a2/ /mnt/storage fuse comment=sshfs,auto,users,exec,uid=1000,gid=1000,allow_other,reconnect,transform_symlinks,BatchMode=yes,fsname=sshfs#jldugger@storage/mnt/HD_a2/ 0 0
Я могу подтвердить, что это работает с mount /mnt/storage
. Что мне нужно, так это какой-то метод монтирования при запуске, но после того, как сетевое соединение установлено.
Ответы:
В настоящее время Upstart в Ubuntu не генерирует сетевые события. Вместо этого он называет традиционный sysvinit. По умолчанию NetworkManager установлен и работает; вместо того, чтобы отправлять сетевые события в upstart, он содержит диспетчер частей выполнения (/etc/NetworkManager/dispatcher.d/), который сам по себе просто полагается на диспетчер частей выполнения ifupdown (/etc/network/*.d/). В частности, вы заботитесь о /etc/network/if-up.d/ и /etc/network/if-down.d/
Сначала настройте незашифрованную пару ключей ssh, чтобы вы могли смонтировать точку без запроса. Напишите скрипт, поместите его в /etc/network/if-up.d/ и сделайте исполняемым. Следующее было обнаружено на UbuntuForums и мне было достаточно:
Если у вас есть Wi-Fi или другое ненадежное соединение, поместите следующее в /etc/network/if-down.d/:
источник
echo
команды, которые выводились в stdout, наlogger -t mountsshfs
команды, чтобы вывод шел в syslog.Upstart сейчас является предпочтительным методом выпуска сценариев запуска или служб в Ubuntu, хотя редактирование
/etc/rc.local
все еще работает. Upstart позволяет вам контролировать, когда служба запущена, следя за тем, чтобы это происходило после инициализации сетевого подключения.Также возможно редактировать символические ссылки в /etc/rc.Xd напрямую (замените X на используемый вами уровень выполнения) и добавьте имя, такое как S99mount, чтобы убедиться, что оно запускается после настройки сети. Это должно будет указывать на файл сценария, который монтирует запрашиваемые sshfs.
источник
_netdev как опция монтирования должна решить эту проблему, я полагаю
источник
Просто мысль, но если вы используете это как файловый сервер, возможно, NFS или Samba будет лучшим решением, чем ssh.
источник
Вот еще одно решение, если у вас нет сертификата с удаленного хоста, и вместо этого вам нужно использовать логин / пароль. В этом примере я использую то же имя пользователя и каталоги, которые использует jldugger, чтобы избежать путаницы.
Создайте файл, содержащий ваш пароль, в вашем домашнем каталоге и защитите его:
Отредактируйте ваш
/etc/rc.local
файл и вставьте следующую команду внизу, но перед «выходом 0»:источник