AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 645558
Accepted
Slicktrick
Slicktrick
Asked: 2014-11-20 09:27:17 +0800 CST2014-11-20 09:27:17 +0800 CST 2014-11-20 09:27:17 +0800 CST

在备份服务器上重新启动 SSH 之前,无法从生产服务器 SSH 到备份服务器

  • 772

我们有一个运行 CentOS 6.5 的托管专用服务器,它是我们网站的生产服务器。我有一个本地服务器,它也被重新用作 CentOS 6.5 的备份服务器,在这里只是为了存储备份文件。两台服务器都安装了所有适当的更新。

在生产服务器上,我将所有备份脚本都安排为通过 cron 运行,以创建备份文件并将它们同步到备份服务器。这些脚本都按时执行,但 rsync 在尝试联系备份服务器时由于 SSH 超时而失败。

这就是我卡住的地方。即使脚本超时,我也可以同时使用 PuTTY 和 WinSCP 通过 SSH 登录到备份服务器。一旦我在备份服务器上重新启动 sshd 服务,生产服务器上的脚本就会顺利运行(通过命令行和 cron)。

就像备份服务器在这么长时间后决定退出侦听生产服务器一样。

在被问及之前的一些额外细节:

  1. 备份服务器防火墙允许来自生产服务器的所有连接
  2. 只要备份服务器上的 sshd 服务已重新启动(即不是脚本问题),脚本就可以在命令行和 cron 中正常工作
  3. SSH 使用公钥认证来验证连接
  4. 我在备份服务器的 SSH 日志中找不到任何错误。同样,即使我可以从单独的机器连接,它也只是停止侦听生产服务器。

我真的需要一些帮助来寻找什么。我可以在生产服务器运行脚本之前设置一个脚本来重新启动备份服务器上的 sshd 服务,但这感觉太像黑客而不是修复。任何帮助将不胜感激。

编辑

请求的示例脚本。这会备份数据库并将它们与整个网站目录的 rsync 一起 rsync:

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
# -----------------
# NIGHTLY BACKUP SCRIPT
# -----------------
# --Set log file and capture parameters
exec &> /path/logfile.log
#
# --Set Current Date Time
now=$(date +"%Y-%m-%d")
#
# --Backup Database 1
/usr/bin/mysqldump -u USER -pPASSWORD DATABASE1 | /bin/gzip > /path/database1-$now.sql.gz
#
# --Backup Database 2
/usr/bin/mysqldump -u USER -pPASSWORD DATABASE2 | /bin/gzip > /path/database2-$now.sql.gz
#
# --Sync Database Backups to Remote Server
/usr/bin/rsync -avz -e "ssh -v -p # -i /path/key" /path USER@IP:/path
#
# --Sync all Website Files to Remote Server
/usr/bin/rsync -avz --delete -e "ssh -v -p # -i /path/key" /path USER@IP:/path

编辑 2

请求的日志输出。下面是从上述脚本到“将数据库备份同步到远程服务器”的 rsync 行的日志输出

OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to IP [IP] port #.
debug1: connect to address IP port #: Connection timed out
ssh: connect to host IP port #: Connection timed out
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(600) [sender=3.0.6]

还要求我运行以下命令:nc -v IP PORT但是,结果实际上与日志相同:

nc: connect to IP port # (tcp) failed: Connection timed out

在备份服务器上重新启动 sshd 服务并重新运行“nc”命令后,我得到以下信息:

Connection to IP # port [tcp/fpo-fns] succeeded!
SSH-2.0-OpenSSH_5.3
centos
  • 1 1 个回答
  • 218 Views

1 个回答

  • Voted
  1. Best Answer
    Slicktrick
    2014-12-03T12:20:41+08:002014-12-03T12:20:41+08:00

    作为测试,我创建了一个每小时运行的脚本,并将网站目录从生产服务器同步到备份服务器。我想我至少会找出备份服务器停止允许来自生产服务器的连接的大致时间。相反,从昨天开始,每小时脚本和所有其他脚本都没有问题地运行。

    虽然我不认为这是一个实际的“修复”,但它至少似乎解决了这个问题,我不再需要通过重新启动备份服务器上的 sshd 服务然后在生产服务器上运行脚本来手动启动备份。如果有人对为什么这会解决问题有任何见解,请在评论中告诉我,因为我仍然想找出根本原因。

    • 0

相关问题

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 使用 crontab 和 /etc/cron.hourly,daily,weekly 的区别

  • 持续监控许多服务器运行状况的简单方法?

  • Hudson 无法在 tomcat5 中启动

  • CentOS 的依赖挑战

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve