Saya tidak punya pengaturan Wi-Fi yang bagus di sini di rumah dan terkadang menghasilkan cadangan Time Machine yang gagal. Apakah ada cara untuk menentukan bahwa Time Machine hanya mencadangkan dalam keadaan tertentu - mis. Koneksi Ethernet aktif ...?
network
time-machine
script
automation
babelmonk
sumber
sumber
Jawaban:
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:
Seharusnya menampilkan layar yang penuh dengan informasi. Apa yang Anda cari adalah bagian yang berlabel
en
nomor setelahnya, dan yang baris terakhirnya adalahstatus: active
, seperti ini: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"
, ubah0
ke nomor di sebelahen
dalam output di atas. (Seharusnya 0; jika Anda menggunakan Mac Pro, mungkin 1.) Juga dalam skrip di bawah ini, di bagian atas di mana tertulismyusername
, gantilah nama pengguna Mac Anda sendiri.⌘+ suntuk menyimpan. Di lembar Simpan properti, atur
File Format
sebagaiApplication
, dan centang kotak untukStay 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:
Rekatkan baris berikut di:
Tekan control+ x, ketik ydan tekan returnuntuk menyimpan dan keluar. Kemudian jalankan perintah ini:
Dan dalam file ini tempelkan baris berikut:
Sekali lagi, control+ x, lalu ydan returnuntuk menyimpan dan keluar.
Selanjutnya, masukkan perintah ini:
Langkah 4: Mengatur
sudo
untuk Menjalankan Tanpa Kata SandiMembiarkan 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:
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:
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):
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:
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).
sumber
launchd
dan mengatakannya untuk mencari perubahan pada/Library/Preferences/SystemConfiguration/
folder. Saya punya contoh ini tersedia di github.com/tjluoma/onnetworkchange .AppleScript ini akan memeriksa apakah koneksi Ethernet aktif, dan kemudian menjalankan cadangan Time Machine jika demikian.
Pertama, nonaktifkan Time Machine di System Preferences. Metode di bawah ini akan menjalankannya secara otomatis.
Saat terhubung ke Ethernet , Anda harus menjalankan satu perintah secara manual untuk mengonfirmasi antarmuka Ethernet mana yang ditugaskan. Jalankan perintah ini:
Seharusnya menampilkan layar yang penuh dengan informasi. Apa yang Anda cari adalah bagian yang berlabel
en
nomor setelahnya, dan yang baris terakhirnya adalahstatus: active
, seperti ini:Catat nomor di sebelah
en
di awal - ini adalah antarmuka yang menjalankan koneksi Ethernet Anda. Dalam skrip di bawah ini, di mana tertulisen9
, ganti9
dengan angka dari atas. (Jika Anda memiliki Mac Pro, kemungkinan besar akan menjadien0
atauen1
. Kalau tidak, kemungkinan besar akan menjadien0
.)Simpan ini sebagai
EthernetTimeMachine.scpt
ke folder rumah Anda (/Users/<yourusername>/
).Selanjutnya buka Terminal dan ketik perintah berikut:
Ini akan membuka editor teks untuk memungkinkan Anda menjadwalkan skrip ini untuk dijalankan setiap jam, seperti halnya Time Machine secara default. Rekatkan baris ini:
Tekan control+ Xlalu ketik
y
dan tekan returnuntuk menyimpan dan keluar.Untuk menonaktifkannya, kembali ke Terminal, gunakan lagi perintah:
Kemudian hapus baris yang Anda tambahkan di atas dan gunakan langkah yang sama untuk menyimpan dan keluar.
sumber
Anda dapat membuka Prefs Jaringan dan memastikan Ethernet adalah koneksi teratas dalam urutan layanan. Anda dapat melihat apa yang saya maksud di tangkapan layar ini, saya harap.
Kemudian, jika Ethernet terhubung Anda harus selalu menggunakannya sebagai koneksi utama Anda.
Lihat di sini untuk cara mengatur prioritas layanan: http://osxdaily.com/2013/06/15/set-network-connection-priority-mac-os-x/
sumber