Como executar um script fora do diretório home via cron

0

Eu tenho um script localizado em /home/user/backup.sh

Estou tentando executar este script através do meu crontab de raiz. Não está funcionando. O script funciona se eu criar o crontab sob minha conta user .

Existe alguma maneira de executar este script como o crontab raiz? Aqui está a linha que estou usando.

25 20 * * * sh /home/user/backup.sh

Conteúdo do script:

tar -czvf /home/user/backup/backup.tar.gz /var/www/
mysqldump -u root -p password --all-databases > /home/user/backup/backup.sql
rsync -avz /home/user/backup user@myserver:/home/user/
    
por user970638 14.05.2016 / 04:10

1 resposta

2

root tem acesso total no seu sistema, mas não tem necessariamente todas as chaves de outros sistemas que sua conta de usuário normal possui.

Então o problema é:

rsync -avz /home/user/backup user@myserver:/home/user/
                             ^^^^

Se você usar root para executar este comando como você , suas chaves serão usadas e o comando será bem sucedido:

sudo -u user rsync -avz /home/user/backup user@myserver:/home/user/

Como alternativa, você pode instalar a chave pública de root como uma chave SSH aceita para user no sistema myserver .

    
por 14.05.2016 / 04:45

Tags