How do I set Time Machine to eject my external Time Machine backup drive automatically after each backup?

  • 4
    An interesting observation: when doing a TimeMachine backup to a network drive TimeMachine will automatically mount, backup and then unmount the remote TimeMachine share on the network drive. I wonder if you could exploit that to achieve what you want? – Ian C. May 25 '11 at 14:39



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


<?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">
    <string>/Users/username/bin/timemachine</string> <!-- Replace "username" with your username. "~/bin/timemachine" doesn't work -->
    <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. -->

Make the script executable, unload the default plist, and load the new one:

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

Any time you want to make changes to the plist file, you have to unload and load it:

launchctl unload ~/Library/LaunchAgents/timemachine_eject.plist
launchctl load ~/Library/LaunchAgents/timemachine_eject.plist
  • 1
    I love this solution, I further automated this process to mount and unmount work when I plug my drive and on a schedule. Visit my post here: somethinginteractive.com/blog/2013/07/24/… – Mike Kormendy Jul 31 '13 at 6:07
  • On Maveriks this did not work for me, strangely the script looped and the backup was done continuously. The following change works though: <key>ProgramArguments</key> <array> <string>/Users/martin/bin/timemachine</string> </array> – Martin Jan 5 '15 at 14:21
  • somethinginteractive.com is down, archived version: web.archive.org/web/20160409130936/http://… – Pro Backup Nov 27 '17 at 18:03

There might be a better way, but one solution might be to Applescript it. I haven't yet found any way to run an applescript after a backup, but you could:

  1. Turn off automatic TM backup
  2. Set up an applescript to run TM
    • Some googling turned up this line to force an immediate TM build: do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper >/dev/null 2>&1 &"
  3. Add a line to eject the disk afterwards.
    • eject disk somedrivename

If you want this to happen on a regular basis, you could attach it to a cron job.

  • 1
    Looks promising, but there needs to be some way to start #3 only after #2 ends. – Adam A Aug 30 '10 at 14:27
  • If I remember, I'll try to rig this up and test it when I get home tonight (and try to enforce waiting for the backup to finish before ejecting). – Fishtoaster Aug 30 '10 at 14:49
  • Here is a similar idea at Mac OS X Hints, using a python script. – Nathan Grigg Jun 24 '11 at 21:31

Haven't tried this, but it looks like it might work:

Jettison (Mac App Store link)

Ejects external drives when going to sleep and remounts them waking from sleep.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .