Angenommen, Sie wissen nicht, welche Protokolle den Juni enthalten:
zcat *gz | grep Jun > junelog
Gibt es die Möglichkeit, mehrere Dateien in einen Ordner zu packen?
Ich habe viele Zugriffsprotokolle, die ich tun muss, um Ordner auszuführen. Dort abgelegt /var/log/nginx/
und sie heißen wie. access.log.2.gz
Aber es gibt eine knifflige Frage. Ich brauche alle Archive aus diesem Ordner aus einem bestimmten Monat.
Es gibt viele dieser Zugriffsprotokolle, und ich muss sie in das Verzeichnis extrahieren /var/log/nginx/target
Habe ich schon getestet
for f in *.gz; do STEM=$(access.log. "$" .gz) gunzip -c "$" > /var/log/nginx/target/"$" done
Hat aber überhaupt nicht funktioniert ..
Angenommen, Sie wissen nicht, welche Protokolle den Juni enthalten:
zcat *gz | grep Jun > junelog
Ich glaube, das Problem mit Ihrem Code liegt höchstwahrscheinlich in der Berechnung von STEM. Mir ist nicht sofort klar, in welchem Format sich Ihre Dateien befinden oder wie Sie sie gruppieren werden. Versuchen Sie jedoch Folgendes:
# 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