Автозапуск программ с подключением к сетевым дискам в требуемой последовательности

от автора

Поскольку системник в себе несет всего 256 Гб под систему и софт, бОльшую часть рабочих файлов, библиотеки, архивы и т.п. храню на нЕком файл-сервере под управлением XP который по гигабитному Ethernet подключен к рабочему компу. СтоИт сей девайс в подвале, шумом не напрягает ))) А так-же по Wi-Fi расшарены папки с музыкой и кино с этой файло-свалки для нубуков, планшетов, смартфонов.

Задался вопросом как все эти сетевые диски автоматом монтировать в МАК-ОСь? Начитался интернетов и написал скриптик, оформив его в стандартную программу и заснув ее в автозагрузку.

image

Итак, что в нем используется:
Поскольку комп грузится на столько быстро, что DHCP роутера не успевает присвоить IP-адрес МАКу выдавая ошибку, что команде не удалось подключить внешний диск. Посему пришлось поставить десяти-секундную задержку перед выполнением команд монтирования сетевых дисков:

set pause to (10) delay pause

Следующим этапом создаем тома в МАКе и монтируем сетвые диски.
Уточнение: МАК и файл-сервер висят в рабочей группе WORKGROUP, а сервер имеет сетевое имя serverX32 (хотя можно использовать и IP-адрес сервера):

do shell script ("mkdir /Volumes/My_DOCs") <!--  создание директории сетевого диска My_DOCs в МАКе --> do shell script ("mount -t smbfs //login:password@serverx32/My_DOCs /Volumes/My_DOCs") <!-- Подключение по SMB-протоколу Виндового диска с именем My_DOCs с логином и паролем, для доступа на чтение/запись, если заход на данный диск происходит без логина/пароля диск имеет статус только чтение (для смартфонов и планшетов). --> do shell script ("mkdir /Volumes/Video") <!-- создание директории второго сетевого диска в МАКе --> do shell script ("mount -t smbfs //login:password@serverx32/Video /Volumes/Video") и т.д. сколько нужно подключить дисков…

Пользуюсь программой-клиентом Яндекс.Диск, что за зверь думаю объяснять не нужно. Но не задача, его (Я.Д.) данные лежат у меня тоже на файло-свалке. При тупой вставке Я.Д в автозагрузку, опять-же он грузится быстрее чем надо, а сетеого диска со своей папкой не видит, и выдает ошибку: «Папки Yandex Disk не обнаружено, проверьте настройки программы.»
Ерунда, удлинним скрипт:

set pause to (10) delay pause <!-- пауза 10 сек. на всякий случай --> do shell script ("open /Applications/Yandex.Disk.app") <!-- запуск самого Я.Д. который находится в папке Applications/Программы -->

Ну и теперь смый цимус. Есть офигенная программа: BitTorrent Sync. В трех словах, это свое — личное облако неограниченное по объему, работающее на РС, МАКах, Линуксах, NASах, Андроидах и iOSах. С возможностью как полного доступа к разным папкам облака, так и только на чтение. Папками какие и для кого синхронизировать тоже можно управлять. Высокая приватность: все данные лежат только на Ваших устройствах, весь траф шифруется 128-битным алгоритмом. Нет ограничений по размеру одного файла, скорости и т.п. это если делиться чем-то объемным с друзьями и коллегами. Все это добро работает по протоколу Р2Р. Вот подробнее: http://ru.wikipedia.org/wiki/BitTorrent_Sync Есть только одно НО — одно из основных устройств должно быть постоянно в он-лайн, для меня это не НО — моя файло-свалка 6-й год так живет.
Естественно в скрипт включаю и его (т.к. его корневая папка тоже на файл-сервере):

shell script ("open /Applications/BitTorrent\\ Sync.app") <!-- запуск самого BTS. который находится в папке Applications/Программы. Уточнение: два слэша подряд и пробел ‘\\ ‘перед Sync.app - обозначение в пути/имени файла пробела -->

Вот так выглядит весь скрипт:

set pause to (10) delay pause do shell script ("mkdir /Volumes/My_DOCs") do shell script ("mount -t smbfs //login:password@serverx32/My_DOCs /Volumes/My_DOCs") do shell script ("mkdir /Volumes/Video") do shell script ("mount -t smbfs //login:password@serverx32/Video /Volumes/Video") do shell script ("mkdir /Volumes/Software") do shell script ("mount -t smbfs //login:password@serverx32/Software /Volumes/Software") do shell script ("mkdir /Volumes/MP3s") do shell script ("mount -t smbfs //login:password@serverx32/MP3s /Volumes/MP3s") do shell script ("mkdir /Volumes/Win_HDD") do shell script ("mount -t smbfs //login:password@serverx32/Win_HDD /Volumes/Win_HDD") set pause to (10) delay pause do shell script ("open /Applications/Yandex.Disk.app") do shell script ("open /Applications/BitTorrent\\ Sync.app») 

Все это делается в программе Редактор AppleScript:

image

Как все прописали под себя, можно протестировать скрипт нажав на копку запустить (отмечена красным).
Если все работает, сохраняем скрипт как программу: меню: Файл -> Экспортировать (в окне сохранения снимаем все галки) в поле «тип файла» выбираем программа.

P.S. Была у меня проблеммка с подключением по сети обаза TimeMashine: тынц >>>
Так вот с таким видом скрипта подключения сетевых дисков и образа тайм-машины все рулит и бибикает.

do shell script ("hdiutil mount /Volumes/My_DOCs/NetTM.sparsebundle")

Единственно что не разобрался после спящего режима тайм-машина теряется. Чего-бы прописать в скрипт, чтоб после пробуждения опять подцеплялся браз ТМ?

ссылка на оригинал статьи http://habrahabr.ru/post/222439/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *