find - ultimos - Obtener todos los archivos modificados en los últimos 30 días en un directorio
mtime (1)
CentOS. Debe encontrar los archivos modificados en los últimos 30 días para ver si alguno de ellos ha sido infectado con malware.
Intenté esto:
root@server [/home/someuser/public_html/]# find . -mtime +30
-exec ls -l {} > last30days.txt /;
Pero en lugar de los últimos 30 días, parece haberlo encontrado todo. 22.000 archivos.
Un par de cuestiones
- No lo está limitando a archivos, así que cuando encuentre un directorio coincidente, mostrará una lista de todos los archivos que contiene.
- No puedes usar
>
en-exec
sin algo comobash -c ''... > ...''
. Aunque el>
sobrescribirá el archivo, por lo que desea redirigir lafind
completa de todos modos en lugar de cada-exec
. -
+30
esolder
que 30 días,-30
se modificaría en los últimos 30 días. -
-exec
no es realmente necesario, puede enumerar todo con varias opciones-printf
.
Algo como abajo debería funcionar
find . -type f -mtime -30 -exec ls -l {} /; > last30days.txt
Ejemplo con -printf
find . -type f -mtime -30 -printf "%M %u %g %TR %TD %p/n" > last30days.txt
Esto mostrará una lista de archivos en formato "permisos, grupo, hora, fecha, nombre de archivo". -printf
es generalmente preferible a -exec
en los casos en que no tiene que hacer nada complicado. Esto se debe a que se ejecutará más rápido como resultado de no tener que ejecutar subshells para cada -exec
. Dependiendo de la versión de find
, también puede usar -ls
, que tiene un formato similar al anterior.