Mac文件夾間自動(dòng)定時(shí)同步的方法

需求情景

我在Mac上有好幾個(gè)分散在各處的文件夾需要備份到移動(dòng)硬盤上棉磨,而且最好是增量備份的方式以節(jié)約時(shí)間呢蛤。[1]需求如下:

  1. 每個(gè)文件夾需要分開各自備份雁社。
  2. 能定時(shí)自動(dòng)備份最好置济。

解決方案

基礎(chǔ)軟件

FreeFileSync
顧名思義所坯,免費(fèi)的文件同步軟件谆扎。官方自帶簡(jiǎn)體中文
界面如圖芹助,與知名文件同步軟件GoodSync(它在Mac端搜不到破解版囧)感覺功能上也相當(dāng)堂湖,都能一目了然地看到文件夾&文件之間的區(qū)別∽赐粒可能區(qū)別在同步算法上吧无蜂,不過我這種輕量用戶也不在乎。

用戶界面

這個(gè)軟件有個(gè)很好的功能就是能創(chuàng)建同步的批處理蒙谓,把兩側(cè)的文件夾斥季、同步的方向設(shè)定好,直接存為一個(gè)后綴為ffs_batch的文件累驮,打開這個(gè)文件就能自動(dòng)完成同步酣倾。
注意看紅色框處

還可以選擇當(dāng)出現(xiàn)錯(cuò)誤、完成時(shí)如何進(jìn)行谤专,以及日志保存的位置躁锡。
保存批處理文件的選項(xiàng)

進(jìn)階技巧

由于我上述的需求,我需要自己寫一些腳本程序來實(shí)現(xiàn)了置侍。

自動(dòng)運(yùn)行多個(gè)批處理映之,借助AppleScript

激活Spotlight搜索,輸入腳本編輯器[2]以打開蜡坊。

空白的腳本編輯器

小注:我之前對(duì)AppleScript[3]完全不了解杠输,以下還是我寫的第一個(gè)小腳本。在我有限的理解里秕衙,AppleScript與操作系統(tǒng)高度集成抬伺,可以更方便地直接對(duì)系統(tǒng)進(jìn)行操作。

而這次我們只需要用到打開文件[4]的功能(是不是特別低端)灾梦。

tell application "Finder"
    open alias "Macintosh HD:Users:Adam:Documents:FileSync的批處理和日志文件:xxx.ffs_batch"
    delay 10.0
    open alias "Macintosh HD:Users:Adam:Documents:FileSync的批處理和日志文件:yyy.ffs_batch"
    delay 10.0
    open alias "Macintosh HD:Users:Adam:Documents:FileSync的批處理和日志文件:zzz.ffs_batch"
    open alias "Macintosh HD:Users:Adam:Documents:FileSync的批處理和日志文件"
end tell

display notification "文件夾同步開始工作"
  • tell用來將任務(wù)交給Mac里的某個(gè)程序來做峡钓,tell application "Finder"
    就是打開Finder了。
  • open是打開文件夾或文件若河,有人會(huì)問“我不知道路徑在AppleScript里怎么表達(dá)怎么辦呢能岩?”,有下圖的人性化方案萧福。
    敲入命令choose file拉鹃,以某文件為例:
    獲取文件路徑方法

    點(diǎn)擊選取之后就會(huì)出現(xiàn)alias "Macintosh HD:Users:Adam:Library:Mobile Documents:com~apple~ScriptEditor2:Documents:未命名.scpt"的字樣,這些就是輸入open之后的東西了。
  • delay的作用是延緩下一步執(zhí)行膏燕,因?yàn)槊看螆?zhí)行一個(gè)批處理都要花一點(diǎn)時(shí)間钥屈,因此如果不讓程序暫停,則會(huì)出錯(cuò)坝辫。
  • display notification顧名思義篷就,寫個(gè)通知告訴我腳本運(yùn)行了。

腳本寫好之后可以將其保存成可直接執(zhí)行的應(yīng)用程序近忙,第一步就大功告成了竭业。

保存時(shí)注意

創(chuàng)建任務(wù)描述文件.plist實(shí)現(xiàn)定時(shí)自動(dòng)功能

同樣這是我第一次接觸.plist,更詳細(xì)的可見Mac下添加定時(shí)任務(wù)及舍。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <!-- 名稱未辆,要全局唯一 -->
    <key>Label</key>
    <string>com.adam.foldersync</string>

    <!-- 要運(yùn)行的程序 -->
    <key>Program</key>
    <string>/Users/Adam/Documents/FileSync的批處理和日志文件/定期同步.app/Contents/MacOS/applet</string>

    <!-- 運(yùn)行時(shí)間 -->
    <key>StartCalendarInterval</key>
    <dict>

      <key>Minute</key>
      <integer>00</integer>

      <key>Hour</key>
      <integer>23</integer>

      <key>Weekday</key>
      <integer>0</integer>

    </dict>

    <!-- 標(biāo)準(zhǔn)輸入文件 -->
    <key>StandardInPath</key>
    <string>/Users/Adam/Documents/FileSync的批處理和日志文件/run-in.log</string>

    <!-- 標(biāo)準(zhǔn)輸出文件 -->
    <key>StandardOutPath</key>
    <string>/Users/Adam/Documents/FileSync的批處理和日志文件/run-out.log</string>

    <!-- 標(biāo)準(zhǔn)錯(cuò)誤輸出文件 -->
    <key>StandardErrorPath</key>
    <string>/Users/Adam/Documents/FileSync的批處理和日志文件/run-err.log</string>

  </dict>
</plist>

  • <string>com.adam.foldersync</string>是我給這個(gè)任務(wù)起的名字
  • 對(duì)于<string>/Users/Adam/Documents/FileSync的批處理和日志文件/定期同步.app/Contents/MacOS/applet</string>定期同步.app是上文將AppleScript保存成應(yīng)用程序生成的東西锯玛,/Contents/MacOS/applet照抄[5]咐柜。
  • <key>Weekday</key><integer>0</integer>表示星期天,<key>Hour</key><key>Minute</key>就分別表示幾點(diǎn)幾分了攘残。
  • 保存成com.adam.foldersync.plist將其放入~/Library/LaunchAgents——此為用戶自定義任務(wù)項(xiàng)的目錄炕桨。

最后一步,擰緊發(fā)條肯腕,定時(shí)任務(wù)啟動(dòng)献宫!

在Mac的終端輸入launchctl load ~/Library/LaunchAgents/com.adam.foldersync.plist,便啟動(dòng)了這個(gè)任務(wù)实撒。
可以輸入launchctl list查看你的任務(wù)是否在列表里姊途,如果在的話,就成功一半了知态,之后就查看/Users/Adam/Documents/FileSync的批處理和日志文件/中的日志來看執(zhí)行情況吧捷兰。

我的plist已加載

尾聲

當(dāng)初執(zhí)意要換上Mac就是因?yàn)槁犝fMac OS下工作(我白天的職業(yè)環(huán)境是Windows,所以這里不談Microsoft Office生產(chǎn)力等)的效率高负敏,買回來之后我也就秉承著這個(gè)提高效率的執(zhí)念去研究著玩贡茅,確實(shí)也依靠Automator實(shí)現(xiàn)了一些。以前玩Windows的時(shí)候還沒深入到自己變成的地步其做,所以不知道Mac OS比Windows效率高到底是真是偽顶考,看客要是有想法敬請(qǐng)交流。

最后妖泄,文章轉(zhuǎn)載請(qǐng)注明出處驹沿。(雖然我知道沒人會(huì)轉(zhuǎn)的)


  1. 當(dāng)然了,TimeMachine也能達(dá)到這個(gè)目的蹈胡,但是移動(dòng)硬盤處的文件夾我需要上傳至網(wǎng)盤再做一次備份渊季。 ?

  2. 對(duì)于Mac OS 10.11之前叫AppleScript編輯器 ?

  3. 完整文檔可參見AppleScript Programming ?

  4. 文件處理的詳細(xì)參見AppleScript學(xué)習(xí)筆記(五)文件夾朋蔫,文件和路徑 ?

  5. 此處參考了Mac OS X下使用launchctl定時(shí)啟動(dòng)AppleScript腳本?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末却汉,一起剝皮案震驚了整個(gè)濱河市驯妄,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌合砂,老刑警劉巖青扔,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異既穆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)雀鹃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門幻工,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人黎茎,你說我怎么就攤上這事囊颅。” “怎么了傅瞻?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵踢代,是天一觀的道長。 經(jīng)常有香客問我嗅骄,道長胳挎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任溺森,我火速辦了婚禮慕爬,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘屏积。我一直安慰自己医窿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布炊林。 她就那樣靜靜地躺著姥卢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪渣聚。 梳的紋絲不亂的頭發(fā)上独榴,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音奕枝,去河邊找鬼括眠。 笑死,一個(gè)胖子當(dāng)著我的面吹牛倍权,可吹牛的內(nèi)容都是我干的掷豺。 我是一名探鬼主播捞烟,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼当船!你這毒婦竟也來了题画?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤德频,失蹤者是張志新(化名)和其女友劉穎苍息,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體壹置,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡竞思,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了钞护。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盖喷。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖难咕,靈堂內(nèi)的尸體忽然破棺而出课梳,到底是詐尸還是另有隱情,我是刑警寧澤余佃,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布暮刃,位于F島的核電站,受9級(jí)特大地震影響爆土,放射性物質(zhì)發(fā)生泄漏椭懊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一步势、第九天 我趴在偏房一處隱蔽的房頂上張望灾搏。 院中可真熱鬧,春花似錦立润、人聲如沸狂窑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽泉哈。三九已至,卻和暖如春破讨,著一層夾襖步出監(jiān)牢的瞬間丛晦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國打工提陶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留烫沙,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓隙笆,卻偏偏與公主長得像锌蓄,于是被迫代替她去往敵國和親升筏。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • Ubuntu的發(fā)音 Ubuntu灵汪,源于非洲祖魯人和科薩人的語言,發(fā)作 oo-boon-too 的音柑潦。了解發(fā)音是有意...
    螢火蟲de夢(mèng)閱讀 99,201評(píng)論 9 467
  • 見www.reibang.com/p/59279b018217 Application can be killed...
    heatbeats閱讀 3,026評(píng)論 0 0
  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,128評(píng)論 29 470
  • 本故事純屬虛構(gòu)渗鬼,切勿對(duì)號(hào)入座览露。 這個(gè)地方,墻是四四方方的乍钻,房子是四四方方的肛循,土地是四四方方的铭腕,連天空也是四四方方的...
    今年九十歲閱讀 905評(píng)論 2 8
  • _Mr_Deng閱讀 85評(píng)論 0 0