मैं प्रत्येक बैकअप के बाद स्वचालित रूप से टाइम मशीन बैकअप ड्राइव को कैसे खारिज करूं?


25

मैं प्रत्येक बैकअप के बाद स्वचालित रूप से अपने बाहरी टाइम मशीन बैकअप ड्राइव को बाहर करने के लिए टाइम मशीन कैसे सेट करूं?


4
एक दिलचस्प अवलोकन: जब एक नेटवर्क ड्राइव पर TimeMachine बैकअप करते हैं तो TimeMachine स्वचालित रूप से माउंट, बैकअप करेगा और फिर नेटवर्क ड्राइव पर दूरस्थ TimeMachine शेयर को अनमाउंट करेगा। मुझे आश्चर्य है कि क्या आप इसका फायदा उठा सकते हैं जो आप चाहते हैं?
इयान सी

जवाबों:


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>

स्क्रिप्ट को निष्पादन योग्य बनाएं, डिफ़ॉल्ट प्लिस्ट को उतारें और नया लोड करें:

chmod +x ~/bin/timemachine
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.backupd-auto.plist
launchctl load ~/Library/LaunchAgents/timemachine_eject.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>
मार्टिन


6

एक बेहतर तरीका हो सकता है, लेकिन इसका एक समाधान अप्प्लस्क्रिप्ट में हो सकता है। मुझे अभी तक बैकअप के बाद एक एप्सस्क्रिप्ट को चलाने का कोई तरीका नहीं मिला है, लेकिन आप कर सकते हैं:

  1. स्वचालित TM बैकअप बंद करें
  2. टीएम को चलाने के लिए एक एपस्क्रिप्ट को सेट करें
    • कुछ गोग्लिंग ने तत्काल टीएम बिल्ड के लिए इस लाइन को चालू किया: do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper >/dev/null 2>&1 &"
  3. बाद में डिस्क को बाहर निकालने के लिए एक लाइन जोड़ें।
    • eject disk somedrivename

यदि आप चाहते हैं कि यह नियमित रूप से हो, तो आप इसे क्रोन जॉब से जोड़ सकते हैं।


1
होनहार लगता है, लेकिन # 2 समाप्त होने के बाद ही # 3 को शुरू करने के लिए कुछ तरीके होने की आवश्यकता है।
एडम ए।

अगर मुझे याद है, तो मैं इसे रिग करने की कोशिश करूंगा और आज रात घर आने पर इसका परीक्षण करूंगा (और बेदखल होने से पहले बैकअप खत्म होने का इंतजार करने की कोशिश करूंगा)।
फिशटोस्टर


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.