嵌入式開發(fā)中,好用的文件同步工具!
共 2855字,需瀏覽 6分鐘
·
2024-05-21 22:08
關(guān)注、星標(biāo)公眾號,直達(dá)精彩內(nèi)容
rsync是什么?
rsync(remote sync) 是一個用于文件同步的工具。它可以用于兩個本地目錄之間的文件同步,也可以用于本地設(shè)備與遠(yuǎn)程設(shè)備之間的文件同步。
rsync與scp不同之處就是:rsync會檢查發(fā)送方和接收方已有的文件,僅傳輸有變動的部分(默認(rèn)規(guī)則是文件大小或修改時間有變動)。
rsync的使用
這里使用PC與開發(fā)板來進(jìn)行演示。
注意:傳輸?shù)碾p方都必須安裝 rsync。
我們的開發(fā)板上并沒有rsync,下面我們來一起編譯一個。
下載rsync源碼:
https://download.samba.org/pub/rsync/
解壓、進(jìn)入rsync-3.2.3、創(chuàng)建tmp文件夾:
tar -xvf rsync-3.2.3.tar.gz
cd rsync-3.2.3/
mkdir tmp
輸入如下命令生成交叉編譯的Makefile文件:
./configure --prefix=$PWD/tmp --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc
此時可能會報如下錯誤:
根據(jù)提示進(jìn)行修改。大概意思就是SIMD這個東西被使能了,SIMD是什么我們這里不需要管,我們關(guān)掉它即可。
輸出命令 ./configure --help 查看配置參數(shù),可以看到關(guān)閉SIMD的方式如:
輸入:
./configure --prefix=$PWD/tmp --disable-simd --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc
還是報錯:
再次根據(jù)提示進(jìn)行修改configure命令:
./configure --prefix=$PWD/tmp --disable-simd --disable-openssl --disable-xxhash --disable-zstd --disable-lz4 --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc
這時候顯示 rsync 3.2.3 configuration successful :
可以生成了Makefile文件了。
注意:如果還有錯誤的話根據(jù)提示進(jìn)行配置即可。
PS:關(guān)于Makefile文件的支持可查閱上一篇文章:Makefile常用基礎(chǔ)知識梳理!
然后編譯、安裝:
make
make install
在tmp文件夾下得到:
其中,rsync可執(zhí)行文件是我們板子要用到的,把其傳到板子的/usr/bin目錄下:
scp rsync [email protected]:/usr/bin
下面對rsync的使用進(jìn)行一個簡單的演示:
在板子上先建100個文件:
PC端同步板子里的這些文件到本地:
rsync -avzu --progress [email protected]:/root/test .
-a:表示存檔模式,保存所有的元數(shù)據(jù),比如修改時間(modification time)、權(quán)限、所有者等。 -v:表示輸出細(xì)節(jié)。 -z:指定同步時壓縮數(shù)據(jù)。 -u:表示同步時跳過目標(biāo)目錄中修改時間更新的文件。 --progress:表示顯示進(jìn)展。
板子再創(chuàng)建100個文件:
PC端再接著同步:
可以看到,文件是接著傳的,前面已經(jīng)傳過的不會再重新傳。
以上就是本次關(guān)于rsync這個小工具的簡單分享。
還有其它類似的工具嗎?歡迎留言討論
???????????????? END ???????????????
關(guān)注我的微信公眾號,回復(fù)“星球”加入知識星球,有問必答。
點(diǎn)擊“閱讀原文”查看知識星球詳情,歡迎點(diǎn)分享、收藏、點(diǎn)贊、在看。
