Сценарий резервного копирования bash не распаковывает архив
У меня есть скрипт bash, который запускается как cron для резервного копирования файлов на сервере.
#!/bin/bash
FILE=/path/to/backup_$(date +%Y%m%d).tar
tar -cf $FILE /backup/this /and/that /and/someotherfiles
gzip $FILE
Когда я запускаю скрипт напрямую, используя:
sudo bash ./backup-files.sh
Он сжал файл, но прошлой ночью, когда cron запустил его, он оставил его как tar. Сохранит ли cron журнал где-нибудь, что указывало бы на причину?
3 ответа
Является ли раздел, где находится резервная копия, на своих границах?
Ваш скрипт создал тарбол, но у gzip не осталось места для его сжатия.
(вы можете объединить обе команды с флагом -z для tar)
Woops, я забыл одну вещь: добавьте флаг -v к вашей команде tar. Он покажет, что он делает.
Как уже упоминал Пьер, вы можете использовать флаг -z. Обычно я всегда использую tar zcvfP для резервного копирования целых каталогов и сохранения их структуры и разрешений. Флаг v там тоже полезный.
Если снова случится так, что ваш скрипт не будет делать то, что вы хотите, вы можете добавить set -x
поверх вашего сценария. Он выведет именно то, что делает, и этот вывод часто помогает находить ошибки. Если вы называете это как cronjob убедитесь, что $EMAIL
устанавливается соответствующим образом.