測試:tar壓縮打包會不會將期間新生成的文件打包進去

作爲一個運維,越來越像一個開發了;
簡單的難的,全用腳本實現了,不寫java卻寫起了shell,瞬間感覺自己帥(衰)帥(衰)的;


公司下達的任務:將一個740+G的文件夾備份到另一個服務器;看着挺簡單,scp啥的早晚能搞定,無非是時間的事兒;好,下面來說說環境:

  1. 這個文件夾是個項目,裏面會不停的生成錄音文件(mp3和wav格式);
  2. 系統的總共容量爲1T,其中錄音文件已經佔用了740G了;(考慮到壓縮比的問題,沒辦法將740G的文件壓縮打包後再傳輸,原因有兩點:第一,容量不夠,1T已經佔用了740G,在將740G壓縮打包的話,自己容量已經裝不下了;第二,在壓縮打包期間還會生成許多的錄音文件,不能保證生成的壓縮包裏包含期間新生成的文件;)
    &&&這也是做這次測試的原因;

###################################
好了,其他的先不說,先訂方案:使用tar壓縮文件,然後傳輸;

    測試:
                在tar打包壓縮期間,往被打包的文件裏寫入數據。生成的壓縮包裏是否包含寫入的數據;
    目的:
                用於服務器上700+G的錄音文件進行打包;壓縮期間肯定會有新的錄音文件生成,
                如果不包含期間寫入的錄音文件,那麼就可以寫腳本根據腳本獲取壓縮期間新生成的文件,
                之後再,將新的錄音文件備份過去;如果包含,就需要另寫腳本進行對比;
    過程:
                1.提前下載了5000+個MP3格式和wav格式的錄音文件,存放在test文件夾內;
                再打開一個xshell窗口,寫一個腳本,可以將a.txt、b.txt等文件mv到test內;
                先執行,tar czvf test.tar.gz ;再在另一個xshell窗口執行腳本將a/b文件mv到test內;
                然後tar xzvf test.tar.gz 查看裏面沒有a、b文件;
                2.同樣的環境,不一樣的是將腳本寫成可以在test內touch文件的腳本;
                測試結果一樣,解壓後的文件夾內沒有期間創建的文件;

    ###################################
    **後來在羣裏討論,當執行tar開始壓縮的時,tar就已經將test文件夾掃描並且緩存了,
    所以不會將期間新生成的文件壓縮進去,
    但是壓縮完畢後會有提示:“文件有改動”;
    但是測試用的大概是1G的文件,如果換成是740G的呢?

    **** 測試僅供參考,如需求不同可自己測試;
    後來寫了一個腳本,監測文件夾內新生成的錄音文件,
    然後使用scp傳輸,期間如果有新生成的錄音文件就會被執行scp命令傳輸過去;
    740G !!! 傳輸了兩天兩夜;方法是有點笨,但是能確保不丟失文件,只多不少;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章