2016-08-22 112 views
2

我有一個簡單的bash腳本來通過相當慢的網絡下載大量日誌文件。我可以在遠程端壓縮日誌。基本上是:bash:在壓縮其他文件時發送壓縮文件

ssh: compress whole directory 
scp: download archive 
ssh: rm archive 

使用lzma給出了很好的壓縮,但壓縮整個目錄很慢。有沒有任何工具或簡單的方法來編寫腳本,允許我壓縮單個文件(或一堆文件)並開始下載它們,而其他文件/塊仍在被壓縮?我正在考慮啓動後臺中每個文件的壓縮以及正確擴展名的循環下載/ rsync文件。但後來我不知道如何檢查壓縮過程完成其工作

回答

0

嘗試ssh荷蘭國際集團到您的服務器,並準備日誌目錄並使用GNU並行並行地壓縮所有的日誌和每一個都是壓縮後,更改其名稱以添加.done後綴,因此您可以執行rsync。因此,在服務器上你可以運行:

cd <LOG DIRECTORY> 
rm ALL_COMPRESSED.marker 
parallel 'lzma {}; mv {}.lzma {}.lzma.done' ::: *.log 
touch ALL_COMPRESSED.marker 
1

最簡單的方法是使用ssh -C壓縮它們在運輸途中。但是,如果您有大量小文件,則最好使用tar zcftar jcf一次性targing和gzip/bzipping整個目錄。你可能能夠開始下載文件,雖然它還在寫,但我沒有嘗試過。