Задать вопрос
@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 "{}" \;


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

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

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

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

Похожие вопросы