Orange的运维学习日记--20.Linux文件传递与自动同步
本文总结了Linux与Windows系统间文件传输及自动同步的多种方法。主要介绍了Xftp、Xshell配合lrzsz、scp命令进行基础文件传输,重点讲解了rsync工具支持增量同步的特性及其shell模式和daemon模式配置。详细阐述了如何结合rsync与sersync实现实时自动化同步,包括sersync的安装配置、XML任务设定、多实例部署及开机自启等操作。通过rsync的增量传输能力和
Orange的运维学习日记–20.Linux文件传递与自动同步
文章目录
Linux 与 Windows 系统间文件传输方法
Xftp 工具
Xftp 是一款图形化的 SFTP/FTP 客户端,通过拖拽或右键菜单即可在 Windows 和 Linux 服务器之间传输文件

Xshell 配合 lrzsz
在 Linux 服务器端安装 lrzsz 软件包后,可利用 rz 和 sz 命令在 Xshell 窗口中进行文件上传和下载
[root@centos7 ~]# yum install -y lrzsz
- 上传文件
直接将本地文件拖拽到 Xshell 窗口
或者执行rz并在弹出对话框中选择待上传文件 - 下载文件
执行sz 文件名,并在提示中指定保存路径
scp 命令
scp(secure copy)基于 SSH 协议实现文件安全复制,要求目标服务器开启 SSH 服务
基本用法
scp 用户@远程主机:远程路径 本地路径
示例:从服务器拉取单个文件到当前目录
scp root@server:/root/etc-20240726.tar .
复制多个文件
利用大括号语法一次拉取多个指定文件
scp root@server:/root/{etc-20240726.tar,etc.tar} .
复制目录
使用 -r 参数递归复制目录
scp -r root@server:/etc/selinux/ .
上传文件
若目标路径省略,则默认上传到远程用户家目录
scp etc.tar root@server:
scp etc.tar etc-20240726.tar root@server:
scp -r selinux/ root@server:
常用选项
-P 端口号指定非默认端口-C启用传输压缩-p保留文件修改时间和权限
scp 缺点
- 每次传输均为全量复制,无法实现增量同步
- 无法自动比对并跳过未变化的文件
rsync 命令
rsync(Remote Synchronize)是一款高效的远程数据同步与备份工具,支持增量传输与多种平台
安装
[root@centos7 ~]# yum install -y rsync
shell 模式
基于 SSH 协议进行传输,默认通过端口 22 通信
语法
rsync [OPTION]… SRC DEST
rsync [OPTION]… SRC [USER@]HOST:DEST
rsync [OPTION]… [USER@]HOST:SRC DEST
常用选项
-n空运行,仅显示将要执行的操作-v输出详细信息-a归档模式,相当于启用-r -l -p -t -g -o -D-z传输时启用压缩-P等同于--partial --progress,显示进度并保留部分传输文件--delete删除目标端多余文件-e ssh指定远程 shell 程序和端口
使用示例
准备待同步目录
mkdir Pictures
touch Pictures/snap{1..5}.jpg
首次全量同步
rsync -azv Pictures root@server:~/Pictures
再次同步仅传输变化文件
rsync -azv Pictures root@server:~/Pictures
更新部分文件后同步
touch Pictures/snap{1,2}.jpg
rsync -azv Pictures root@server:~/Pictures
启用 --delete 删除目标端已删除的文件
rsync -azv --delete Pictures root@server:~/Pictures
同步注意事项
- 文件访问时间、权限或内容变化均视为文件更新
- 目标文件比源文件更新则不被覆盖
- 源路径末尾是否带斜杠决定复制目录本身或仅目录内容
daemon 模式
不依赖 SSH 服务,通过 rsync 自身守护进程传输
语法
rsync [OPTION]… SRC [USER@]HOST::DEST
rsync [OPTION]… [USER@]HOST::SRC DEST
rsync [OPTION]… rsync://[USER@]HOST[:PORT]/SRC [DEST]
配置要点
- 在服务端编辑
/etc/rsyncd.conf,定义模块、路径、权限和认证方式 - 启动 rsync 守护进程,并允许客户端连接指定模块
自动化增量同步:rsync 与 sersync 结合使用
下载解压与安装
-
下载 sersync 二进制包并解压
tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz -
将解压后的目录移动并重命名
mv GNU-Linux-x86 /usr/local/sersync
配置 XML 同步任务
-
进入安装目录并备份原始配置
cd /usr/local/sersync cp confxml.xml confxml.xml-bak vi confxml.xml -
在
<localpath>中设定监控目录,并添加
<remote>节点指向 rsync 目标模块
<sersync> <localpath watch="/example"> <remote ip="x.x.x.x" name="backup"/> </localpath> <rsync> <commonParams params="-artuz"/> <auth start="true" users="rsync_backup" passwordfile="/etc/rsync.password"/> <userDefinedPort start="false" port="874"/> <timeout start="false" time="100"/> <ssh start="false"/> </rsync> <failLog path="/var/log/rsync_fail_log.sh" timeToExecute="60"/> </sersync> -
核对
/etc/rsyncd.conf中的模块名称和认证用户,确保<remote>与<auth>配置一致 -
注意
true和false拼写准确,否则 sersync 进程会卡死
启动守护进程并测试
-
使用以下命令启动 sersync 守护进程,并在启动前先执行一次全量同步
/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml -
参数说明
-d启用守护模式-r启动前执行一次全量 rsync-n指定守护线程数量(默认为 10)-o指定配置文件路径
-
测试同步
在
/example目录创建文件
touch /example/{1..6}.txt登录备份服务器,查看
/backup/web是否已同步文件
环境变量与开机自启
-
将 sersync 可执行程序加入系统 PATH
echo "PATH=\$PATH:/usr/local/sersync" >> /etc/profile source /etc/profile -
验证可直接运行命令
sersync2 -d -r -o /usr/local/sersync/confxml.xml -
添加开机启动命令到
/etc/rc.local并赋予执行权限
echo '/usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml' >> /etc/rc.local chmod +x /etc/rc.local
多实例并行部署
-
针对不同同步任务复制多份配置文件
www_confxml.xml bbs_confxml.xml blog_confxml.xml -
分别启动对应配置的守护进程
/usr/local/sersync/sersync2 -d -o /usr/local/sersync/www_confxml.xml /usr/local/sersync/sersync2 -d -o /usr/local/sersync/bbs_confxml.xml /usr/local/sersync/sersync2 -d -o /usr/local/sersync/blog_confxml.xml
更多推荐




所有评论(0)