各バックアップ後にTime Machineバックアップドライブを自動的に取り出す方法を教えてください。


25

バックアップのたびに外部Time Machineバックアップドライブを自動的に取り出すようにTime Machineを設定するにはどうすればよいですか?


4
興味深い観察:TimeMachineをネットワークドライブにバックアップすると、TimeMachineはネットワークドライブ上のリモートTimeMachine共有を自動的にマウント、バックアップ、およびアンマウントします。あなたはそれを悪用してあなたが望むものを達成できるのだろうか?
イアンC.

回答:


19

〜/ bin / timemachine:

#!/bin/bash

d="Time Machine"  # (change this to match the name of your backup drive)
diskutil mount "$d" && tmutil startbackup -b && diskutil eject "$d"

〜/ Library / LaunchAgents / timemachine_eject.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>timemachine_eject</string>
    <key>Program</key>
    <string>/Users/username/bin/timemachine</string> <!-- Replace "username" with your username. "~/bin/timemachine" doesn't work -->
    <key>StartInterval</key>
    <integer>120</integer> <!-- run every two minutes for testing. -->
        <!-- Change this to a higher number like 43200 (run every 12 hours) once you've confirmed it works. -->
</dict>
</plist>

スクリプトを実行可能にし、デフォルトのplistをアンロードして、新しいものをロードします。

chmod +x ~/bin/timemachine
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.backupd-auto.plist
launchctl load ~/Library/LaunchAgents/timemachine_eject.plist

plistファイルに変更を加えたいときはいつでも、それをアンロードおよびロードする必要があります。

launchctl unload ~/Library/LaunchAgents/timemachine_eject.plist
launchctl load ~/Library/LaunchAgents/timemachine_eject.plist

1
私はこのソリューションが大好きです。ドライブを予定どおりに接続すると、このプロセスをさらに自動化して作業をマウントおよびアンマウントします。ここに私の記事をご覧ください:somethinginteractive.com/blog/2013/07/24/...
マイクKormendy

Maveriksでは、これはうまくいきませんでした。奇妙なことに、スクリプトがループし、バックアップが継続的に行われました。<キー> ProgramArguments </ key>の<配列> <文字列> /ユーザー/マーティン/ binに/タイムマシン</文字列> </配列>:次の変更はかかわらず動作します
マーティン

somethinginteractive.comがダウンしている、アーカイブバージョン:web.archive.org/web/20160409130936/http
Pro Backup

6

より良い方法があるかもしれませんが、1つの解決策はApplescriptに対するものかもしれません。バックアップ後にapplescriptを実行する方法はまだ見つかっていませんが、次のことができます。

  1. 自動TMバックアップをオフにします
  2. TMを実行するためにapplescriptをセットアップします
    • 一部のグーグルは、この行をすぐにTMのビルドを強制しました: do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper >/dev/null 2>&1 &"
  3. 後でディスクを取り出すための行を追加します。
    • eject disk somedrivename

これを定期的に実行する場合は、cronジョブに添付できます。


1
有望に見えますが、#2が終了した後にのみ#3を開始する方法が必要です。
アダムA

覚えているなら、私はこれをリグし、今夜家に帰ったときにテストします(そして、イジェクトする前にバックアップが完了するのを待って強制します)。
フィッシュトースター


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.