Сценарий 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 на следующий день. В этом случае отправляется только почта.

0
задан 14 July 2016 в 10:33
1 ответ

Попытайтесь вызвать tar с полным путем. В моей системе, например. это / bin / tar . Вы можете узнать с помощью , какой tar .

0
ответ дан 5 December 2019 в 09:55

Теги

Похожие вопросы