前言
思路:在網路環境中傳輸時,打包再結合nc命令,通過管道和tcp埠進行傳輸。
比如 a往b主機傳輸資料
i. 在機器b上,用nc來監聽乙個埠,任意都行,只要不被占用;並且將收到的資料用tar展開。-l代表監聽模式。
$ nc -l 34183 |tar -c /data1datasets/norm/ -zxf -
ii. 接著,在a上通過nc和 tar傳送data_01目錄。使用一致的34183的埠。
$ tar -zcvf - data_01 |nc 192.168.0.1 34183
rsync提供了一些跟刪除相關的引數
rsync --help | grep delete
--del an alias for --delete-during
--delete delete files that don't exist on the sending side
--delete-before receiver deletes before transfer (default)
--delete-during receiver deletes during transfer, not before
--delete-after receiver deletes after transfer, not before
--delete-excluded also delete excluded files on the receiving side
--ignore-errors delete even if there are i/o errors
--max-delete=num don't delete more than num files
其中--delete-before 接收者在傳輸之前進行刪除操作
可以用來清空目錄或檔案,如下:
1. 建立乙個空目錄
mkdir -p /del_blank
2. 確立需要清空的目標目錄
/del_data
3. 使用rsync同步刪除(注意目錄後面的「/」),整體效率會快乙個數量級的樣子。
rsync --delete-before -a -h -v --progress --stats /del_blank /del_data
選項說明:
–delete-before 接收者在傳輸之前進行刪除操作
–progress 在傳輸時顯示傳輸過程
-a 歸檔模式,表示以遞迴方式傳輸檔案,並保持所有檔案屬性
-h 保持硬連線的檔案
-v 詳細輸出模式
-stats 給出某些檔案的傳輸狀態
一般我們不需要顯示進度,使用以下命令即可
rsync --delete-before -a -h /del_blank /del_data
這樣我們要刪除的 del_data目錄就會被清空了
如何刪除特別大的檔案(數量級),比如nohup.out這樣的實時更新的檔案,動輒都是幾十個g上百g的,也可
以用rsync來清空大檔案,而且效率比較高 。
1、建立空檔案
touch /data/blank.txt
2、用rsync清空檔案
rsync -a --delete-before --progress --stats /data/blank.txt ./nohup.out
building file list ...
1 file to consider
blank.txt
0 100% 0.00kb/s 0:00:00 (xfer#1, to-check=0/1)
number of files: 1
number of files transferred: 1
total file size: 0 bytes
total transferred file size: 0 bytes
literal data: 0 bytes
matched data: 0 bytes
file list size: 27
file list generation time: 0.006 seconds
file list transfer time: 0.000 seconds
total bytes sent: 73
total bytes received: 31
sent 73 bytes received 31 bytes 208.00 bytes/sec
total size is 0 speedup is 0.00
** tips:
當src和dest檔案性質不一致時將會報錯
當src和dest性質都為檔案【f】時,意思是清空檔案內容而不是刪除檔案
當src和dest性質都為目錄【d】時,意思是刪除該目錄下的所有檔案,使其變為空目錄
最重要的是,它的處理速度相當快,處理幾個g的檔案也就是秒級的事
最核心的內容是:rsync實際上用的就是替換原理
Linux快速複製或刪除大量小檔案
前言 思路 在網路環境中傳輸時,打包再結合nc命令,通過管道和tcp埠進行傳輸。比如 a往b主機傳輸資料 i.在機器b上,用nc來監聽乙個埠,任意都行,只要不被占用 並且將收到的資料用tar展開。l代表監聽模式。nc l 34183 tar c data1datasets norm zxf ii.接...
Linux快速複製或刪除大量小檔案
前言 思路 在網路環境中傳輸時,打包再結合nc命令,通過管道和tcp埠進行傳輸。比如 a往b主機傳輸資料 i.在機器b上,用nc來監聽乙個埠,任意都行,只要不被占用 並且將收到的資料用tar展開。l代表監聽模式。nc l 34183 tar c data1datasets norm zxf ii.接...
Linux快速複製或刪除大量小檔案
前言 思路 在網路環境中傳輸時,打包再結合nc命令,通過管道和tcp埠進行傳輸。比如 a往b主機傳輸資料 i.在機器b上,用nc來監聽乙個埠,任意都行,只要不被占用 並且將收到的資料用tar展開。l代表監聽模式。nc l 34183 tar c data1datasets norm zxf ii.接...