不同服务器之间 实现某个文件夹内容同步(使用rsync)

第一步:先准备2台服务器(虚拟机即可)

虚拟机1 :IP为 192.168.1.160 (主服务器,也可以称服务端)
虚拟机2:IP为 192.168.1.161(副服务器,也可以称客户端)

第二步:分别在两台服务器中安装async

yum install rsync

第三步:先进入虚拟机1

1.先修改配置 vim /etc/rsyncd.conf,大致配置如下
uid = root
gid = root
port = 873
use chroot = no
max connections = 200
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
timeout = 900
[rsync] 
    path = /home/wwwroot/test  需要被同步的文件夹
    comment = ftp export area
	ignore errors
	read only = false
	list = no
	auth users = root 
	secrets file = /etc/rsyncd.passwd
2.创建认证密码文件
touch /etc/rsyncd.passwd
vim /etc/rsyncd.passwd
写入 root:123456  
root代表是当前用户
3.修改权限 chmod 600 /etc/rsyncd.passwd
4.因为rsync默认会监听873端口,所以需要开放873端口,这里不详细说明。
5.启动服务 /usr/bin/rsync --daemon

第四步-进入虚拟机2

1.创建认证密码文件
touch /etc/rsyncd.passwd
echo "123456" >> /etc/rsyncd.passwd   #将之前设置的密码加入进去,为了不用输入密码
2.修改权限 chmod 600 /etc/rsyncd.passwd
touch /etc/rsyncd.conf
3.启动服务 /usr/bin/rsync --daemon

第五步-开始同步

1.先在虚拟机1 /home/wwwroot/test 随便创建一个文件
[root@bogon test]# touch change.php
[root@bogon test]# ls
change.php
2.再去虚拟机2 输入以下命令
rsync -avz rsync://root@192.168.1.160/rsync/ /home/wwwroot/test 
--password-file=/etc/rsyncd.passwd

拆分说明
1. rsync -avz rsync:// 为固定写法
2. root@192.168.1.160 为所要同步的服务器用户名和ip
3. /rsync/ 为虚拟机1 /etc/rsyncd.conf 中的配置 [rsync] ,保持一致即可
4. /home/wwwroot/test 为所要同步的文件夹名称
5. --password-file=/etc/rsyncd.passwd 加载密码文件

第六步-查询结果

输入命令之后
[root@bogon test]# rsync -avz rsync://root@192.168.1.160/rsync/ /home/wwwroot/test --password-file=/etc/rsyncd.passwd
receiving incremental file list
./
change.php  为刚刚新增的文件

sent 51 bytes  received 159 bytes  420.00 bytes/sec
total size is 0  speedup is 0.00
[root@bogon test]# ls
change.php
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用rsync命令实现本地文件与服务器文件同步rsync命令可以将本地文件复制到远程服务器,也可以将远程服务器的文件复制到本地。它可以使用SSH协议进行加密传输,还支持增量同步,只传输修改过的文件。 以下是一个示例脚本,可以将本地的文件同步到远程服务器上: ```bash #!/bin/bash # 本地文件夹路径 local_dir="/path/to/local/directory" # 远程服务器信息 remote_host="remote_host" remote_user="remote_user" remote_dir="/path/to/remote/directory" # 使用rsync命令同步文件 rsync -avz --delete -e ssh $local_dir/ $remote_user@$remote_host:$remote_dir/ ``` 在这个脚本中,我们首先定义了本地文件夹的路径和远程服务器的信息。然后使用rsync命令将本地文件夹同步到远程服务器上。其中,-a选项表示使用归档模式同步文件,-v选项表示输出详细信息,-z选项表示使用压缩传输数据,--delete选项表示删除远程服务器上不存在的文件,-e ssh选项表示使用SSH协议进行加密传输。最后,我们将本地文件夹的路径和远程服务器的信息传递给rsync命令。 你可以将此脚本保存为一个.sh文件,然后在终端中执行它来同步文件。请注意替换本地文件夹路径和远程服务器信息为你自己的信息。 ### 回答2: 要实现本地文件与服务器文件的同步,可以使用shell脚本来完成。 首先,需要确定同步的目录路径,包括本地和服务器的路径。 然后,可以使用rsync命令来进行文件同步。可以通过命令rsync -avz(-a表示归档模式,保留文件属性,-v表示显示详细信息,-z表示压缩传输)来同步文件。 例如,要将本地目录/path/to/local同步服务器的目录/path/to/server,可以使用以下脚本实现: #!/bin/bash local_dir="/path/to/local" server_dir="user@server:/path/to/server" rsync -avz $local_dir $server_dir 将以上脚本保存为sync.sh文件,并给予执行权限(chmod +x sync.sh)。 然后,在终端中执行./sync.sh即可开始文件同步。 注意,需要正确配置服务器的连接信息,并确保本地和服务器的目录路径正确。 另外,可以根据实际需求添加其他参数,比如排除某些文件或目录、设置带宽限制等。 总结起来,使用shell脚本实现本地文件与服务器文件同步的步骤如下: 1. 确定同步的目录路径; 2. 编写脚本,使用rsync命令进行文件同步; 3. 配置服务器的连接信息并确保目录路径正确; 4. 执行脚本开始文件同步。 这样,就可以实现本地文件与服务器文件的同步了。 ### 回答3: 实现本地文件与服务器文件同步的一种常见方法是使用shell脚本结合rsync命令。rsync是一个优秀的文件传输和同步工具,它可以帮助我们在本地文件和远程服务器文件之间实现快速、高效的同步。 首先,我们需要先安装rsync命令。在Linux系统中,可以使用包管理器直接安装,例如使用apt-get命令安装: ``` sudo apt-get install rsync ``` 接下来,我们需要编写一个shell脚本,用于实现同步功能。以下是一个简单的示例脚本: ```shell #!/bin/bash # 本地文件夹路径 local_dir="/path/to/local" # 服务器地址 server="username@remote_server:/path/to/server" # rsync命令实现同步 rsync -avz --delete $local_dir $server echo "同步完成。" ``` 在上述脚本中,我们需要设置本地文件夹路径和服务器地址。其中,`$local_dir`为本地文件夹路径,例如`/home/user/sync_folder`;`$server`为服务器地址,例如`username@remote_server:/home/user/sync_folder`。 rsync命令的选项说明: - `-a`:归档模式,保持文件属性、权限等; - `-v`:显示详细输出; - `-z`:使用压缩传输; - `--delete`:删除服务器上与本地文件夹不匹配的文件。 在脚本的最后,我们使用`echo`命令输出同步完成的提示信息。 保存脚本文件,并设置执行权限: ``` chmod +x sync.sh ``` 最后,只需执行该脚本,即可实现本地文件与服务器文件的同步: ``` ./sync.sh ``` 这样,每次执行脚本时,将会自动同步本地文件夹和远程服务器上的文件,确保它们保持同步

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值