Сценарий резервного копирования 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 устанавливается соответствующим образом.

Другие вопросы по тегам