Самые скачиваемые

5 C

5

 

Nx-cold ®

Longevity:
10 years
Posts:
941

Серия диких скриптов продолжается :)
Сохранить как приложение с галкой Stay Open. Меняет жесткий диск Time Machine при смене Wi-Fi сети, правда меняется диск с помощью обычного пользовательского интерфейса, только скрипт жмет кнопки за вас.

Скрипт

set TimeDisk1 to "вставить сюда имя диска таймкапсулы, соответствующего 1й вай-фай сети"
set TimeDisk2 to "вставить сюда имя диска таймкапсулы, соответствующего 2й вай-фай сети"
set SSID1 to "вставить сюда название 1й вай-фай сети"
set SSID2 to "вставить сюда название 1й вай-фай сети"
on idle
--узнаем название вай-фай сети
set SSID to do shell script "/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport -I | awk '/ SSID: / {print $2}'"
--сравнение названия текущей вай-фай сети с сетью №1
if SSID is SSID1 then
--узнаем UUID текущего диска для Time Machine
set CurrentDisk to (do shell script "defaults read /Library/Preferences/com.apple.TimeMachine DestinationVolumeUUID")
--сравниваем UUID текущего диска для Time Machine и UUID диска, который должен быть при сети №1
--и смена диска для Time Machine на диск №1, если они не равны
if CurrentDisk is not (CheckTimeDisk(TimeDisk1)) then ChangeTimeDisk(TimeDisk1)
end if
----сравнение названия текущей вай-фай сети с сетью №2
if SSID is SSID2 then
--узнаем UUID текущего диска для Time Machine
set CurrentDisk to (do shell script "defaults read /Library/Preferences/com.apple.TimeMachine DestinationVolumeUUID")
--сравниваем UUID текущего диска для Time Machine и UUID диска, который должен быть при сети №2
--и смена диска для Time Machine на диск №2, если они не равны
if CurrentDisk is not (CheckTimeDisk(TimeDisk2)) then ChangeTimeDisk(TimeDisk2)
end if
--интервал ожидания между проверками
return 60
end idle
--функция смены диска Time Machine
on ChangeTimeDisk(TimeDiskName)
--открываем вкладку Time Machine в настройках
tell application "System Preferences" to set current pane to pane "Time Machine"
--ждем 2 секунды пока запустится
delay (2)
tell application "System Events"
tell process "System Preferences"
--нажимаем кнопку Select Disk...
click button 1 of group 1 of window "Time Machine"
--считываем варианты жестких дисков для Time Machine
set DriveList to rows of table 1 of scroll area 1 of sheet 1 of window "Time Machine"
--номер строчки с нужным диском
set RowNumber to -1
--нахождение строчки с нужным жестким диском
repeat with i from 1 to count of DriveList
if item 1 of ((value of text field of item i of DriveList) as list) is TimeDiskName then set RowNumber to i
end repeat
try
--выделение нужного диска
select row RowNumber of table 1 of scroll area 1 of sheet 1 of window "Time Machine"
click button "Use for Backup" of sheet 1 of window "Time Machine"
on error
--если нужный диск не найден, то настройки закрываются
tell application "System Preferences" to quit
end try
try
click button "Use selected Volume" of sheet 1 of window "Time Machine"
end try
try
--нажатие крестика для отмены создания резервной коппии после закрытия настроек
click button 3 of group 1 of window "Time Machine"
end try
--выход из настроек после удачной смены диска
quit
end tell
end tell
end ChangeTimeDisk
on CheckTimeDisk(TimeDiskName)
set AppleScript's text item delimiters to {space}
--достаем UUID выбранного для функции диска
set TextUUID to last text item of (do shell script "diskutil info /Volumes/" & TimeDiskName & "/ | grep -F UUID")
return TextUUID
end CheckTimeDisk
10.6.5
Gigabyte EP35-DS3R, Е8400, 4GB 800MHz RAM
видео nVidia 8600GTS (dsdt)
звук ALC889a (dsdt + legacy kext)
сеть Realtek 8111B (dsdt)
[Profile]  [PM] 
Display posts from previous:    

The time now is: Today 19:38

All times are GMT + 4 Hours



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You cannot download files in this forum