O trabalho diário do Cron não está executando

0

Eu criei a seguinte tarefa cron em /etc/cron.daily/backup-vivashost

#!/bin/bash

DATE='date +%Y%m%d'

mkdir /var/lib/html-backup/www-$DATE/
cp -R /var/www/html/* /var/lib/backups/html-backup/www-$DATE/
find /var/lib/bakcups/html-backup/* -type f -mtime +5 -delete

Um dia depois de criar isso, não há cópia de /var/www/html/ para /var/lib/backups/html-backup/

É porque o shell não está em execução sob sudo su permissões de root ou?

Por favor, você pode me dizer uma razão pela qual não está funcionando?

Obrigado!

    
por Venelin Vasilev 06.11.2015 / 15:47

1 resposta

0

Primeiro, corrija os nomes dos caminhos no arquivo de script /etc/cron.daily/backupvivashost e aplique as sugestões de A.B:

#!/bin/bash

DATE=$(date +%Y%m%d)
mkdir /var/lib/backups/html-backup/www-$DATE/
cp -pR /var/www/html/* /var/lib/backups/html-backup/www-$DATE/ 
find /var/lib/backups/html-backup -mtime +5 -delete

Em seguida, torne o arquivo executável:

sudo chmod +x /etc/cron.daily/backupvivashost

Em seguida, execute o arquivo para ver se funciona:

sudo /etc/cron.daily/backupvivashost

Se funcionar, veja se ele também será executado quando chamado por crontab. O script precisa de sudo privileges, portanto, ele deve ser chamado pelo crontab raiz.

sudo crontab -e

fará isso. Se isso não funcionar, há algo errado com o editor padrão ou com o arquivo /var/spool/cron/crontabs/root . Para especificar nano como seu editor, faça

export EDITOR=/usr/bin/nano

Quando você conseguir abrir o crontab com o editor, insira datas e horas para que seu script seja executado. Se você quiser executá-lo às 17:00, digite:

0 17 * * * /etc/cron.daily/backupvivashost > /home/user/logfile 2>&1

Dessa forma, você poderá ver o que está errado no arquivo /home/user/logfile . Quando isso também funcionar, remova a linha do crontab, pois o script agora será executado diariamente de qualquer maneira.

    
por Jos 06.11.2015 / 16:50