私は自宅で優れたWi-Fi設定をしていないため、Time Machineバックアップに失敗することがあります。Time Machineが特定の状況でのみバックアップするように指定する方法はありますか?つまり、イーサネット接続がアクティブです...?
私は自宅で優れたWi-Fi設定をしていないため、Time Machineバックアップに失敗することがあります。Time Machineが特定の状況でのみバックアップするように指定する方法はありますか?つまり、イーサネット接続がアクティブです...?
回答:
これは私が投稿した他のスクリプトの代わりです。これはバックグラウンドで実行され、ネットワーク接続を2分ごとにテストして、イーサネット接続とワイヤレスのどちらを使用しているかを判断します。イーサネットの場合、Time Machineが有効になります。接続がワイヤレスに切り替わると、Time Machineが無効になります。
イーサネットに接続している間は、1つのコマンドを手動で実行して、イーサネットが割り当てられているインターフェイスを確認する必要があります。次のコマンドを実行します。
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
最初の横の番号に注意してください-これは、イーサネット接続が実行されているインターフェースです。
以下のスクリプトで、とある箇所で、上記の出力のの横にある番号にset wired_interface to "0"
変更します。(0である必要があります。MacProを使用している場合は、1の場合があります。)また、以下のスクリプトの上部にあるで、独自のMacユーザー名に置き換えます。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
⌘+ s保存します。[保存]プロパティシートで、をに設定File Format
しApplication
、のチェックボックスをオンにしますStay open after run handler
。それを好きな場所に保存します-デスクトップ、またはアプリケーションフォルダー-それは本当に重要ではありません。保存した場所を知っているだけです。
次に、ターミナルを開きます。次のコマンドを入力します。
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
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 Editorで作成したアプリケーションを実行すると、接続がイーサネットからワイヤレスに切り替わるときにTime Machineが有効または無効になり、開いたままになります。切り替えを無効にするには、AppleScriptアプリケーションを閉じます(Dockのアイコンを右クリックして[終了]を選択します)。
launchd
して、/Library/Preferences/SystemConfiguration/
フォルダへの変更を探すように指示するだけです。github.com/tjluoma/onnetworkchangeでこの例を入手できます。
このAppleScriptは、イーサネット接続がアクティブかどうかを確認し、アクティブな場合はTime Machineバックアップを実行します。
まず、システム環境設定でTime Machineを無効にします。以下のメソッドはそれを自動的に実行します。
イーサネットに接続している間は、1つのコマンドを手動で実行して、イーサネットが割り当てられているインターフェイスを確認する必要があります。次のコマンドを実行します。
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
最初の横の番号に注意してください-これは、イーサネット接続が実行されているインターフェースです。以下のスクリプトで、とあるところはen9
、9
上の番号に置き換えてください。(Mac Proをお持ちの場合は、en0
またはen1
と思われます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
これをEthernetTimeMachine.scpt
ホームフォルダに保存します(/Users/<yourusername>/
)。
次にターミナルを開き、次のコマンドを入力します。
pico ~/crontab
これにより、テキストエディターが開き、Time Machineがデフォルトで実行するのと同じように、このスクリプトを1時間ごとに実行するようにスケジュールできます。この行を貼り付けます:
@hourly osascript ~/<yourusername>/EthernetTimeMachine.scpt
キーを押しcontrol+はX、次に入力しy
Enterキーを押してreturn保存して終了します。
無効にするには、ターミナルに戻り、次のコマンドを使用します。
pico ~/crontab
次に、上記で追加した行を削除し、同じ手順を使用して保存して終了します。
ネットワーク設定を開き、イーサネットがサービス注文の一番上の接続であることを確認できます。このスクリーンショットで私が何を意味するかがわかると思います。
次に、イーサネットが接続されている場合は、常にプライマリ接続として使用する必要があります。
サービスの優先度を設定する方法については、こちらをご覧ください:http : //osxdaily.com/2013/06/15/set-network-connection-priority-mac-os-x/