Я монтирую общий ресурс samba через /etc/fstab. Проблема в том, что если они выключены и я их запускаю, машина, которая монтирует общий ресурс, включается первой, и поэтому общий ресурс еще недоступен. Есть ли возможность, чтобы он пытался монтировать его, пока общий ресурс не станет доступен?
Проблема в том, что на этих ресурсах находятся данные, необходимые приложениям для корректной работы.
решение1
Не монтируйте его автоматически через fstab, вместо этого используйте crontab:
Настройте свой
fstab
ресурс так, чтобы он не монтировался автоматически.//servername/sharename /media/windowsshare cifs noauto 0 0
У вас могут быть различные другие варианты там, предположительно, вы уже это делаете. Важно добавить,
noauto
что гарантирует, чтоnoauto do not mount when "mount -a" is given (e.g., at boot time)
Создайте задание cron, которое будет запускаться каждую минуту и монтировать общий ресурс, если он еще не смонтирован. Добавьте эту строку в
/etc/crontab
* * * * * root mount | grep windowsshare || mount /media/windowsshare
Таким образом, диск будет смонтирован, как только он станет доступен.
Для более точного контроля вы можете написать скрипт, который i) проверяет, находится ли сервер в сети, и ii) монтирует ресурс, если он не смонтирован. Затем вы можете запустить скрипт через cron:
#!/usr/bin/env sh
hostname_or_ip_address="1.2.3.4" ## add your WIndows host's name or IP here
if ping -c 1 -W 1 "$hostname_or_ip_address" >/dev/null 2>&1; then
mount | grep windowsshare || mount /media/windowsshare
fi
Сохраните этот скрипт как /usr/bin/check_mount
угодно, сделайте его исполняемым, chmod +x /usr/bin/check_mount
а затем добавьте эту строку в/etc/crontab
* * * * * root /usr/bin/check_mount
Еще один вариант, который стоит рассмотреть, этоautofs
который монтирует системы по требованию, как только кто-либо пытается получить к ним доступ.