嵌入式开发中,好用的文件同步工具!

共 2044字,需浏览 5分钟

 ·

2024-06-16 10:03






rsync是什么?


rsync(remote sync) 是一个用于文件同步的工具。它可以用于两个本地目录之间的文件同步,也可以用于本地设备与远程设备之间的文件同步。


rsync与scp不同之处就是:rsync会检查发送方和接收方已有的文件,仅传输有变动的部分(默认规则是文件大小或修改时间有变动)。


rsync的使用


这里使用PC与开发板来进行演示。



注意:传输的双方都必须安装 rsync。



我们的开发板上并没有rsync,下面我们来一起编译一个。


下载rsync源码:



https://download.samba.org/pub/rsync/




解压、进入rsync-3.2.3、创建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

此时可能会报如下错误:



根据提示进行修改。大概意思就是SIMD这个东西被使能了,SIMD是什么我们这里不需要管,我们关掉它即可。


输出命令 ./configure --help 查看配置参数,可以看到关闭SIMD的方式如:



输入:


./configure --prefix=$PWD/tmp --disable-simd --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc

还是报错:



再次根据提示进行修改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文件了。



注意:如果还有错误的话根据提示进行配置即可。



PS:关于Makefile文件的支持可查阅上一篇文章:Makefile常用基础知识梳理!


然后编译、安装:


make
make install

在tmp文件夹下得到:



其中,rsync可执行文件是我们板子要用到的,把其传到板子的/usr/bin目录下:


scp rsync root@192.168.1.108:/usr/bin


下面对rsync的使用进行一个简单的演示:


在板子上先建100个文件:



PC端同步板子里的这些文件到本地:


rsync -avzu --progress root@192.168.1.108:/root/test .





  • -a:表示存档模式,保存所有的元数据,比如修改时间(modification time)、权限、所有者等。



  • -v:表示输出细节。



  • -z:指定同步时压缩数据。



  • -u:表示同步时跳过目标目录中修改时间更新的文件。



  • --progress:表示显示进展。





板子再创建100个文件:



PC端再接着同步:



可以看到,文件是接着传的,前面已经传过的不会再重新传。


以上就是本次关于rsync这个小工具的简单分享。


还有其它类似的工具吗?欢迎留言讨论








春招已经开始啦,大家如果不做好充足准备的话,春招很难找到好工作。




送大家一份就业大礼包,大家可以突击一下春招,找个好工作!









浏览 50
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报