@Valeriu147

Почему не работает условие проверки расширения фала и проверка имени файла с текущей датой?

Добрый день. У меня логи пишутся в формате, nginx.log.2017.05.12, т.е. лог и дата к нему.
Я набросал скрипт который не делает архивацию для логов, которые уже архивированы и не делает архивацию для лога с текущей датой.

name="nginx.log"
data=$(date +%Y.%m.%d)
current_nginx=$name.$data
cd /var/log/
for i in `ls "$name*"`; do
if [[ $i != *".gz"* ]] && [[ $i != "$current_nginx" ]]; then
    gzip $i
    echo "make compressing for $i"
fi
    echo "there are not available nginx logs. stop the script executing"
    exit 1
done


Но почему-то это не отрабатывает и я получаю второе условие. Хотя у меня нету сжатых файлов и я бы хотел их сжать.

Очень хорошо работает это условие:

find /var/log/$name* -type f -print0 -and ! -name "*.gz" -and ! -name "$current_nginx" -exec gzip "{}" \;


Но меня это немного не страивает, мне нужно, выходить из тела скрипта, в случае, если у меня нету новых логов.

Как поступить в данном случае ?
  • Вопрос задан
  • 258 просмотров
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
nginx.log.20170512
data=$(date +%Y.%m.%d)

Вам не кажется, что точки лишние?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Sportmaster Lab Москва
от 150 000 до 350 000 ₽
FunBox Санкт-Петербург
от 120 000 ₽
26 февр. 2020, в 01:14
600 руб./в час
26 февр. 2020, в 01:13
1500 руб./за проект
25 февр. 2020, в 23:26
100000 руб./за проект