¿Cómo eliminar archivos masivos vía ftp o ssh?

¿Cómo eliminar archivos masivos vía ftp o ssh?

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.

información relacionada