化數(shù)據(jù)備份)
restic 備份教程5 步搭好第一套自動(dòng)化數(shù)據(jù)備份【免費(fèi)下載鏈接】resticFast, secure, efficient backup program項(xiàng)目地址: https://gitcode.com/GitHub_Trending/re/restic你剛用 ShiftDelete 刪掉了一個(gè)項(xiàng)目目錄發(fā)現(xiàn)機(jī)器上沒(méi)有第二份拷貝。這種時(shí)候第一步不是慌張而是問(wèn)一句數(shù)據(jù)最近的完好版本在哪里。restic 是一款用 Go 編寫(xiě)的開(kāi)源備份程序快速、安全它按內(nèi)容定址存儲(chǔ)以數(shù)據(jù)哈希為索引去重保存數(shù)據(jù)每次備份只上傳真正發(fā)生變化的部分。這份 restic 備份教程的目標(biāo)是帶你搭出一套能長(zhǎng)期跑的 restic 備份流程選好存放位置、完成第一次備份、掛上定時(shí)任務(wù)并在需要時(shí)一條命令取回?cái)?shù)據(jù)。? 先確定備份數(shù)據(jù)放哪順手把 restic 裝上restic 把存放備份數(shù)據(jù)的地方稱為倉(cāng)庫(kù)repository。它可以是本地磁盤上的一個(gè)目錄也可以是某個(gè)遠(yuǎn)端服務(wù)的 URL。最常用的四類后端本地磁盤形如/srv/restic-repo的路徑零配置適合先跑通流程SFTPsftp:userhost:/srv/restic-repo通過(guò) SSH 寫(xiě)入遠(yuǎn)端服務(wù)器需先配好免密登錄RESTrest:http://host:8000/需要對(duì)接兼容的對(duì)象存儲(chǔ)服務(wù)AWS S3s3:s3.us-east-1.amazonaws.com/bucket_name把數(shù)據(jù)放進(jìn)云端。如果你在評(píng)估 S3 后端先在 AWS 控制臺(tái)建好桶并創(chuàng)建專用訪問(wèn)密鑰確認(rèn)頁(yè)面大致如下restic 安裝這一步很輕任選其一即可# Debian / Ubuntu apt-get install restic # macOSHomebrew brew install restic # WindowsWinGet winget install --id restic.restic其他平臺(tái)或官方二進(jìn)制下載方式見(jiàn)官方安裝文檔doc/020_installation.rst。? 跑通第一次 restic 備份并驗(yàn)證閉環(huán)先設(shè)置兩個(gè)環(huán)境變量后面的命令就不用重復(fù)交代倉(cāng)庫(kù)和密碼export RESTIC_REPOSITORY/srv/restic-repo export RESTIC_PASSWORDyour-strong-password restic initRESTIC_REPOSITORY指向倉(cāng)庫(kù)位置RESTIC_PASSWORD是倉(cāng)庫(kù)密碼。要特別注意密碼丟失后倉(cāng)庫(kù)內(nèi)數(shù)據(jù)將不可恢復(fù)請(qǐng)單獨(dú)妥善保存。init成功后會(huì)打印一個(gè)類似085b3c76b9的短 ID說(shuō)明倉(cāng)庫(kù)已經(jīng)就緒。接著執(zhí)行第一次備份并立刻用快照列表驗(yàn)證結(jié)果restic backup ~/work restic snapshots每次成功備份都會(huì)生成一個(gè)快照snapshot——該時(shí)刻文件狀態(tài)的完整記錄以短 ID 標(biāo)識(shí)。restic snapshots會(huì)列出快照 ID、時(shí)間與所備份的目錄看到~/work對(duì)應(yīng)的條目閉環(huán)就跑通了。? 配置 restic 定時(shí)備份與保留策略手動(dòng)備份不算真正的保護(hù)讓 restic 定時(shí)跑起來(lái)才是。這件事由兩部分組成cron 定時(shí)任務(wù) 快照保留策略??煺諘?huì)越積越多靠forget決定留誰(shuí)--keep-daily 7表示最近 7 天每天各留一份--keep-weekly 4留 4 周--keep-monthly 6留 6 個(gè)月。--prune會(huì)刪除不再被任何快照引用的數(shù)據(jù)真正騰出倉(cāng)庫(kù)空間restic forget \ --keep-daily 7 \ --keep-weekly 4 \ --keep-monthly 6 \ --prune把備份和清理放進(jìn)同一個(gè)腳本交給 cron 每天執(zhí)行# /path/to/backup.sh export RESTIC_REPOSITORY/srv/restic-repo export RESTIC_PASSWORD_FILE/path/to/password.txt restic backup ~/work restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune # 再用 crontab -e 加入一行每天凌晨 3 點(diǎn)執(zhí)行 # 0 3 * * * /path/to/backup.sh /var/log/restic-backup.log 21 真出問(wèn)題時(shí)如何用 restic 數(shù)據(jù)恢復(fù)把文件取回restic 數(shù)據(jù)恢復(fù)其實(shí)只有兩件事選一個(gè)快照指定目標(biāo)目錄。restic restore latest --target /tmp/restore-worklatest指最新快照數(shù)據(jù)會(huì)按原目錄結(jié)構(gòu)寫(xiě)進(jìn)/tmp/restore-work。只需要單個(gè)文件時(shí)加--include /work/important.txtrestic 就只恢復(fù)它。完整的恢復(fù)參數(shù)說(shuō)明見(jiàn)官方文檔doc/050_restore.rst。平時(shí)可以順手做完整性校驗(yàn)restic check檢查倉(cāng)庫(kù)結(jié)構(gòu)加--read-data會(huì)把所有數(shù)據(jù)讀出來(lái)做全面驗(yàn)證發(fā)現(xiàn)索引或快照損壞時(shí)分別用restic repair index、restic repair snapshots修復(fù)。加密方面不用額外操心倉(cāng)庫(kù)內(nèi)數(shù)據(jù)默認(rèn)全程加密。若要給另一臺(tái)機(jī)器訪問(wèn)同一倉(cāng)庫(kù)在那臺(tái)機(jī)器上執(zhí)行restic key add添加密鑰想更換密碼用restic key passwd。性能上網(wǎng)絡(luò)緊張時(shí)可先用--limit-upload/--limit-download限制吞吐、用--compression調(diào)整壓縮級(jí)別默認(rèn)值通常夠用。 收工前的檢查清單倉(cāng)庫(kù)密碼或密碼文件已備份在安全位置且與備份數(shù)據(jù)分離存放第一次備份已生成restic snapshots能看到快照條目cron 任務(wù)已掛載并能看到前一天的執(zhí)行日志forget的保留策略與你實(shí)際能接受的恢復(fù)粒度匹配至少做過(guò)一次真實(shí)恢復(fù)到臨時(shí)目錄的演練。更多備份參數(shù)細(xì)節(jié)可參閱官方備份文檔doc/040_backup.rst?!久赓M(fèi)下載鏈接】resticFast, secure, efficient backup program項(xiàng)目地址: https://gitcode.com/GitHub_Trending/re/restic創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考