一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - rsync詳解之exclude排除文件

rsync詳解之exclude排除文件

2020-09-01 16:04服務器知識網 服務器知識

這篇文章詳細介紹了rsync之exclude排除文件的實現方法,需要的朋友可以參考下

問題:如何避開同步指定的文件夾? --exclude

rsync --exclude files and folders
http://articles.slicehost.com/2007/10/10/rsync-exclude-files-and-folders
很常見的情況:我想同步/下的 /usr /boot/ , 但是不想復制/proc /tmp 這些文件夾
如果想避開某個路徑 直接添加--exclude 即可
比如--exclude “proc”
--exclude ‘sources'
Note: the directory path is relative to the folder you are backing up.
注意:這個路徑必須是一個相對路徑,不能是絕對路徑

例子:源服務器/home/yjwan/bashshell有一個checkout文件夾
[root@CentOS5-4 bashshell]# ls -dl checkout
drwxr-xr-x 2 root root 4096 Aug 21 09:14 checkou
現在想要完全避開復制這個文件夾內容怎么辦?
目標服務器執行
rsync -av --exclude “checkout” [email protected]:/home/yjwan/bashshell /tmp
將不會復制這個文件夾
[root@free /tmp/bashshell]# ls -d /tmp/bashshell/checkout
ls: /tmp/bashshell/checkout: No such file or directory

注意:

1事實上,系統會把文件和文件夾一視同仁,如果checkout是一個文件,一樣不會復制

2 如果想避開復制checkout里面的內容,可以這么寫--exclude “checkout/123”

3 切記不可寫為 --exclude “/checkout”這樣絕對路徑
這樣寫 將不會避免checkout被復制
比如
[root@free /tmp/bashshell]# rsync -av --exclude “/checkout” [email protected]:/home/yjwan/bashshell /tmp
receiving file list … done
bashshell/checkout/

4可以使用通配符 避開不想復制的內容
比如--exclude “fire*”
那么fire打頭的文件或者文件夾全部不會被復制
5如果想要避開復制的文件過多,可以這么寫
--exclude-from=/exclude.list

exclude.list 是一個文件,放置的位置是絕對路徑的/exclude.list ,為了避免出問題,最好設置為絕對路徑。

里面的內容一定要寫為相對路徑

比如 我想避開checkout文件夾和fire打頭的文件

那么/exclude.list 寫為
checkout
fire*
然后執行以下命令,注意寫為--exclude-from或者--exclude-from=都可以
但是不能為--exclude
rsync -av --exclude-from=”/exclude.list” [email protected]:/home/yjwan/bashshell /tmp
檢查結果:確實避開了checkout文件夾和fire打頭的文件

問題:如何計算對比復制以后的文件數量是否正確呢?

1 查看錯誤日志,看是否復制時候出問題了
2在源服務器執行可知道具體文件和文件夾的總個數
ls –AlR|grep “^[-d]”|wc
然后目標服務器在計算一遍個數
看看數字是不是能對的上就ok了
對不上再研究怎么回事
3現在的問題是:如果我使用了--exclude參數就麻煩了

我怎么知道要復制幾個文件?

首先,前面命令時候提到過一種寫法,就是只有源地址,沒有目標地址的寫法,這種寫法可以用來列出所有應該被復制的文件

那么用這個命令,可以計算出這個/root/bashshell下面文件和文件夾數量

在服務器端執行

[root@CentOS5-4 bashshell]# rsync -av /root/bashshell/ |grep “^[-d]” | wc
62 310 4249
和ls 得到的結果一致的
[root@CentOS5-4 bashshell]# ls -AlR |grep “^[-d]“|wc
62 558 3731
因此,比如說我不要fire 打頭的文件,可以在服務器端先這樣計算要復制的文件
[root@CentOS5-4 bashshell]# rsync -av --exclude “fire*” /root/bashshell/ |grep “^[-d]” | wc
44 220 2695
然后復制過去
看目標機器的文件和文件夾數量為
[root@free /tmp]# ls -AlR /tmp/bashshell/ |grep “^[-d]“|wc
44 396 2554
可以知道2者是同步的

問題:Rsync的其他幾個常見參數
1
-z –compress compress file data during the transfer
--compress-level=NUM explicitly set compression level
--skip-compress=LIST skip compressing files with suffix in LIST
壓縮傳輸,如果網絡帶寬不夠,那么應該壓縮以后傳輸,消耗的當然是機器資源,但是如果內網傳輸的話,文件數量不是很多的話,這個參數不必要的。
2
--password-file=FILE
前面說過了,只有遠端機器是rsync服務器,才能用這個參數
如果你以為個FILE寫的是ssh 登陸的密碼,那就大錯特錯了,不少人犯了這個錯誤。
3
–stats: Adds a little more output regarding the file transfer status.
4
–progress: shows the progress of each file transfer. Can be useful to know if you have large files being backup up.

關于這個參數:

I frequently find myself adding the -P option for large transfers. It preserves partial transfers in case of interuption, and gives a progress report on each file as it's being uploaded.
I move large media files back and forth on my servers, so knowing how long the transfer has remaining is very useful.
•Previous Entry: nginx 每天定時切割Nginx日志的腳本
•Next Entry: 如何開啟MySQL的遠程帳號

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩久久中文字幕 | 99久精品| 538精品视频 | 欧美福利二区 | 四虎在线精品免费高清在线 | 国内体内she精视频免费 | 网址在线观看你懂我意思吧免费的 | 爸爸的宝贝小说全文在线阅读 | 日韩一区二区三区四区不卡 | 亚洲咪咪| 亚洲欧美综合一区 | 国产成人精品一区二三区2022 | 国产综合欧美日韩视频一区 | gay小太正初精 | 日日碰日日操 | 免费看又黄又爽又猛的视频软件- | 欧美视频一区二区三区四区 | 四虎影院永久在线 | 波多野结衣久久国产精品 | 国产专区日韩精品欧美色 | 亚洲成年www | 精品综合 | 日韩精品视频美在线精品视频 | 国产第一综合另类色区奇米 | 色臀网站| 国产高清露脸学生在线观看 | 亚洲国产区男人本色在线观看欧美 | 欧美在线看片a免费观看 | 5g影院天天 | 国产一区二区播放 | 99久久久无码国产精品 | 日韩一区视频在线 | 69一级毛片 | 999热这里只有精品 999久久久免费精品国产牛牛 | 美女视频久久 | 亚洲高清网站 | 日本精品久久久久中文字幕 1 | 9自拍视频在线观看 | a级亚洲片精品久久久久久久 | 国产情侣偷国语对白 | 亚洲AV无码国产精品色在线看 |