Evde büyük bir Wi-Fi kurulumum yok ve bazen başarısız Time Machine yedeklemelerine neden oluyor. Time Machine'in yalnızca belirli durumlarda yedekleneceğini belirtmenin bir yolu var mı - yani Ethernet bağlantısı etkin ...
Evde büyük bir Wi-Fi kurulumum yok ve bazen başarısız Time Machine yedeklemelerine neden oluyor. Time Machine'in yalnızca belirli durumlarda yedekleneceğini belirtmenin bir yolu var mı - yani Ethernet bağlantısı etkin ...
Yanıtlar:
Bu gönderdiğim diğer betiğe bir alternatif. Bu arka planda çalışır ve bir Ethernet bağlantısı veya kablosuz kullanıp kullanmadığını belirlemek için ağ bağlantısını iki dakikada bir test eder. Ethernet üzerindeyse, Time Machine'i etkinleştirir; bağlantı kablosuz ağa geçtiğinde Time Machine'i devre dışı bırakır.
Ethernet'e bağlıyken, Ethernet'in hangi arabirime atandığını doğrulamak için bir komutu manuel olarak çalıştırmanız gerekir. Bu komutu çalıştırın:
ifconfig
Bilgi dolu bir ekran çıkarmalıdır. Aradığınız, en
ondan sonraki bir sayı ile etiketlenmiş ve son satırı şöyledir 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
Başlangıçtaki numarayı not edin - bu, Ethernet bağlantınızın üzerinde çalıştığı arabirimdir.
Aşağıdaki komut dosyasında , yukarıdaki çıktıda yanındaki sayı olarak set wired_interface to "0"
değiştirin . (0 olmalıdır; Mac Pro'daysanız, 1 olabilir.) Ayrıca aşağıdaki komut dosyasında, yazdığı en üstte kendi Mac kullanıcı adınızı yazın.0
en
myusername
-- 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
⌘+ skaydedin. Kaydet özellik sayfasında, File Format
as değerini ayarlayın Application
ve onay kutusunu işaretleyin Stay open after run handler
. İstediğiniz yere kaydedin - Masaüstü veya Uygulama Klasörü - gerçekten önemli değil, sadece nereye kaydettiğinizi bilin.
Ardından Terminal'i açın. Aşağıdaki komutları yazın:
cd ~/
mkdir TMSwitch
cd TMSwitch
pico TM_On.csh
Aşağıdaki satırı yapıştırın:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool TRUE
control+ Tuşuna basın x, yazın yve returnkaydetmek ve çıkmak için tuşuna basın . Ardından şu komutu çalıştırın:
pico TM_Off.csh
Ve bu dosyaya aşağıdaki satırı yapıştırın:
defaults write /Library/Preferences/com.apple.TimeMachine AutoBackup -bool FALSE
Yine, control+ x, sonra yve returnkaydedip çıkmak için.
Ardından, şu komutları girin:
chmod 4555 TM_O*.csh
chown root TM_O*.csh
sudo
Parola Olmadan Çalışacak Şekilde AyarlamaTerminal komutunun sudo
parola olmadan çalıştırılması çok tehlikeli olabilir. Bu nedenle yukarıdaki adımlar kendi dizinlerinde kabuk komut dosyaları oluşturduğundan, gerçekte çalıştırılabilecek şeyler sınırlıdır.
Terminal'e aşağıdaki komutu girin:
sudo pico /etc/sudoers
Ardından istendiğinde yönetici parolanızı girin.
Bu sizi (çoğunlukla) boş bir ekrana getirebilir veya içinde bazı metinler olabilir. Boşsa - sorun değil. Aşağıdaki satırı en üste yapıştırmanız yeterlidir. Metin zaten varsa, bu da iyidir; # User privilege specification
aşağıdaki ekran görüntüsünde görüldüğü gibi , bölümdeki satırların hemen altına gitmek için aşağı okunuzu kullanın .
Buraya aşağıdaki satırı ekleyin:
<yourusername> ALL = NOPASSWD: /Users/<yourusername>/TMSwitch/*
Görünen her iki yerde de <yourusername>
Mac kullanıcı adınızla değiştirin. control+ Tuşuna basın x, yazın yve returnkaydetmek ve çıkmak için tuşuna basın .
Aşağıdaki komutu çalıştırarak bu dosyaların Time Machine'i açıp kapadığını test edin (Time Machine'in şu anda açık olduğu varsayılarak):
sudo ./TM_Off.csh
Bir süre sonra menü çubuğundaki Zaman Makinesi simgesi, Zaman Makinesi'nin kapalı olduğunu belirten gri renkte olmalıdır. (Değişikliği yansıtması için simgeyi tıklamanız gerekebilir). Bu işe yararsa, şu komutu çalıştırın:
sudo ./TM_On.csh
Ve Time Machine yeniden etkinleştirilmelidir.
Yukarıdaki AppleScript Editor'da oluşturduğunuz uygulamayı çalıştırın, bağlantınız Ethernet'ten kablosuz ağa ve arkaya geçerken Time Machine'i etkinleştirir ve devre dışı bırakır. Geçişi devre dışı bırakmak için AppleScript uygulamasını kapatın (Dock'taki simgeye sağ tıklayın ve Quit'i seçin).
launchd
herhangi bir değişiklik olup olmadığını görmek için kullanmanız ve söylemeniz /Library/Preferences/SystemConfiguration/
yeterlidir. Bunun bir örneğini github.com/tjluoma/onnetworkchange adresinde bulabilirsiniz .
Bu AppleScript, Ethernet bağlantısının etkin olup olmadığını kontrol eder ve varsa bir Time Machine yedeklemesi çalıştırır.
İlk olarak, Sistem Tercihleri'nde Time Machine'i devre dışı bırakın. Aşağıdaki yöntem otomatik olarak çalışacaktır.
Ethernet'e bağlıyken, Ethernet'in hangi arabirime atandığını doğrulamak için bir komutu manuel olarak çalıştırmanız gerekir. Bu komutu çalıştırın:
ifconfig
Bilgi dolu bir ekran çıkarmalıdır. Aradığınız, en
ondan sonraki bir sayı ile etiketlenmiş ve son satırı şöyledir 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
Başlangıçtaki numarayı not edin - bu, Ethernet bağlantınızın üzerinde çalıştığı arabirimdir. Aşağıdaki komut dosyasında , yukarıdaki sayı ile en9
değiştirin 9
. (Bir Mac Pro'nuz varsa, büyük olasılıkla en0
veya olacaktır en1
. Aksi takdirde, büyük olasılıkla olacaktır en0
.)
if (do shell script "ifconfig en9 | awk '/inet/ {print $2}'") is not equal to "" then
do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper &"
end if
Bunu EthernetTimeMachine.scpt
ana klasörünüze ( /Users/<yourusername>/
) kaydedin .
Sonra Terminal'i açın ve aşağıdaki komutu yazın:
pico ~/crontab
Bu, Time Machine'in varsayılan olarak yaptığı gibi, bu komut dosyasını saatlik olarak çalışacak şekilde zamanlamanıza izin veren bir metin düzenleyici açar. Bu satırı yapıştırın:
@hourly osascript ~/<yourusername>/EthernetTimeMachine.scpt
control+ XTuşlarına basın ve ardından kaydetmek ve çıkmak için y
tuşuna basın return.
Devre dışı bırakmak için Terminal'e geri dönün, şu komutu kullanın:
pico ~/crontab
Ardından, yukarıda eklediğiniz satırı silin ve kaydetmek ve çıkmak için aynı adımları uygulayın.
Ağ Tercihlerini açabilir ve Ethernet'in servis siparişinde en üst bağlantı olduğundan emin olun. Bu ekran görüntüsünde ne demek istediğimi görebilirsiniz, umarım.
Ardından, Ethernet bağlıysa, onu her zaman birincil bağlantınız olarak kullanmalısınız.
Hizmet önceliğini nasıl ayarlayacağınız için buraya bakın: http://osxdaily.com/2013/06/15/set-network-connection-priority-mac-os-x/