scp não está funcionando no cronjob

2

Em uma configuração do CentOS, eu tenho um script como este:

#! /bin/bash
mysqldump --all-databases | gzip > /dumps/sql'date +"%Y-%m-%d-%$
scp 'ls -t | head -1'  root@backup:/media/storage/backup/

A máquina está configurada com uma chave ssh autorizada, portanto, uma senha não é necessária. Se eu rodá-lo (/ bin / bash mysql.sh) ele funciona como planejado, mas em um cronjob apenas o mysqldump é executado. O comando scp falha.

Onde procuro consertar isso?

    
por Lennart 06.09.2012 / 13:58

3 respostas

1

Parece que scp não pegou seu par de chaves no diretório ~/.ssh . Tente isto:

env HOME=/path/to/your/home scp -v $(ls -t | head -1) root@backup:/media/storage/backup/ > /tmp/scp.log 2>&1

Se isso não funcionar, poste o scp.log aqui.

    
por 06.09.2012 / 14:11
1

Em muitos casos, os scripts que funcionam na linha de comando, mas não no cron, falham devido a problemas de ambiente. Se você estiver usando o agente ssh ou definindo as informações que o scp precisa para funcionar em seu ambiente, você precisará defini-las explicitamente em seu script ou criar sua .bashrc (ou qualquer outro arquivo que defina suas variáveis). O cron não usa seus arquivos rc por padrão, então seu ambiente é bem simples.

    
por 06.09.2012 / 14:05
0

Acho que, antes de mais nada, você deve checar os logs do seu cron por erros, talvez você possa copiar uma pequena parte de seus logs aqui para ter uma solução de problemas melhor.

Você pode tentar alterar o comando "date" com isto:

$(date +\%F)

E então tente novamente definir o cronjob; -)

    
por 06.09.2012 / 14:06

Tags