Não é possível SSH do servidor de produção para o servidor de backup até reiniciar o SSH no servidor de backup

2

Temos um servidor dedicado hospedado rodando o CentOS 6.5 que é o servidor de produção do nosso site. Eu tenho um servidor local que foi reaproveitado como um servidor de backup também com o CentOS 6.5 e está aqui simplesmente para armazenar arquivos de backup. Ambos os servidores possuem todas as atualizações apropriadas instaladas.

No servidor de produção, tenho scripts de backup todos agendados para serem executados pelo cron para criar os arquivos de backup e rsync para o servidor de backup. Todos os scripts são executados no prazo, mas o rsync falha devido a um tempo limite do SSH ao tentar entrar em contato com o servidor de backup.

Aqui é onde eu estou preso. Eu posso usar o PuTTY e o WinSCP para efetuar login no servidor de backup via SSH, mesmo que o tempo limite dos scripts seja excedido. Assim que reinicio o serviço sshd no servidor de backup, os scripts no servidor de produção são executados sem problemas (tanto via linha de comando quanto cron).

É como se o servidor de backup decidisse deixar de ouvir o servidor de produção depois de tanto tempo.

Alguns detalhes adicionais antes de serem perguntados:

  1. O firewall do servidor de backup permite todas as conexões do servidor de produção
  2. Os scripts funcionam bem na linha de comando e no cron, desde que o serviço sshd no servidor de backup tenha sido reiniciado (ou seja, não seja um problema de script)
  3. O SSH usa autenticação de chave pública para validar a conexão
  4. Não consigo encontrar erros nos logs SSH do servidor de backup. Novamente, é como se simplesmente parasse de ouvir o servidor de produção, mesmo que eu possa conectar-me a partir de uma máquina separada.

Eu realmente preciso de alguma ajuda sobre o que procurar. Eu poderia configurar um script para reiniciar o serviço sshd no servidor de backup logo antes de o servidor de produção executar o script, mas isso parece muito com um hack em vez de com uma correção. Qualquer ajuda seria muito apreciada.

Editar

Exemplo de script solicitado. Isso faz o backup dos bancos de dados e rsyncs-los, juntamente com um rsync de todo o diretório do site:

#!/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

Editar 2

Saída de log solicitada. Abaixo está a saída de log para a linha rsync do script acima para "Sincronizar backups de banco de dados para o servidor remoto"

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]

Também foi solicitado que eu execute o seguinte comando: nc -v IP PORT No entanto, os resultados foram praticamente os mesmos que o log:

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

Após reiniciar o serviço sshd no servidor de backup e executar novamente o comando 'nc', obtive o seguinte:

Connection to IP # port [tcp/fpo-fns] succeeded!
SSH-2.0-OpenSSH_5.3
    
por Slicktrick 19.11.2014 / 18:27

1 resposta

0

Como teste, criei um script para ser executado por hora e rsync o diretório de sites do servidor de produção para o servidor de backup. Eu pensei que eu iria pelo menos descobrir um tempo aproximado para quando o servidor de backup parou de permitir conexões do servidor de produção. Em vez disso, o script por hora e todos os outros scripts foram executados sem problemas desde ontem.

Embora eu não considere isso uma "correção" real, pelo menos pareceu resolver o problema e não preciso mais iniciar os backups manualmente reiniciando o serviço sshd no servidor de backup e executando scripts no servidor de produção. Se alguém tiver alguma ideia de por que isso resolveria o problema, avise-nos nos comentários, pois ainda gostaria de descobrir uma causa raiz.

    
por 02.12.2014 / 21:20

Tags