rsync / ssh / rsnapshot backup - execução remota de scripts

6

Eu tenho as seguintes configurações no meu arquivo de configuração: (/etc/rsnapshot.conf)

Script / Ferramenta: link

backup_script   ssh     [email protected] "sh /home/user/backup_mysql.sh"     ./mysql

o exemplo mostra o seguinte:

backup_script  ssh [email protected] "mysqldump -A > /var/db/dump/mysql.sql"    unused2

O erro que recebo:

ERROR: backup_script /usr/bin/ssh returned 255  

O que estou fazendo de errado?

    
por Tiffany Walker 14.02.2013 / 23:06

6 respostas

1

Uma maneira possível seria converter ssh [email protected] "sh /home/user/backup_mysql.sh" em um script (do_ssh.sh, aqui) e invocar esse script.

Algo como

backup_script /path/to/do_ssh.sh ./mysql

Também recomendo que você tente colocar aspas em todo o seu comando.

backup_script "ssh [email protected] "sh /home/user/backup_mysql.sh"" ./mysql

    
por 15.02.2013 / 19:43
3

Os arquivos de configuração do rsnapshot são delimitados por tabulações. Certifique-se de incluir tabs entre o backup_scrip, o comando ssh e o armazenamento de backup. Se isso não funcionar, tente executar rsnapshot configtest para identificar o problema.

Resposta atualizada

É mais conveniente transformar sua linha de backup no seguinte formato:

 backup_script    /dir/yourscript.sh    backupdirectory/

Coloque a seção do meio em um shell script, torne-a executável e teste-a. Além disso, o ssh [email protected] deve se conectar ao host remoto sem uma senha de maneira não interativa.

    
por 15.02.2013 / 05:06
2

O exemplo rsnapshot.conf realmente usa backup_exec , não backup_script . No entanto, backup_script ainda pode ser usado para executar comandos arbitrários em ssh e sincronizar todos os arquivos gerados em um diretório temporário. Qualquer comando usado deve ser referenciado pelo caminho absoluto. Isso funcionou para mim, para um dos meus bancos de dados mysql:

backup_script [tab] /usr/bin/ssh [email protected] "/usr/bin/mysqldump --single-transaction -u username dbname" > dbname.sql [tab] example.com/mysql/

    
por 10.08.2018 / 16:34
1

O problema é algo a ver com o ssh. Da página man do ssh

ssh exits with the exit status of the remote command or with 255 if an error occurred

Você deve usar ssh -v [vv] para obter uma saída detalhada do ssh e ver o que ele tem a dizer.

    
por 16.02.2013 / 18:05
0

Você configurou a autenticação de chaves com o host remoto, ou o comando ssh está esperando que você digite uma senha interativamente?

Se você não configurou a autenticação sem senha, o comando ssh falhará na autenticação e, portanto, retornará um erro (255 parece ser o valor de retorno padrão para qualquer erro).

    
por 18.02.2013 / 07:03
0

Eu tive um problema semelhante que foi resolvido certificando-me de que não houvesse guias no caminho do script.

Em vez de

backup_script [tab] /bin/ssh [tab] [email protected] [tab] "/usr/bin/mysqldump -uroot --all-databases > ./mysqldump.sql" [tab] ./mysql/

tente

backup_script [tab] /bin/ssh [email protected] "/usr/bin/mysqldump -uroot --all-databases > ./mysqldump.sql" [tab] ./mysql/
    
por 29.03.2016 / 05:58