每次备份后如何自动弹出Time Machine备份驱动器?


25

如何设置Time Machine在每次备份后自动弹出外部Time Machine备份驱动器?


4
一个有趣的观察:在对网络驱动器进行TimeMachine备份时,TimeMachine将自动安装,备份然后卸载网络驱动器上的远程TimeMachine共享。我想知道您是否可以利用它来实现您想要的?
伊恩·C

Answers:


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,然后加载新的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上,这对我不起作用,奇怪的是脚本循环播放,并且备份是连续进行的。尽管可以进行以下更改:<key> ProgramArguments </ key> <array> <string> / Users / martin / bin / timemachine </ string> </ array>
Martin

somethinginteractive.com已关闭,存档版本:web.archive.org/web/20160409130936/http
Pro Backup

6

也许有更好的方法,但是一种解决方案可能是使用Applescript。备份后,我还没有找到任何运行applescript的方法,但是您可以:

  1. 关闭自动TM备份
  2. 设置一个Applescript以运行TM
    • 一些谷歌搜索发现这条线强制立即建立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 2010年

如果我还记得的话,我将在今晚回家时尝试进行组装并进行测试(并尝试强制执行备份操作,然后再弹出)。
Fishtoaster


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.