Linux中实现远程复制文件的方式常用scp命令,简单方便,例如
scp -r node1:/data/* /data/
操作与使用都很简单,不能实现文件的排除等高级操作,下面介绍下常用的命令rsync
rsync实现文件同步的方式包括
- SSH方式是使用系统上的用户通过SSH进行同步操作。
- daemon方式是rsync服务器会开一个873端口,等待客户端去连接,连接是进行验证,通过后进行同步。
一、首先介绍使用rsync服务器的操作步骤
- 安装rsync服务器
yum install rsync -y
- 配置rsync服务器,简单配置有两个文件,一个是rsyncd.conf,和rsyncd.secret文件,一个是服务器基本配置,一个服务器账户配置
- 启动rsync服务器
rsync --daemon
- 命令行记性copy文件
# 将rsync服务器上的data名下的文件复制到本地/tmp目录下
rsync node1::data /tmp
二、使用SSH方式copy文件
这种方式很简单不需要有rsync服务器,但是需求复制双方都要安装rsync命令,简单实现为:
rsync -vzrtopg --progress -e ssh --exclude-from /data/help/config/exclude.properties --delete /data/* node2:/data
三、使用rsync同步文件到各个节点上
以下是使用SSH方式来同步文件的,目录结构为:
rsync_file.sh内容:
#!/usr/bin/env bash
PWD=`dirname $0`
for host in `cat $PWD/../config/nodes.properties`; do
echo $host
rsync -vzrtopg --progress -e ssh --delete --exclude-from $PWD/../config/exclude.properties /data/* $host:/data
done
exclude.properties内容为:
soft/
help/
nodes.properties内容为:
node1
node2
node3
其中exclude.properties中包含的是被排除的文件,nodes.properties中包含的是同步到的主机名
提示:在同步过程中,可能需要输入主机账户,可以通过ssh-keygen免密来排除问题