Come grep un gruppo di file all’interno di un intervallo di tempo specifico

Sto cercando di scrivere uno script utilizzato su un buffer di dialogo che si completa l’acquisizione di pacchetti di traffico di rete. Come per un abbastanza grande rete abbiamo diviso la cattura in 100MB segmenti. A volte, di elevato traffico di rete spesso più di un minuto di periodo avremo più pcaps che coprono quel periodo.

Quindi quello che voglio fare è di avere uno script bash che permette all’analista, che è alla ricerca di qualcosa di specificare una data e l’ora e i minuti entrambi i lati di esso che si desidera cercare i file. Ovviamente posso fare qualcosa di simile –

ls -al | grep "Dec  1" | grep 02:00
ls -al | grep "Dec  1" | grep 02:01

e così via, di ottenere ogni risultato e grep ogni file singolarmente per la parola chiave specifica sto cercando, ma mi piacerebbe essere in grado di fare una ricerca più ampia, tutti i file creati all’interno di un intervallo di tempo e quindi grep ciascuno di essi per la parola chiave.

Non sono del tutto sicuro di come farlo, qualsiasi aiuto sarebbe apprezzato.

  • Si desidera che i file in un intervallo di tempo o la voglia di registro nell’intervallo di tempo nel file ?
  • find è il tuo amico, con il -ctime, -newer e/o -mtime opzioni (tra gli altri). Questo, convogliato in xargs è un idioma preferito per afferrare un gruppo di file in base ad alcuni criteri, poi fare le cose per loro.
  • Quello che voglio è per analista a dire il 1 ° dicembre alle ore 11:00 con una parola chiave di “pippo” ricerca 5 minuti entrambi i lati. Lo script dovrebbe trovare tutti i file creati dalle 10:55 alle 11:05am e grep loro la parola “pippo”
  • Possibile duplicato di: stackoverflow.com/questions/12735182/…
InformationsquelleAutor Steve | 2013-12-01

 

4 Replies
  1. 1
    find . -maxdepth 1 -newermt "2013-10-28 00:00:00" ! -newermt "2013-10-29 00:00:00"
  2. 1

    Quello che voglio è per analista a dire il 1 ° dicembre alle ore 11:00 con un
    parole chiave di “pippo” ricerca 5 minuti entrambi i lati. Lo script deve
    trovare tutti i file creati dalle 10:55 alle 11:05am e grep loro per
    la parola “pippo”

    Questo script utilizza touch -d per creare file temporanei con data e ora di inizio e di fine dell’intervallo di tempo, in quanto le versioni precedenti di find hanno la possibilità -newer solo, non -newermt, e touch -d comodamente permette di utilizzare il dato di specificazione (con piccole modifiche) con il verbale di regolazione. Le modifiche necessarie per la data che è fatto con sed e consistono di movimento, il giorno dopo il mese e la rimozione di suffissi come st o nd così come la parola a.

    read -p'date and time: ' dat
    read -p'+/- minutes: ' min
    read -p'keyword: ' key
    dat=`sed 's/\([0-9]\+\)\(st\|nd\|rd\|th\|\) \([^ ]*\)/\3 \1/; s/at //' <<<$dat`
    touch -d"$dat $min min" /tmp/to
    touch -d"$dat -$min min" /tmp/from
    find . -type f -newer /tmp/from ! -newer /tmp/to | xargs grep "$key"
    rm /tmp/from /tmp/to
  3. 0

    Check out find con il -cmin o -ctime argomenti.

    Così,

    find -iname "*.log" -mtime +30 -mtime -90 -exec grep plasma {} \;

    avrebbe trovato i file che terminano in “.log” che sono stati modificati superiore a 30 giorni fa, ma meno di 90 giorni, quindi eseguire il file ha detto attraverso grep cercando la parola “plasma”.

    • Se non avete intenzione di fornire una risposta più completa, quindi questo dovrebbe essere un commento.
    • Ho guardato in questo, ma non voglio guardare X minuti indietro, ho bisogno di cercare i file di una data specifica, e tra le 2 volte. Vedi il mio commento sopra.
    • trovare . -maxdepth 1 -newermt “2013-10-28 00:00:00” ! -newermt “2013-10-29 00:00:00”
  4. 0

    Dire che si desidera 20131130 dal 0100 0130 –
    Questo significa che con disposizione:

    touch -t 201311300100 dummy1
    touch -t 201311300130 dummy2 
    find /path/to/logs type -f \( -newer dummy1 -a ! -newer dummy2 \) -name '*.log'

    il 201311300100 bit è un tocco timestring. Ho postato la maggior parte di vaniglia versione so perché di UNIX tag….

Lascia un commento