Это альтернатива другому сценарию, который я разместил. Этот работает в фоновом режиме и каждые две минуты проверяет сетевое соединение, чтобы определить, использует ли оно соединение Ethernet или беспроводное соединение. Если на Ethernet, это включает Time Machine; когда соединение переключается на беспроводное соединение, оно отключает Time Machine.
Шаг 1: Проверка системы
При подключении к Ethernet вам нужно будет выполнить одну команду вручную, чтобы подтвердить, какой интерфейс назначен Ethernet. Запустите эту команду:
ifconfig
Это должно вывести экран, полный информации. То, что вы ищете, это раздел, помеченный en
цифрой после него, и последняя строка которого выглядит status: active
следующим образом:
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
ether 00:25:00:ef:30:3c
inet6 fe80::225:ff:feef:303c%en1 prefixlen 64 scopeid 0x5
inet 192.168.1.68 netmask 0xffffff00 broadcast 192.168.1.255
media: autoselect (100baseTX <full-duplex>)
status: active
Обратите внимание на номер рядом с en
в начале - это интерфейс, на котором работает ваше соединение Ethernet.
Шаг 2. Создайте приложение AppleScript
В приведенном ниже сценарии, где указано set wired_interface to "0"
, замените 0
число рядом с en
вышеприведенным выводом. (Это должно быть 0; если вы на Mac Pro, это может быть 1.) Также в приведенном ниже скрипте, в верхней части, где написано myusername
, замените свое имя пользователя Mac.
-- Edit variables here --
global current_username
set current_username to "myusername"
global wired_interface
set wired_interface to "0"
-- DO NOT EDIT BELOW THIS LINE --
global last_connection
set last_connection to "wireless"
on idle
if (do shell script "ifconfig en" & wired_interface & " | awk '/inet/ {print $2}'") is not equal to "" then
-- on ethernet
if last_connection is equal to "wireless" then
-- turn TM on
-- else do nothing, we're still on ethernet
set last_connection to "ethernet"
do shell script "sudo /Users/" & current_username & "/TMSwitch/TM_On.csh"
end if
else
-- on wireless
if last_connection is equal to "ethernet" then
-- turn tm off
-- else do nothing, we're still on wireless
set last_connection to "wireless"
do shell script "sudo /Users/" & current_username & "/TMSwitch/TM_Off.csh"
end if
end if
return 120
end idle
⌘+ sчтобы сохранить. На странице свойств Сохранить установите File Format
как Application
и установите флажок для Stay open after run handler
. Сохраняйте его где угодно - на рабочем столе или в папке приложений - это действительно не имеет значения, просто знайте, где вы его сохранили.
Шаг 3. Создание сценариев оболочки
Далее откройте Терминал. Введите следующие команды:
cd ~/
mkdir TMSwitch
cd TMSwitch
pico TM_On.csh
Вставьте следующую строку в:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool TRUE
Нажмите control+ x, введите yи нажмите, returnчтобы сохранить и выйти. Затем выполните эту команду:
pico TM_Off.csh
И в этом файле вставьте следующую строку:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool FALSE
Снова control+ x, затем yи returnдля сохранения и выхода.
Далее введите эти команды:
chmod 4555 TM_O*.csh
chown root TM_O*.csh
Шаг 4: Настройка sudo
для запуска без пароля
Разрешение выполнения команды терминала sudo
без пароля может быть очень опасным. Вот почему описанные выше шаги создали сценарии оболочки в своем собственном каталоге, поэтому возможности запуска ограничены.
Введите следующую команду в Терминале:
sudo pico /etc/sudoers
Затем введите пароль администратора при появлении запроса.
Это может привести вас к (в основном) пустому экрану или к нему может быть какой-то текст. Если он пуст - это нормально. Вы просто вставите нижнюю строку вверху. Если текст уже существует, это тоже хорошо; используйте стрелку вниз, чтобы перейти прямо под линии, уже находящиеся в # User privilege specification
разделе, как показано на скриншоте ниже.
Здесь добавьте следующую строку:
<yourusername> ALL = NOPASSWD: /Users/<yourusername>/TMSwitch/*
В обоих местах <yourusername>
замените его своим именем пользователя Mac. Нажмите control+ x, введите yи нажмите, returnчтобы сохранить и выйти.
Проверьте, что эти файлы включают и выключают Time Machine, выполнив следующую команду (при условии, что Time Machine в данный момент включен):
sudo ./TM_Off.csh
Через некоторое время значок Time Machine в строке меню должен стать серым, указывая на то, что Time Machine выключена. (Возможно, вам придется нажать на значок, чтобы отразить изменение). Предполагая, что это работает, выполните эту команду:
sudo ./TM_On.csh
И Time Machine должна быть снова включена.
И вы идете
Запустите приложение, которое вы создали в редакторе AppleScript выше, и оно останется открытым, включая и отключая Time Machine, когда ваше соединение переключается с Ethernet на беспроводную связь и обратно. Чтобы отключить переключение, просто закройте приложение AppleScript (щелкните правой кнопкой мыши значок в Dock и выберите «Выйти»).