Ini adalah alternatif dari skrip lain yang saya posting. Yang ini berjalan di latar belakang dan menguji koneksi jaringan setiap dua menit untuk menentukan apakah itu menggunakan koneksi Ethernet atau nirkabel. Jika pada Ethernet, ini memungkinkan Time Machine; ketika koneksi beralih ke nirkabel itu menonaktifkan Time Machine.
Langkah 1: Pemeriksaan Sistem
Saat terhubung ke Ethernet, Anda harus menjalankan satu perintah secara manual untuk mengonfirmasi antarmuka Ethernet mana yang ditugaskan. Jalankan perintah ini:
ifconfig
Seharusnya menampilkan layar yang penuh dengan informasi. Apa yang Anda cari adalah bagian yang berlabel en
nomor setelahnya, dan yang baris terakhirnya adalah status: active
, seperti ini:
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
Catat nomor di sebelah en
di awal - ini adalah antarmuka yang menjalankan koneksi Ethernet Anda.
Langkah 2: Buat Aplikasi AppleScript
Dalam skrip di bawah ini, di mana dikatakan set wired_interface to "0"
, ubah 0
ke nomor di sebelah en
dalam output di atas. (Seharusnya 0; jika Anda menggunakan Mac Pro, mungkin 1.) Juga dalam skrip di bawah ini, di bagian atas di mana tertulis myusername
, gantilah nama pengguna Mac Anda sendiri.
-- 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
⌘+ suntuk menyimpan. Di lembar Simpan properti, atur File Format
sebagai Application
, dan centang kotak untuk Stay open after run handler
. Simpan di mana pun Anda suka - Desktop, atau Aplikasi Folder - itu benar-benar tidak masalah, hanya tahu di mana Anda menyimpannya.
Langkah 3: Buat Script Shell
Selanjutnya, buka Terminal. Ketikkan perintah berikut:
cd ~/
mkdir TMSwitch
cd TMSwitch
pico TM_On.csh
Rekatkan baris berikut di:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool TRUE
Tekan control+ x, ketik ydan tekan returnuntuk menyimpan dan keluar. Kemudian jalankan perintah ini:
pico TM_Off.csh
Dan dalam file ini tempelkan baris berikut:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool FALSE
Sekali lagi, control+ x, lalu ydan returnuntuk menyimpan dan keluar.
Selanjutnya, masukkan perintah ini:
chmod 4555 TM_O*.csh
chown root TM_O*.csh
Langkah 4: Mengatur sudo
untuk Menjalankan Tanpa Kata Sandi
Membiarkan perintah Terminal sudo
berjalan tanpa kata sandi bisa sangat berbahaya. Itu sebabnya langkah-langkah di atas membuat skrip shell di direktori mereka sendiri, jadi apa yang sebenarnya bisa dijalankan terbatas.
Masukkan perintah berikut di Terminal:
sudo pico /etc/sudoers
Kemudian masukkan kata sandi administrator Anda saat diminta.
Ini dapat membawa Anda ke layar kosong (kebanyakan), atau mungkin ada teks di dalamnya. Jika kosong - tidak apa-apa. Anda hanya akan menempelkan garis di bawah ini di bagian atas. Jika teks sudah ada, itu juga bagus; gunakan panah bawah Anda untuk langsung ke bawah garis yang sudah ada di # User privilege specification
bagian, seperti yang terlihat pada tangkapan layar di bawah ini.
Di sini, tambahkan baris berikut:
<yourusername> ALL = NOPASSWD: /Users/<yourusername>/TMSwitch/*
Di kedua tempat yang <yourusername>
muncul, gantikan dengan nama pengguna Mac Anda. Tekan control+ x, ketik ydan tekan returnuntuk menyimpan dan keluar.
Uji bahwa file-file ini menghidupkan dan mematikan Time Machine dengan menjalankan perintah berikut (dengan anggapan Time Machine sedang hidup):
sudo ./TM_Off.csh
Setelah beberapa saat, ikon Time Machine di menubar akan berubah abu-abu, yang menunjukkan Time Machine dimatikan. (Anda mungkin perlu mengklik ikon untuk mencerminkan perubahan). Dengan asumsi ini berfungsi, jalankan perintah ini:
sudo ./TM_On.csh
Dan Time Machine harus diaktifkan kembali.
Dan pergilah
Jalankan aplikasi yang Anda buat di AppleScript Editor di atas, dan itu akan tetap terbuka, mengaktifkan dan menonaktifkan Time Machine saat koneksi Anda beralih dari Ethernet ke nirkabel dan kembali. Untuk menonaktifkan perpindahan, cukup tutup aplikasi AppleScript (klik kanan pada ikon di Dock dan pilih Berhenti).