使用情境是依不同系統 , 建立多個備份倉, 一個倉別若要備份不同目錄, 可用tag區分.
備份倉盡量用簡單的方式, 當然也可以掛載sftp ,或是 rclone.
要備份的目錄, 盡量用掛載的, 變成一個目錄, rclone是個好選擇
備份後,執行保留策略(7天或是30天), 備份可以從目錄, 也可以從stdin ,
還原就比較沒甚麼好談的
至於密碼, 我覺得用環境變數就好了, 用檔案存密碼, 我覺得指令看起來好複雜
- 建立備份倉
export RESTIC_PASSWORD=123456
restic -r <備份倉目錄> init
- 備份
#Linux
export RESTIC_PASSWORD=123456
restic -r <備份倉目錄> backup <想要備份的目錄> --cleanup-cache --verbose --verbose >> restic.log 2>&1
#windows powershell
$Env:RESTIC_PASSWORD='password'
restic -r <備份倉目錄> backup <想要備份的目錄> | Out-File C:\temp\files.log -Encoding UTF8
- 備份(mysql資料庫)
export RESTIC_PASSWORD=123456
mysqldump -u root -p<密碼> --all-databases -h <主機ip> | restic --repo <備份倉目錄> backup --stdin --stdin-filename all.sql
- tag 以上備份可以加上tag區分不同目錄, tag 名稱可以一樣
restic -r <備份倉目錄> backup <想要備份的目錄> --tag:名稱 --cleanup-cache --verbose --verbose >> restic.log 2>&1
- 查看備份
export RESTIC_PASSWORD=123456
restic -r <備份倉目錄> snapshots
- 還原指定的snap
export RESTIC_PASSWORD=123456
restic -r <備份倉目錄> restore <snapshots id> --target <要還原的目錄>
- 備份完畢,刪除過多的備份
export RESTIC_PASSWORD=123456
restic -r <備份倉目錄> forget --prune --keep-daily 7
restic -r <備份倉目錄> forget --prune --keep-last 7