Обзор:
Создайте агент 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-4)
- SSID нашей карточной сети Аэропорт не является нулевым (строка 5-8)
- Что наш 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.
- Открытый лингон
- Создать новый пользовательский агент (Мой агент)
- Дайте ему имя, например com.kyle.MountShares
- Выберите или введите путь к сценарию bash
~/Library/Scripts/NetworkMounts/MountShares.sh
- Укажите, когда вы хотите запустить его. (У меня есть Запуск, когда он загружен системой и * Запускать каждые 10 минут)
- Сохрани это
- Выход Лингон
это оно
Позвольте мне знать, если это помогает; Я набрал все это как можно быстрее.