Как в bash-скрипте реализовать триггер на наличие файлов определенного типа?
Необходимо реализовать скрипт, который проводил бы создание бекапов. На приведенной схеме ниже накинул то, как я это вижу логически. Вопрос в реализации: не имею представления, каким образом в скрипте задать триггер на наличие файлов определенного типа (имя/расширение). Не могли бы подсказать возможные решения? Спасибо.
Ответы (3 шт):
Автор решения: Виктор
→ Ссылка
Начните с прочтения доки по BASH:
Автор решения: ipatev_nn
→ Ссылка
#!/bin/bash
#Выйти из скрипта если команда закончилась ошибкой
set -e
#Перменные для путей и имени файла
fileName=archive.gz
oldDir="/y_backup"
latestDir="/latest_backup"
#Проверяем файл в каталоге последних бекапов
if [[ -f ${latestDir}/${fileName} ]]; then
#Проверяем файл в каталоге старых бэкапов
if [[ -f ${oldDir}/${fileName} ]]; then
#Удаляем старый файл бекапа
rm -f ${oldDir}/$fileName
fi
#Перемещаем последний файл бекапа в папку со старыми бекапами
mv ${latestDir}/$fileName ${oldDir}/$fileName
fi
#Тут команда для создания архива в каталоге последних бекапов
you command to create backup
Автор решения: Ivan
→ Ссылка
Наличие файлов определённого типа(расширения) можно проверить простой командой ls. Допустим ваша папка для хранения бекапов /bekap, тип(расширение) файлов .bkp, тогда "триггер" проверки будет выглядеть таким образом:
ls /bekap/*.bkp &> /dev/null || echo fail
Эта команда выведет fail если в папке /bekap нет объектов содержащих .bkp в имени.
