因特殊原因,不允许使用SFTP、FTP和SCP等协议,故选用RSYNC来传输大文件到云端服务器。
1、安装软件
yum install -y rsync
2、在接收端(服务端)配置好rsync服务
vim /etc/rsyncd.conf
list = true # 允许列出共享内容
uid = nobody
gid = nobody
max connections = 256 # 最大连接数
use chroot = true # 将rsync进程限制在指定的根目录中
secrets file = /etc/rsyncd.secrets # 包含用户凭据的密码文件路径
hosts allow = 192.168.1.0/24 10.0.0.2 # 允许访问的 IP 地址列表,以空格分隔
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
[data]
path = /data/
auth users = rsync # 允许访问共享的用户,以空格分隔
read only = false # 允许用户上传文件
3、在接收端(服务端)创建rsync用户并启动服务
echo "rsync:password" > /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets
systemctl start rsyncd # 启动服务,需防火墙开放TCP 873端口
4、在发送端(客户端)传输文件【示例】
export RSYNC_PASSWORD=password
rsync -avzP localfile.txt rsync@接收端IP:/data/
# -a: 归档模式,用于保留文件属性,包括权限、所有者和时间戳等。
# -v: 显示详细输出,显示传输过程中的详细信息。
# -z: 启用压缩,减少网络传输的数据量。
# -P: 等同于 --partial --progress,允许在传输中断后继续,同时显示传输进度。
# localfile.txt: 本地文件的路径和名称,这是要传输的文件。
# rsync@接收端IP: 远程服务器的用户名和 IP 地址,用于 SSH 连接。
# :/data/: 远程服务器上的目标路径,文件将传输到这个目录。