Thursday, December 20, 2012

Script: Como borrar archivos de diferentes directorios mas viejos de cierta fecha.

Este script es sencillo pero muy útil. Para ahorrar espacio en el servidor necesito borrar todos los archivos de hace más de 3 dias en diferentes directorios, diariamente.

Este script me permite hacer esto automáticamente.


#!/bin/bash
PATHS="/path/to/dir1 /path/to/dir2 /path/to/dir3" 
find $PATHS -mtime +3 -ls -exec rm {} \; 

En la variable $PATH ponemos todos los directorios que deseamos limpiar separados por un espacio. Luego el comando find se encargara de ir directorio por directorio listando (-ls) todos los archivos mayores de tres dias (-mtime +3). El resultado de ese ls (los nombres de nuestros archivos) serán eliminados por -exec rm{}.

Puedes modificar el tiempo de acuerdo a tu necesidad, por ejemplo -mtime +0 eliminaria todos los archivos que no sean del dia corriente.

Wednesday, December 12, 2012

Script: Automatizar envio de archivos por FTP

"Si tienes que hacer una tarea más de una vez, haz un script".  

Aqui verás un ejemplo de Shell Script que envía por FTP todos los archivos del día de hoy  encontrados en una carpeta en específico.

#!/bin/sh

#IP donde te quieres conectar
HOST='192.168.0.10'

#Usuario de conexion
USER='ftpuser'

#Contrasena del usuario
PASSWD='ftppass'

#Path donde quieres buscar los archivos
PATH='/home/ftpuser/reports'

#Path donde los depositaras
DESTINATION='/destinationserver/destinationfolder'


#Busca todos los archivos en $PATH donde la fecha de modificacion (-ctime) sea# 0 = hoy. Por cada archivo que encuentres (while read LINE).
#Conectate al host y deposita el archivo (put $LINE)

find $PATH -type f -ctime 0 | while read LINE  
do
        ftp -n $HOST <<END_SCRIPT
        quote USER $USER
        quote PASS $PASSWD
        cd $DESTINATION
        put $LINE
        quit
END_SCRIPT
done
Recuerda ajustar los niveles de seguridad del script de acuerdo a tu necesidad y ponerlo en tu crontab.