Ricerca per timestamp file
I filesystem Unix/Linux hanno tre tipi di timestamp su ciascun file. Sono i seguenti:
- Ora di accesso (-atime) :il timestamp dell'ultimo accesso al file.
- Tempo di modifica (-mtime) :il timestamp dell'ultima modifica del file.
- Cambia l'ora (-ctime) :il timestamp dell'ultima modifica dei metadati per un file (come autorizzazioni o proprietà).
Cerca ed elimina file più vecchi di 7 giorni
Facciamo un esempio, in cui troveremo ed elimineremo file più vecchi di 7 giorni. Utilizzeremo l'opzione "-mtime ” del comando find per questo.
1. Ottieni un elenco di file utilizzando il comando trova come segue:
# find /path_to_directory -mtime +7 -type f -exec ls {}\;
2. Se i nomi dei file iniziano con un modello particolare, filtra utilizzando quello come segue:
# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec ls {}\;
3. Dopo aver verificato e confermato l'output, passare allo script di rimozione (è molto IMPORTANTE), altrimenti si verificherà una perdita di dati irrecuperabile.
# find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {}\;
4. Se è necessario eseguire questa operazione su un server remoto tramite cron job e registrare i nomi dei file eliminati, utilizzare il comando seguente
# ssh user@remote_ip "find /path_to_directory -name 'filenamepattern*' -mtime +7 -type f -exec rm -fv {} \; >> /tmp/backup_deletion`date +%Y%m%d`.log 2>&1"
Conclusione
Il -mtime il parametro cercherà i file in base all'ora di modifica; -ctime ricerche in base al tempo di modifica. -atime, -mtime e -ctime utilizzano il tempo misurato in giorni. Il comando trova supporta anche le opzioni che misurano in minuti. Questi sono i seguenti:
- -amin (tempo di accesso)
- -mmin (tempo di modifica)
- -cmin (cambia ora)
Ad esempio, per stampare tutti i file con un tempo di accesso più vecchio di sette minuti, utilizzare il comando seguente:
# find . -type f -amin +7 -print
-opzione più recente
L'opzione -newer specifica un file di riferimento con un'ora di modifica che verrà utilizzata per selezionare i file modificati più di recente rispetto al file di riferimento.
Trova tutti i file che sono stati modificati più di recente rispetto al file file.txt:
# find . -type f -newer file.txt -print