rsync安装出现failed to connect to解决办法

本文介绍了一次rsync服务安装过程中遇到的连接失败问题及解决过程。作者通过检查服务状态,发现rsync服务未正确启动,通过手动启动服务解决了连接问题,并成功实现了文件同步。

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

rsync安装出现failed to connect to解决办法

今天在安装rsync的时候疯狂出现了一个错误,我本以为是自己错误,在重新做了三遍之后发现确实有其他原因致使我出错。我中间也去在博客上搜了关于其他人记录的问题,都没有解决。先找到了解决办法,分享给大家。

我当时是报这样的错误

在这里插入图片描述

首先去看了自己两边的防火墙,都关闭了,这不是我错误的原因。

在我找了很久之后查看了服务的开启状态

客户端:

[root@client ~]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      694/rpcbind         
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1632/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1125/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1123/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1282/master         
tcp6       0      0 :::3306                 :::*                    LISTEN      1411/mysqld         
tcp6       0      0 :::111                  :::*                    LISTEN      694/rpcbind         
tcp6       0      0 :::22                   :::*                    LISTEN      1125/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1123/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1282/master         

[root@client ~]# systemctl status rsyncd
● rsyncd.service - fast remote file copy program daemon
   Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
   ##rsync是inactive状态说明我的rsync服务没有开启

在这里插入图片描述

解决

客户端

##启动服务
[root@client ~]# systemctl start rsyncd
[root@client rsync_test]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:873             0.0.0.0:*               LISTEN      2287/rsync          
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      694/rpcbind         
tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1632/dnsmasq        
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1125/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1123/cupsd          
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1282/master         
tcp6       0      0 :::873                  :::*                    LISTEN      2287/rsync          
tcp6       0      0 :::3306                 :::*                    LISTEN      1411/mysqld         
tcp6       0      0 :::111                  :::*                    LISTEN      694/rpcbind         
tcp6       0      0 :::22                   :::*                    LISTEN      1125/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      1123/cupsd          
tcp6       0      0 ::1:25                  :::*                    LISTEN      1282/master     
##出现了rsync服务端口873
[root@client rsync_test]# systemctl status rsyncd
● rsyncd.service - fast remote file copy program daemon
   Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2022-11-06 20:41:17 CST; 4min 38s ago
 Main PID: 2287 (rsync)
    Tasks: 1
   CGroup: /system.slice/rsyncd.service
           └─2287 /usr/bin/rsync --daemon --no-detach

Nov 06 20:41:17 client systemd[1]: Started fast remote file copy program daemon.
##状态也是活跃的

服务器端

[root@192 ~]# rsync -a --password-file=/etc/rsync.password /tmp/ rsync_user1@192.168.119.140::rsync_test
##不再报错

客户端

##服务端的/tmp下的文件成功被同步到了客户端
[root@client rsync_test]# ls 
mysql.sock
mysql.sock.lock
ssh-5NHQMHVjJkaV
systemd-private-bba2d6ea29ee499eb7f64d5ffc2d0a68-bolt.service-G1Qa2R
systemd-private-bba2d6ea29ee499eb7f64d5ffc2d0a68-chronyd.service-Oy46SL
systemd-private-bba2d6ea29ee499eb7f64d5ffc2d0a68-colord.service-qFl11f
systemd-private-bba2d6ea29ee499eb7f64d5ffc2d0a68-cups.service-PwgDX1
systemd-private-bba2d6ea29ee499eb7f64d5ffc2d0a68-fwupd.service-Ird9fg
systemd-private-bba2d6ea29ee499eb7f64d5ffc2d0a68-rtkit-daemon.service-feNVts
systemd-private-d7aa5276b2b442f79a5fd52fdd26c37c-bolt.service-WDDloq
systemd-private-d7aa5276b2b442f79a5fd52fdd26c37c-chronyd.service-fK0yOr
systemd-private-d7aa5276b2b442f79a5fd52fdd26c37c-colord.service-XZePyz
systemd-private-d7aa5276b2b442f79a5fd52fdd26c37c-cups.service-YGv3d8
systemd-private-d7aa5276b2b442f79a5fd52fdd26c37c-rtkit-daemon.service-3UqZGW
tracker-extract-files.0
vmware-root_715-4281843213
vmware-root_721-4290559889
vmware-root_742-2991137376
yum_save_tx.2022-11-06.19-44.eo3jjz.yumtx

在这里插入图片描述

总结:在用yum安装了rsync的时候,我默认了rsync服务是开启的,所以导致了后面查看服务没有开启而报错。

### 使用本地 Shell 脚本远程管理服务器 为了通过本地 Shell 脚本实现对服务器的有效控制,包括启动服务、文件传输等操作,可以采用多种方法和技术组合来完成这些任务。 #### SSH 和 SCP 的应用 对于执行命令和文件传输的任务,SSH (Secure Shell) 是最常用的协议之一。可以通过 `ssh` 命令在远程主机上执行任意命令,并利用 `scp` 或者更现代的 `rsync` 工具来进行安全的数据交换[^1]。 ```bash #!/bin/bash # 定义变量 REMOTE_USER="user" REMOTE_HOST="example.com" KEY_PATH="/path/to/private/key" # 执行远程命令示例:重启 Apache 服务 ssh -i $KEY_PATH ${REMOTE_USER}@${REMOTE_HOST} "sudo systemctl restart httpd.service" # 文件上传至远程服务器 scp -i $KEY_PATH ./local_file.txt ${REMOTE_USER}@${REMOTE_HOST}:/remote/path/ # 同步目录结构并保持权限不变 rsync -avz -e "ssh -i $KEY_PATH" ./local_dir/ ${REMOTE_USER}@${REMOTE_HOST}:/remote/dir/ ``` 上述脚本展示了如何使用 SSH 来远程重启 HTTPD 服务以及怎样借助 SCP 实现单个文件向远端位置的传送;而 Rsync 则用于同步整个目录的内容及其属性设置。 #### 自动化批量处理 当面对多个目标节点时,编写循环逻辑或运用 Ansible 等配置管理和自动化平台会更加高效便捷。这里给出一个简单的例子说明如何遍历 IP 地址列表并对每台设备实施相同的操作: ```bash #!/bin/bash while read line; do ssh -i /path/to/private/key user@$line 'command_to_run' done < ip_addresses_list.txt ``` 此段代码读取名为 `ip_addresses_list.txt` 的文本文件中的每一行作为待访问的目标地址,在其中依次运行指定指令。注意 `-o StrictHostKeyChecking=no` 参数的作用在于自动接受新的主机密钥而不提示确认对话框。 #### 日志记录与错误检测 良好的日志机制有助于追踪问题所在之处。可以在脚本内部加入详细的日志打印语句以便于后期分析排查故障原因。同时也可以考虑捕获异常情况下的退出状态码从而决定下一步行动方向。 ```bash #!/bin/bash LOGFILE="./script.log" exec &> >(tee "$LOGFILE") for host in $(cat hosts); do echo "[INFO] Processing on $host..." if ! ssh -n -T -o BatchMode=yes -o ConnectTimeout=5 \ -i ~/.ssh/id_rsa user@"$host" some_command ; then echo "[ERROR] Failed to execute command on $host." >&2 continue fi echo "[SUCCESS] Command executed successfully on $host." done ``` 这段增强版的脚本不仅实现了多台机器上的并发作业调度功能,还加入了基本的日志输出支持,能够帮助管理员更好地理解程序的工作流程及可能遇到的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值