Назад | Перейти на главную страницу

bash скрипт работает правильно, но пропускает команды в cron, если я не вошел в систему через ssh или был подключен недавно

Я пытаюсь запланировать несколько сценариев резервного копирования в cron для CentOS версии 6.7 (Final).

Это полная резервная копия, в основном монтирует удаленный каталог, проверяет, достаточно ли места для выполнения резервного копирования (он делает это, если на диске 85% или меньше), наконец, отправляет сообщение электронной почты для отчета и отключает каталог.

Скрипт находится в /root/myjobs/ и его имя fullbackup.sh На данный момент разрешения 777 (-rwxrwxrwx)

#!/bin/bash
mount -t cifs //192.168.0.202/Volume_1 /mnt/nas -o username=Backup,password=PassBackup
ocupado="$(df /mnt/nas|tail -n 1|awk '{print $4}'|cut -d "%" -f 1)"
if [ $ocupado -gt 85 ]; then
    echo "DISK IS FULL" | mail -s "SERVER" mailaccount@domain.com
else
    # This is anoying but at least works, I need to create a file with the name of the backup, delete it, and then make the backup with tar
    touch /mnt/nas/Backup/full_backup_`date +"%d%b%y"`.tar.gz
    rm -f /mnt/nas/Backup/full_backup_`date +"%d%b%y"`.tar.gz
    tar -cvzpf /mnt/nas/Backup/full_backup_`date +"%d%b%y"`.tar.gz --exclude=/home/general /home
    echo "FULL BACKUP OK" | mail -s "SERVER" mailaccount@domain.com
fi
umount /mnt/nas/

Если я запускаю сценарий вручную, он работает нормально, но если я запланирую сценарий с помощью cron, он только отправит почту, но не сделает копию, как будто не выполняет команду tar.

Если я выполню crontab -e Я вижу редактор nano с этим путем вверху:

/tmp/crontab.jdwF9c

Я думаю, что что-то не так с путем, поэтому я настраиваю cron, редактируя /etc/crontab файл напрямую.

Это мое /etc/crontab файл:

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

0 9 1 * * root /root/myjobs/fullbackup.sh

Я перевел этот вопрос на испанский, как мог, надеюсь, проблема понятна.

Спасибо за вашу помощь!

ИЗМЕНИТЬ 1: Я взаимодействую с сервером удаленно. Cron запускает сценарий и работает правильно, когда я подключен, но не в том случае, если я закрываю соединение ssh и жду выполнения команды в 9:00 следующего дня. В этом случае отправляется только почта.

Попробуйте вызвать tar с полным путем. В моей системе, например. его /bin/tar. Вы можете узнать с which tar.