Вот один из них для магов Баш-Фу. Нет, вообще-то, я просто шучу, вы, наверное, все это знаете, кроме меня ..
Я пытаюсь создать сценарий резервного копирования оболочки. Идея довольно проста: найти файлы в определенной папке, старше 7 дней, tar / gzip их в другой каталог и удалить их. Проблема в том, что я не уверен, хватит ли у меня прав для создания файла tar / gzip в целевой директории. Есть ли какой-либо (правильный) способ проверить, был ли файл успешно создан, и если да, удалите файлы. В противном случае пропустите эту часть и не уничтожайте данные клиентов. Я слышал, они не очень любят это.
Вот что у меня есть:
01: #!/bin/bash
02:
03: ROOTDIR="/data/www"
04:
05: TAR="${ROOTDIR}/log/svg_out_xml/export_out_ack_$(date +%Y-%m-%d).tar"
06: cd ${ROOTDIR}/exchange/export/out_ack/
07: find . -mtime +7 -type f -print0 | xargs -0 tar -cf "${TAR}"
08: gzip ${TAR}
09: find . -mtime +7 -type f -print0 | xargs -0 rm -f
По сути, мне нужно проверить, все ли хорошо в строках 7 и 8, и если это так, выполнить 9.
Кроме того, я хотел бы создать файл журнала этих операций, чтобы я знал, что все прошло хорошо (это ночная работа cron).