Как сохранить монтирование сетевого ресурса в Mac OS X между перезагрузками

В настоящее время я подключаюсь к общему ресурсу Windows (smb) через Finder -> Go -> Connect To Server. Я должен ввести IP-адрес (хотя я сохранил учетные данные в моей цепочке для ключей). Если я перезагружаюсь или выходу из системы, я должен сделать это снова.

Я хотел бы, чтобы общий ресурс SMB, к которому я подключаюсь, всегда был доступен, как только я войду в систему. Как я могу сделать это?

7 ответов

Решение

Сделайте точку доступа элементом входа, и он будет автоматически "открыт" (т.е. подключен) при каждом входе в систему. Перейдите в "Системные настройки" -> "Пользователи и группы" -> выберите свою учетную запись на боковой панели -> вкладку "Элементы входа", затем перетащите подключенную точку доступа (вы можете получить ее из представления Finder на компьютере, доступного в меню "Перейти").

(Историческая справка: панель настроек называлась "Учетные записи" в OS X 10.6, но изменилась на "Пользователи и группы" в 10.7 и более поздних версиях.)

Обзор:

Создайте агент launchd (в данном случае bash-скрипт), который будет монтировать нам любые общие ресурсы каждые пару минут. Это не идеально, но это работает. Это для общих ресурсов Samba, но вы можете изменить его для других типов.

Сделано с помощью Дэйва Николла о совместном использовании библиотек windows/x iTunes.

Я использую беспроводную карту своего ноутбука, чтобы определить, подключен ли я к моему домашнему SSID. Конечно, вы можете использовать все, что вы хотите для условного исполнения.

Если вы собираетесь использовать SSID в качестве условия для монтирования, как у меня, вы можете найти его полезным для псевдонима утилиты Airport, которая поставляется с OS X к вашему /usr/bin/. Если нет, перейдите к следующему разделу.

Откройте терминал и запустите:

sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport /usr/sbin/airport
Запомните вывод этого:

airport -I | grep '.* SSID:' | sed 's/^.* SSID: //'

Сценарий:

Мои условные проверки для

  1. Доля еще не установлена (строка 1-4)
  2. SSID нашей карточной сети Аэропорт не является нулевым (строка 5-8)
  3. Что наш SSID должен быть равен предварительно определенному SSID, в моем случае "2600leagues" (строка 9)

Откройте ваш любимый текстовый редактор и начните новый файл, я назвал мой MountShares.sh

if [ -d '/Users/kyle/Music/iTunes/Podcasts/' ]; then
        #echo Nothing to do, share is mounted
        exit
else 
    if [ -z `airport -I | grep '.* SSID:' | sed 's/^.* SSID: //'` ]; then
       #echo SSID is Null, we're not connected with the Airport to any Network.
        exit
    else 
        if [ `airport -I | grep '.* SSID:' | sed 's/^.* SSID: //'` == "2600leagues" ]; then
            #echo SSID is 2600leagues!
            /sbin/mount -o nodev,nosuid -t smbfs '//Kyle:NotmyPassword@192.168.1.5/media/Music' '/Users/kyle/Music/'
        fi
    fi
fi

Далее нам нужно отредактировать строку 11, чтобы представить ваши конкретные потребности. Вам нужно только отредактировать жирные части:

/ sbin / mount -o nodev, nosuid -t smbfs '// Пользователь: Пароль @ServerIP_or_Name/ Поделиться ' ' / Где / Вы / Хотите / it_to_mount / '

Пример:

/sbin/mount -o nodev,nosuid -t smbfs '//Kyle:NotmyPassword@192.168.1.5/media/Music' '/Users/kyle/Music/'

Теперь, когда у нас есть отредактированная команда mount, попробуйте запустить ее в Терминале. В случае успеха ваша общая папка должна быть доступна в месте монтирования. (в моем примере /Users/kyle/Music/)

Отредактируйте строку 1 скрипта bash, чтобы отразить файл или каталог внутри смонтированного общего ресурса. Если вы собираетесь использовать SSID в качестве условия, как у меня, вы захотите изменить строку 5, заменив 2600 Лиги своим SSID.

Сохраните скрипт bash в удобном месте. (Я использую ~/Library/Scripts/NetworkMounts/MountShares.sh)

Теперь вам нужно сделать исполняемый скрипт bash, для этого мы используем chmod.

В терминале:

chmod 777 ~/Library/Scripts/NetworkMounts/MountShares.sh

Если сетевой ресурс все еще подключен, убедитесь, что вы размонтировали / удалили его сейчас. (Finder работает)

Попробуйте выполнить скрипт через Терминал:

~/Library/Scripts/NetworkMounts/MountShares.sh

Если все идет хорошо, ваша доля должна быть установлена. Теперь осталось только сделать так, чтобы скрипт запускался так часто. Обычно вы используете crontab для такого рода вещей, но 10.6 устарела. Apple предпочла бы, чтобы вы использовали их сервис запуска.

Создание запуска агента

Чтобы помочь вам сделать агент запуска, получите Lingon из sourceforge.

  1. Открытый лингон
  2. Создать новый пользовательский агент (Мой агент)
  3. Дайте ему имя, например com.kyle.MountShares
  4. Выберите или введите путь к скрипту bash ~/Library/Scripts/NetworkMounts/MountShares.sh
  5. Укажите, когда вы хотите запустить его. (У меня есть Запуск, когда он загружен системой и * Запускать каждые 10 минут)
  6. Сохрани это
  7. Выход Лингон

это оно

Позвольте мне знать, если это помогает; Я набрал все это как можно быстрее.

С помощью auto_fs, auto_master и т. Д. Попробуйте прочитать Autofs: Автоматическое монтирование общих сетевых файловых файлов в Mac OS X (PDF). Это немного устарело сейчас (2009), но, используя примеры в документе, я организовал все мои ресурсы NFS и SMB и легко монтировал их автоматически.

Вы смотрели на auto_master(5) ? На первый взгляд это выглядит возможным, но, похоже, для настройки может потребоваться много работы.

Здесь есть пара решений, самое простое из которых (ИМХО) я опубликую ниже:

Из терминала:

sudo vifs

Если не знаком с vi Нажмите "i" для вставки (режим редактирования), затем вставьте это в новую строку:

smbserver:/share /Volumes/mount_point url automounted,soft,url==cifs://user:pass@smbserver/share

Удар Esc а потом zz сохранить и выйти.

В заключение:

sudo automount -vc

Теперь при ударе /Volumes/mount_point в консоли / поиске / чем-то еще общий ресурс будет автоматически сопоставлен.

System Preferences > Sharing > File Sharing > Option > Share Files and Folders Using SMB, Я думаю, что он может распознать настройки обмена. Если нет, вы можете добавить smb share в свой favorite server тоже.

Если вы хотите добавить его в качестве избранного сервера, нажмите Apple+K в то время как в Finder, чтобы поднять Connect to Server диалоговое окно. Введите адрес, а затем нажмите + рядом с адресом. Затем он будет добавлен в область ниже Favorite Servers,

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

Запустите Automator и выберите Приложение, а в Библиотеке файлов и папок вы увидите "Получить указанный сервер" и "Подключиться к серверам". Добавьте их в указанном порядке, а также добавьте свой IP-адрес и общее имя (если применимо).

На этом этапе вы можете сохранить его как приложение (~ / Applications - хорошее место). Затем добавьте его в элементы входа в систему через "Системные настройки"> "Пользователи".

Однако я добавил в Automator 30-секундную паузу (из библиотеки Utilities) и четыре цикла по 1000 итераций. Это должно поддерживать его работу до тех пор, пока я не выйду из системы или не перезагрузюсь.

Примечание: если вы не можете подключиться, появится всплывающее диалоговое окно:

Ошибка подключения

Сервер "xxxx" может не существовать или в данный момент недоступен. Проверьте имя сервера или IP-адрес, проверьте сетевое подключение и повторите попытку.

Примечание: он не проверяет, подключен ли он уже. Может быть способ проверить вывод Connect to Server

Другие вопросы по тегам