iT邦幫忙

0

Mac 自動備份專案 (Rsync/FreeFileSync + crontab)

  • 分享至 

  • xImage
  •  

FreeFileSync搭配crontab

順序說明:
1.FreeFileSync設定備份鏡像的設定
2.儲存為批次檔
3.Terminal 執行 crontab -e
4.
按"i"切換為輸入模式,輸入下方*
30 17 * * 1-5 /Applications/FreeFileSync.app/Contents/MacOS/FreeFileSync /Users/userNAME/Documents/tempNas/BatchRun.ffs_batch
按"ESC"切換為指令模式
:wq存擋

*註釋:
cron 設定解釋
30 17 表示每天的 17:30 (即下午五點半)。

    • 1-5 表示每月的每天,僅在週一到週五執行。
      後面的命令是啟動 FreeFileSync 並指定批處理檔案的完整路徑。

問題與解法

一開始測試FreeFileSync在Mac上搭配crontab排程執行
有得到錯誤:
『無法開啟檔案 ".../BatchRun.ffs_batch"。
EPERM: Operation not permitted [open]』

因為crontab要執行應用程式檔案時,有些執行權限的問題
嘗試用chmod修改執行批次檔的權限
但結果仍然相同,看來問題不在這裡

後來爬文找到解法
https://apple.stackexchange.com/questions/378553/crontab-operation-not-permitted
設定-保安與隱私-完整磁碟取用-
這裡按“+”符號,並
1.執行組合鍵cmd+shift+G
2.輸入/usr/sbin
3.在右側選擇cron檔案

這樣crontab執行時,就不會有權限的問題的

rsync搭配crontab

爬文時剛好看到這篇分享 rsync
https://www.minwt.com/mac/21562.html
於是就測試用rsync指令配crontab排程
兩者都是Mac內建,不用另外安裝軟體,挺方便的
也沒有權限的問題

語法紀錄
30 17 * * 1-5 /usr/bin/rsync -avz --delete --exclude 'node_modules/' --exclude 'builds/' /Users/userNAME/WEB/work/NBproject/ /Users/userNAME/Library/CloudStorage/OneDrive-個人/personalNas/NBproject/ >> /Users/userNAME/Library/CloudStorage/OneDrive-個人/personalNas/rsync_log.txt 2>&1

*註釋:

  • 30 17:表示每天的 17:30 (即下午五點半)。
      • 1-5:這些星號表示每個月的每天,1-5 表示星期一到星期五。
  • 最後的命令是 rsync 命令,包括所有參數。
  • /Users/haixuanwang/rsync_log.txt 2>&1 將標準輸出和錯誤重新導向到記錄檔,以便你可以查看歷史運行記錄和可能出現的錯誤。

  • --delete 在比對目的與來源資料時,若目的有來源所沒有的檔案,會自動幫忙刪除
  • --exclude 排除不需要備份的資料夾

說明

  • -a (archive) 模式:同步目錄時保留符號連結、裝置檔案、屬性等。
  • -v (verbose):提供詳細的運行資訊。
  • -z (compress):在傳輸時壓縮資料,適用於跨網路同步。
  • --delete:刪除目標目錄中存在而源目錄中不存在的檔案,使目標目錄保持

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

1

Mac 備份? 那為什麼不考慮直接用 Time Machine ?

安安
因為Time Machine是全機備份
但我只想備份這個專案
我的儲存空間都拿來放篠田優
沒空間做全機備份QQ

我要留言

立即登入留言