En mis servidores, uno de los scripts que he estado usando sigue creando archivos en blanco en la raíz y no me han notado durante más de 6 meses y ahora se crean un total de más de 500.000 archivos.
No puedo acceder a ese directorio a través del panel de control porque había demasiados archivos y solo puedo acceder con ftp. Incluso con ftp, ftp truncó los archivos en 8000 cada uno. Entonces tengo que seguir eliminando 8000 cada uno.
Intenté pedirle a mi anfitrión que lo borrara, pero me dijeron que no podían porque se trataba de cuestiones de responsabilidad.
Entonces, lo que quiero saber es ¿cómo puedo eliminar todos esos 500.000 archivos a través de ftp? Como es alojamiento compartido, tampoco tengo acceso SSH. El proveedor de hosting dice que puedo solicitar el acceso SSH pero necesito verificarlo y su oficina estará cerrada hasta la próxima semana. Así que por ahora estoy atascado con ftp.
Entonces, por favor, háganme saber ¿cómo puedo eliminar archivos masivos a través de ftp?
Y en caso de que pueda obtener acceso ssh, por favor háganme saber ¿cómo puedo eliminar los archivos a través de ssh de manera eficiente?
El nombre del archivo es así.
- cerrarcp.139619
- cerrarcp.139619.1
- cerrarcp.139620
- cerrarcp.139620.1
Respuesta1
ComosamSeñalé que pondría un archivo PHP o Perl en su espacio web que elimina los archivos del directorio.
Asegúrese de que nadie más que usted pueda encontrar fácilmente el script y asegúrese de que los valores que contiene no se puedan sobrescribir mediante POST o GET.
Respuesta2
Probablemente llevará bastante tiempo eliminar esos archivos; se espera una alta E/S durante ese tiempo.
Hay muchos consejos útiles sobre cómo eliminar muchísimos archivos en este artículo.rm-en-un-directorio-con-millones-de-archivos
Puede que el suyo no sea millones, pero será significativamente lento.
Respuesta3
Finalmente lo obtuve con las líneas de comando ftp. Usé "cmd" desde la ventana.
Primero necesito desactivar el mensaje con
prompt
Luego elimine con el siguiente comando
mdelete closecp.*
Respuesta4
Si puedes acceder por ssh al cuadro, puedes ejecutar algo como:
find /path/to/files -maxdepth 1 -name "closecp.*" -delete
Eso encontrará todos los archivos con nombres del formato "closecp.*" (como anotó) en el directorio /ruta/al/archivo (cambie esto para adaptarlo a su situación). La opción "-max Depth 1" evitará que el comando "buscar" busque en subdirectorios y solo buscará en /ruta/al/archivo.