Предполагая, что вы не знаете, какие журналы содержат июнь:
zcat *gz | grep Jun > junelog
Есть ли возможность заархивировать несколько файлов в одну папку?
У меня есть много журналов доступа, которые мне нужны, чтобы извлечь папку do. Там размещены /var/log/nginx/
и они названы как access.log.2.gz
Но есть хитрый .. Мне нужны все архивы из этой папки за один конкретный месяц.
Есть много этих журналов доступа, и мне нужно их извлечь в каталог /var/log/nginx/target
Я уже тестировал
for f in *.gz; do STEM=$(access.log. "$" .gz) gunzip -c "$" > /var/log/nginx/target/"$" done
Но не работал вообще ..
Предполагая, что вы не знаете, какие журналы содержат июнь:
zcat *gz | grep Jun > junelog
Я полагаю, что проблема с вашим кодом - это, скорее всего, вычисление 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/$ done