艾瑞克的 Hexo 空間

[筆記] pdumpfs 檔案備份

本文發表於883天之前,文章內容可能已經過時,如有疑問,請聯繫作者。

之前已經把備份工作都交給同事去處理

沒想到前不久真的發生USER手殘,直接把共享目錄內的文件全選、刪除

結果要倒回檔案的時候,發現備份的檔案不完全(備份工具是freefile sync ),引發後續一些麻煩事情

所以想在原本同事處理的備份工作上,再加一份我自己做的備份作為不時之需

基於之前的習慣,這次還是採用 pdumpfs 來做備份,指令比較簡單

只是這次多加入了把備份的過程導出成 .log 檔,然後依照日期壓縮、存放

主要的邏輯就是 pdumpfs 備份檔案 ,把std out 導出到NAS上存放,然後在每天結束前,把log壓縮、存放到當天的目錄

pdumpfs 的部分就很簡單

pdumpfs source_dir dest_dir
這樣一行就解決了

然後把 std out 的輸出導入到 log,並加入日期

/usr/local/sbin/pdumpfs /nas/資訊部 /zp/ai/ > “/nas/DB_Backup/pdumpfslog/pdumpfs資訊部_date +\%Y\%m\%d.log”
/nas 是透過 NFS mount 群暉 NAS 的共享目錄進來

要注意的是,原本正常的 script應該是只有

/usr/local/sbin/pdumpfs /nas/資訊部 /zp/ai/ > “/nas/DB_Backup/pdumpfslog/pdumpfs資訊部_date +%Y%m%d.log”
跟上一行比起來少了 “\” 這個符號

因為本來在console 測試的時候,SCRIPT跑起來都OK,但是放到 crontab 裡面執行,就會發生錯誤

CMD (pdumpfs /nas/\345\205\261\347\224\250\350\263\207\346\226\231 /zp/public/ > “/nas/DB_Backup/pdumpfslog/pdumpfs\345\205\261\347\224\250\350\263\207\346\226\231_date +) 中文變亂碼這部分沒問題,但是結尾只有跑到date + 這邊就結束,會造成錯誤

原因是因為 crontab 跟這種系統變數整合的關係,翻了一下GOOGLE,發現要不就是指定一個系統變數存放日期,要不就是加個 \ 進去處理

我選擇直接用 \% 來取代 %

放到 crontab 裡面,修改一下執行時間,測試OK,SCRIPT 就正式上線了

 

不過呢,這個SCRIPT跑的是從群暉NAS上備份到二階的備份伺服器

第一層是由三台NAS所組成 (119(群暉) 、219(QNAP)、218(Windows 2012))

然後由其他兩台每天同步到 119上

因為群暉的NFS 可以用偷吃步,直接MOUNT整個 volume 進來,所以比較好處理

Windows 2012 應該是可以直接用 smb mount 進來

至於QNAP就比較少玩,不過應該也不會太麻煩

可能還是要找時間研究一下怎麼把這兩台的share folder 也 mount 到這台備份伺服器上

再一起加入 pdumpfs 的備份工作內

 

Update: 2015/07/15

Windows 2012 的共享資料夾 如果是中文,而且要透過 mount_smbfs 掛進來的話 會出現亂碼

所以在 mount 的時候要加參數 -L 和 -E

mount_smbfs -L zh_TW.UTF-8 -E UTF-8:UTF-8 -I 192.168.10.218 ‘//[email protected]/NAS-218’ /218/
感謝 [email protected]

 

 

 

avatar
[筆記] 在指定目錄底下找出含有特定字串的檔案及字串出現位置 how to find string in all files