1

Есть ли возможность заархивировать несколько файлов в одну папку?

У меня есть много журналов доступа, которые мне нужны, чтобы извлечь папку do. Там помещены в /var/log/nginx/ и они названы как access.log.2.gz Но есть хитрый .. Мне нужны все архивы из этой папки за один конкретный месяц.

Есть много журналов этого доступа, и мне нужно их распаковать в каталог /var/log/nginx/target

Я уже тестировал

for f in *.gz; do
  STEM=$(access.log. "${f}" .gz)
  gunzip -c "${f}" > /var/log/nginx/target/"${STEM}"
done

Но не работал вообще ..

2 ответа2

0

Предполагая, что вы не знаете, какие журналы содержат июнь:

zcat *gz | grep Jun > junelog
0

Я полагаю, что проблема с вашим кодом - это, скорее всего, вычисление STEM. Мне не сразу ясно, в каком формате находятся ваши файлы или как вы собираетесь их группировать, но попробуйте что-то вроде:

# Find files created within date range:
fromdate="201606010000"
todate="201606302359"
touch -t $fromdate /tmp/fromdate.del
touch -t $todate /tmp/todate.del

# Extract only the desired files to destination, removing the .gz extension
for f in `find /var/log/nginx/*.gz  -type f -newer $fromdate ! -newer $todate`
do
     zcat $f > /var/log/ngiz/target/${f::-3}
done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .