rsync的配置文件(可以两端互传文件了,不限ip)

博客介绍了Linux下rsync服务的启动和重启方法。启动可使用命令“/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf”,路径需根据自身情况调整;重启或启动也能在Linux命令行输入“service rsync restart”。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

use chroot = no                                                                                                                                           
pid file = /var/run/rsyncd.pid
log file = /var/log/rsync.log
[root]
    hosts allow = *
    uid = root
    gid = root
    path = /
    read only = no

启动方式:(当然路径要根据自己的情况来)

/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf

重启或者启动的方式也可以:

linux命令行下输入:service rsync restart

<think>我们正在讨论的是Linux命令行中文件的双向传输,即从本地到远程和从远程到本地的文件传输。根据引用内容,我们可以使用多种工具实现,包括scp、sftp、rsync、sz/rz(ZModem)以及FTP等。下面将详细说明这些方法。 ### 一、从本地到远程(上传) #### 1. scp(安全复制) ```bash # 上传单个文件 scp /path/to/local/file username@remote_host:/path/to/remote/directory/ # 上传整个目录(递归) scp -r /path/to/local/directory username@remote_host:/path/to/remote/directory/ # 指定端口(非默认22) scp -P 2222 /path/to/local/file username@remote_host:/remote/directory/ ``` #### 2. sftp(安全文件传输协议) sftp提供了一个交互式界面,支持上传、下载以及浏览远程目录。 ```bash # 连接远程服务器 sftp username@remote_host # 上传文件 sftp> put /local/path/file.txt /remote/path/ # 上传目录(需要先开启递归模式) sftp> put -r /local/directory /remote/path/ # 退出 sftp> exit ``` #### 3. rsync(高效的文件同步工具) rsync支持增量传输,适合大文件或定期备份。 ```bash # 基本上传(保持权限和时间戳) rsync -avz /local/path/ username@remote_host:/remote/path/ # 解释: # -a: 归档模式(保留文件属性,递归等) # -v: 详细输出 # -z: 压缩传输 # 删除目标端多余文件(使目标与源完全一致) rsync -avz --delete /local/path/ username@remote_host:/remote/path/ ``` ### 二、从远程到本地(下载) #### 1. scp ```bash # 下载单个文件 scp username@remote_host:/path/to/remote/file /path/to/local/directory/ # 下载整个目录 scp -r username@remote_host:/path/to/remote/directory /path/to/local/directory/ ``` #### 2. sftp ```bash sftp username@remote_host sftp> get /remote/path/file.txt /local/path/ sftp> get -r /remote/directory /local/path/ sftp> exit ``` #### 3. rsync ```bash # 从远程同步到本地 rsync -avz username@remote_host:/remote/path/ /local/path/ ``` ### 三、使用ZModem协议的sz/rz(适用于终端直接连接) 如果通过终端软件(如PuTTY, SecureCRT, Xshell等)连接,可以使用sz/rz工具。 - **rz**:从本地选择文件上传到远程服务器(Receive) - **sz**:将远程服务器的文件下载到本地(Send) **安装**(以Ubuntu为例): ```bash sudo apt install lrzsz ``` **使用**: ```bash # 下载文件(从远程发送到本地) sz filename # 上传文件(从本地选择文件发送到远程) rz ``` ### 四、FTP客户端(命令行) 如果远程服务器运行FTP服务,可以使用ftp命令(注意:FTP不加密,建议在安全网络中使用)。 ```bash # 连接FTP服务器 ftp remote_host # 登录后操作 ftp> put local_file # 上传 ftp> get remote_file # 下载 ftp> mput *.txt # 批量上传 ftp> mget *.pdf # 批量下载 ftp> bye # 退出 ``` ### 五、注意事项 1. **安全性**:优先使用scp/sftp/rsync(基于SSH加密),避免使用明文传输的FTP[^3]。 2. **目录存在性**:确保目标目录存在,否则传输会失败。 3. **权限问题**:若目标目录无写权限,可使用sudo创建目录或更改权限。 4. **大文件传输**: - 使用`rsync`支持断点续传(`--partial`选项) - 使用`split`分割大文件再传输,接收端用`cat`合并 - 使用`tar`结合压缩传输(如:`tar czf - /dir | ssh user@host 'tar xzf - -C /target'`) ### 六、性能优化 - 使用`-z`选项(scp/rsync)压缩传输 - 使用`-c`选项指定更快的加密算法(如`scp -c aes128-gcm@openssh.com`) - 使用`rsync`的`--bwlimit`限制带宽避免影响其他服务 ### 七、验证传输完整性 ```bash # 生成校验和(本地) md5sum /path/file # 在远程生成校验和 ssh user@host "md5sum /path/file" # 比较两个校验和是否相同 ``` --- ### 📚 相关问题 1. 如何通过SCP传输文件时指定非标准SSH端口? 2. 使用rsync同步文件时如何排除特定文件或目录? 3. 在没有SSH的情况下,Linux系统间如何安全地传输文件? 4. sz/rz命令在终端中无法使用可能是什么原因? 5. 如何配置SSH免密登录以方便文件传输? 6. 使用rsync时如何实现增量备份? 7. FTP与SFTP在安全性上有哪些主要区别?[^3]</think>在 Linux 命令行中实现文件的双向传输(本地↔远程)主要通过以下几种安全可靠的方式实现: ### 📁 一、本地↔远程双向传输(推荐方案) #### 1. SCP(Secure Copy Protocol) - **最常用** ```bash # 本地 → 远程(上传) scp /本地/文件路径 用户名@远程IP:/远程目录/ # 远程 → 本地(下载) scp 用户名@远程IP:/远程/文件路径 /本地目录/ ``` **示例**: ```bash # 上传本地文件到远程服务器的 /data 目录 scp report.pdf admin@192.168.1.100:/data/ # 从远程下载日志文件到本地桌面 scp user@example.com:/var/log/app.log ~/Desktop/ ``` #### 2. SFTP(SSH File Transfer Protocol) - **交互式操作** ```bash # 建立连接 sftp -P 端口号 用户名@远程IP # 交互命令: sftp> put /本地文件 # 上传(本地→远程) sftp> get /远程文件 # 下载(远程→本地) sftp> mput *.txt # 批量上传 sftp> mget *.log # 批量下载 sftp> lls # 查看本地文件 sftp> ls # 查看远程文件 sftp> exit # 退出 ``` #### 3. Rsync - **增量同步(推荐大文件/目录)** ```bash # 本地 → 远程(智能同步) rsync -avzP --partial /本地/目录/ 用户名@远程IP:/目标/目录/ # 远程 → 本地(增量下载) rsync -avzP 用户名@远程IP:/远程/目录/ /本地/路径/ ``` **选项说明**: - `-a`:归档模式(保留权限等属性) - `-v`:详细输出 - `-z`:压缩传输 - `-P`:显示进度+断点续传 - `--partial`:保留部分传输的文件 ### 📡 二、终端直连传输(串行连接) #### 1. ZModem 协议(sz/rz) - **终端软件支持** ```bash # 安装工具 sudo apt install lrzsz # Debian/Ubuntu sudo yum install lrzsz # CentOS/RHEL # 远程 → 本地(下载) sz 文件名 # 在远程服务器执行 # 本地 → 远程(上传) rz # 在远程服务器执行(弹出本地文件选择框) ``` > 需终端支持(Xshell, SecureCRT, MobaXterm等)[^2] ### 🌐 三、FTP客户端传输(不加密) ```bash # 连接FTP服务器 ftp ftp.example.com # 双向操作: ftp> put local_file # 上传 ftp> get remote_file # 下载 ftp> mput *.png # 批量上传 ftp> mget *.zip # 批量下载 ftp> bye # 退出 ``` > ⚠️ 注意:普通FTP不加密,敏感数据请用SFTP[^3] ### 🔒 四、安全增强技巧 1. **免密登录**(SCP/SFTP/Rsync通用): ```bash ssh-keygen -t ed25519 # 生成密钥 ssh-copy-id user@host # 部署公钥 ``` 2. **端口指定**(非默认22端口): ```bash scp -P 2222 file user@host:/path/ sftp -oPort=2222 user@host ``` 3. **传输加密**: ```bash scp -c aes256-gcm@openssh.com file user@host:/path/ # 强加密 ``` ### 🔄 五、双向传输场景示例 ```mermaid graph LR A[本地主机] -->|scp put| B[远程服务器] B -->|scp get| A A -->|rsync push| B B -->|rsync pull| A A -->|sftp put| B B -->|sftp get| A ``` ### ⚠️ 六、注意事项 1. **目录权限**:确保目标目录有写权限(`ls -ld /目录`) 2. **磁盘空间**:传输前检查空间 `df -h` 3. **防火墙**:开放SSH端口(通常22端口) 4. **大文件**:推荐用 `rsync --partial` 支持断点续传 5. **敏感数据**:必须使用SCP/SFTP而非FTP ### 🔍 七、传输验证 ```bash # 检查文件一致性 md5sum 本地文件 | ssh user@host "md5sum 远程文件" # 输出相同哈希值表示传输完整 ``` --- ### 📚 相关问题 1. 使用SCP时出现"Connection refused"错误如何解决? 2. 如何配置Rsync实现定时双向同步? 3. ZModem协议(sz/rz)在哪些终端软件中可用?[^2] 4. SCP和Rsync在传输大文件时有何性能差异? 5. 如何通过SSH隧道加密FTP传输?[^3] 6. 文件传输过程中如何实时监控进度? 7. 传输中断后如何从断点继续? > 提示:查看完整手册用 `man scp` 或 `man rsync`,敏感数据务必使用加密传输(如SCP的 `-c` 选项)[^1][^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值