Я пытаюсь запланировать несколько сценариев резервного копирования в 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
. Вы можете узнать с помощью , какой tar
.