Переподключение к сетевому диску при подключении к сети

У меня есть NAS, и я подключаюсь к нему как к сетевому диску, однако, когда я выхожу из дома с MacBook Pro и возвращаюсь, мне приходится вручную помнить о повторном подключении к сетевому диску. Есть ли способ сделать это автоматически?

ControlPlane не является решением, поскольку в настоящее время у него есть проблемы с macOS Sierra.

Версия системы: macOS Sierra 10.12.5

Существует несколько решений в зависимости от ваших действий: выключаете ли вы свой Mac, выходя из дома, загружаетесь ли вы / входите в систему, возвращаясь домой, или ваш Mac приостановлен / спит / отключается? Пожалуйста, добавьте версию вашей системы!
@klanomath Я не отключаюсь и не выхожу из системы. Я закрываю крышку, иду куда угодно, открываю MacBook и делаю там любую работу, закрываю крышку, возвращаюсь домой и снова открываю MacBook. У меня есть элементы входа в систему, когда я выхожу из системы или завершаю работу. Однако я редко выключаю его, так как обычно он выполняет фоновые задачи, которые я не хочу прерывать.
Возможный дубликат приложения для переключения между рабочим и приватным режимами и подобные вопросы и ответы здесь.
@klanomath Я обновил вопрос, почему ControlPlane не подходит.
@Aaronepower, ты когда-нибудь находил решение этой проблемы?
@BlueC Нет, я до сих пор просто вручную подключаюсь к сетевому диску.
@Aaronepower Я продолжил поиск и нашел несколько решений, см. мой ответ, опубликованный ниже.

Ответы (3)

У меня была точно такая же проблема, и я ищу решение. В конце концов я нашел несколько приложений в магазине приложений (обычно я никогда не ищу там программное обеспечение!), которые утверждают, что могут повторно подключать сетевые диски после сна:

Drive Mounty — я пробовал профессиональную версию этого (2,99 фунта стерлингов) в течение нескольких недель, и в основном она работала нормально, но внезапно начал забивать процессор и не мог смонтировать диск, а также добавлял случайные суффиксы к точке монтирования. Бесплатная версия ограничена 1 точкой монтирования и ограниченным перемонтированием. Сначала был многообещающим, но, к сожалению, стал ненадежным.

Auto Mounter - в настоящее время пробую это (9,99 фунтов стерлингов) с пакетом опций Pro (2,99 фунтов стерлингов). Пока выглядит хорошо и имеет множество функций и возможность создавать правила. Можно монтировать диски в /Volumes с помощью отдельной вспомогательной утилиты, которая преодолевает песочницу App Store. Жаль, что нет бесплатной пробной версии.

Drive Mounter — не пробовал, потому что Auto Mounter пока хорошо держится. Есть бесплатная версия, чтобы попробовать.

Если вы попробуете что-то из этого, дайте мне знать, как они работают.

У меня была та же проблема, что и у ОП. Но я не хотел добавлять какие-либо приложения.

Поэтому я использую osascript для монтирования файловой системы. Это решение требует, чтобы вы сохранили учетные данные в связке ключей, но это нужно сделать только один раз.

сначала я создал файл сценария (благодаря samuelfullerth за написание сценария)

 nano ~/automount.sh

Затем я вставил этот скрипт (с изменениями, подходящими для моей среды)

if /sbin/ping -q -c 1 -W 1 <server ip goes here> >/dev/null; then
  if [ ! -d "/Volumes/<your volume>" ]  
   then
  /usr/bin/osascript -e "try" -e "mount volume \"smb://<your user name@server IP/your volume>\"" -e "end try"  
  fi
fi

После сохранения я изменил разрешения

chmod 755 ~/automount.sh

Затем я создал запись в crontab для запуска скрипта каждую минуту. Я предпочитаю nano для редактирования, поэтому я использовал эту команду. (вероятно, есть способ сделать nano значением по умолчанию)

env EDITOR=nano crontab -e 

Введите это в crontab и сохраните

* * * * * ~/automount.sh >/dev/null 2>&1

Теперь ваш Mac останется подключенным к NAS в любом случае. Я так устал от того, что мой Mac принуждает меня переподключиться к диску, который всегда должен быть подключен.

Ваше здоровье

Мое решение для этого состоит в том, чтобы использовать приложение Automator и сценарий перемонтирования, который я написал.

Часть 1: Автоматизация действия

Используя инструмент Automator, я создал новый Application, в который добавил по порядку:

  1. Get Specified Serversдействие, которое получает мой сервер (в моем случае мой raspberry pi)
  2. Connect to Servers, который подключается к серверу, который я получил в предыдущем действии. Это должно выглядеть так, как показано на скриншоте ниже.

приложение-автомат

Часть 2. Проверка подключения компьютера к серверу

Это автоматизирует действие по подключению к серверу, но не автоматизирует процесс повторного подключения. Для этого я написал простой скрипт, который я запускаю в задании cron, которое проверяет (каждые 10 секунд), подключен ли компьютер к серверу и подключен ли диск, как я ожидаю.

Скрипт проверяет:

  1. Если мой компьютер может пинговать сервер
  2. Если мой компьютер уже смонтировал диск вVolumes
  3. Если мой компьютер может пропинговать сервер, но диск не подключен, он запускает приложение Automator.
if /sbin/ping -q -c 1 -W 1 <server ip goes here> >/dev/null; then
  if [ ! -d "/Volumes/<your volume>" ]
    then
      open /usr/local/bin/remount/mount-drive.app
  fi
fi

Часть 3. Проверка каждые 10 секунд

Последняя часть находится в моем файле crontab, чтобы запускать этот скрипт каждую минуту:

* * * * * sh /usr/local/bin/remount/remount.sh

Это запускает его каждую минуту - если вы хотите, чтобы он запускался каждые 10 секунд, вам нужно добавить несколько заданий cron для запуска скрипта с интервалом в 10 секунд, а-ля:

* * * * * sleep 10; sh /usr/local/bin/remount/remount.sh

* * * * * sleep 20; sh /usr/local/bin/remount/remount.sh

* * * * * sleep 30; sh /usr/local/bin/remount/remount.sh

* * * * * sleep 40; sh /usr/local/bin/remount/remount.sh

* * * * * sleep 60; sh /usr/local/bin/remount/remount.sh

Честно говоря, вероятно, есть более простой способ сделать это с помощью Automator - я использую три вещи (crontab, скрипт и приложение Automator) вместе, и я уверен, что мог бы просто использовать сценарий приложения Automator, если бы я был просто лучше в этом!

Тем не менее, он выполняет свою работу — когда я открываю свой Macbook и диск отключается, это гарантирует, что компьютер снова подключится в течение 10 секунд, если он сможет подключиться к диску.