script principales por para nombre mput mget los listar enviar describa comandos bat archivos unix ftp automation shell backup

unix - por - nombre y describa los principales comandos ftp



FTP: solo desea guardar los Ășltimos 10 archivos: eliminar LRU (4)

He creado un script de shell para hacer una copia de seguridad de mi archivo web + volcado de base de datos, ponerlo en un archivo tar y FTP fuera del sitio. Me gustaría ejecutarlo X veces por semana, pero solo quiero mantener las últimas 10 copias de seguridad en el sitio FTP.

¿Cómo puedo hacer esto mejor? ¿Debo hacer este trabajo en el lado del script de shell, o hay un comando de FTP para verificar las últimas modificaciones y las cosas de administración de esa manera?

Cualquier consejo sería apreciado.

Gracias,


Una forma de hacer algo como esto sería usar el día de la semana en el nombre del archivo:

  • backup-mon.tgz
  • backup-tue.tgz
  • etc.

Luego, cuando realice la copia de seguridad, eliminará o sobrescribirá el archivo de copia de seguridad para el día actual de la semana.

(Por supuesto, de esta manera solo obtienes los últimos 7 archivos, pero es un método bastante simple)


¿Tiene acceso de shell al servidor FTP? Si es así, estoy seguro de que podría escribir un script para hacer esto, y programar un trabajo cron para realizar la limpieza periódica.

Aquí hay algo que debería funcionar:

num_files_to_keep=10 i=0 for file in `ls -tr`; do if [ $i -ge $num_files_to_keep ]; then rm $file; fi; i=`expr $i + 1`; done


find . /! -newer `ls -t|head -n 10|tail -n 1`

Desafortunadamente, si se ejecuta cuando hay menos de 10 archivos, elimina el archivo más antiguo en cada ejecución (porque! -newer tests para "más viejo o igual" insead de "estrictamente más antiguo" - esto se puede remediar comprobando primero:

[ `ls|wc -l` -gt 10 ] && find . /! -newer `ls -t|head -n 10|tail -n 1`


Si vas por el camino del shell, prueba esto:

find /your-path/ -mtime +7 -type f -exec rm -rf {} /;

Esto eliminaría todo lo anterior a una fecha determinada (en este caso, 7 días). Puede ser más relevante según si necesita mantener copias de seguridad múltiples por un día. Por ejemplo, ayer hice diez revisiones del mismo sitio web.