Título: Scritp Perl para borrar archivos
Publicado por: elecktra en 15 Agosto 2010, 21:16 pm
Estimados, como estan, hace tiempo encontre la forma de programar un script en Perl para realizar backup de una base de datos de mi web, el mismo es este: #!/usr/bin/perl use strict; print "Content-type: text/html\n\n"; print "Iniciando backup!\n\n"; print "Espere por favor...\n\n"; # CUENTA (Ej. cuenta: elserver.com) my $cuenta = "sitio.com"; # USUARIO DE MYSQL my $usuario = "usuario"; # PASSWORD DE MYSQL my $pass = "password"; # IP INTERNA DE MYSQL my $ip = "192.168.0.X"; # BASE DE MYSQL my $base = "base"; my $fecha = "$day-$month-$year"; system("/usr/local/mysql/bin/mysqldump $base -u $usuario --password='$pass' -h $ip > /www/$cuenta/mysql_backup/$cuenta-$fecha.sql"); print "Backup Finalizado!!!\n\n";
La verdad yo de pern no se nada, estoy interesado en hacer un scrip en que em borre lso backup con 1 mes de antiguedad en el servidor, creoq eu modificando ese mismo quizas se pueda. Espero em puedan ayudar. Gracias.
Título: Re: Scritp Perl para borrar archivos
Publicado por: ~ Yoya ~ en 15 Agosto 2010, 22:03 pm
toma la fecha actual del sistema local y compáralo con la ultima modificación del bakup, si tiene mas de un mes, ps la borra, si no no xD.
Título: Re: Scritp Perl para borrar archivos
Publicado por: elecktra en 15 Agosto 2010, 23:10 pm
Hola, gracias por al repsuesta Yoya, pero como hago eso, no se nada de Perl, me explcarias. Gracias.
Título: Re: Scritp Perl para borrar archivos
Publicado por: ~ Yoya ~ en 16 Agosto 2010, 05:21 am
Te voy comentando cada linea, si no sabes "NADA" de perl sera un problema xD. #!/usr/bin/perl use strict; my $directorio = '/home/yoya/Escritorio'; #Directorio my $dir = search_backup($directorio);#Almaceno los resultado de la funcion en la variable $dir my @archivos = split(" ",$dir);#Divido la cadena y los guardo en un arreglo foreach my $archivos(@archivos){#Recorro el arreglo my $path = $directorio."/".$archivos;#Path completo del archivo my $file_time = (stat($path))[9];#Obtengo la fecha de la ultima modificacion del archivo my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime($file_time); my ($sec1,$min1,$hour1,$mday1,$mon1,$year1,$wday1,$yda1y,$isdst1) = localtime(time); #Si el mes de la ultima modificacion es mayor que el mes actual y el dia de la creacion del archivo #es mayor al dia actual, se ejecuta el if if($mon1 > $mon && $mday1 >= $mday || $mon1 > $mon-1){ print "$path ah sido borrado\n"; unlink($path);#Se borra el backup con un mes de antiguedad }#Fin del if() }#Fin del bucle foreach() #Funcion para buscar archivos dentro de un directorio sub search_backup(){ opendir(DIR , $_[0]) || die "Error al abrir $_[0]\n";#Intentamos abrir el directorio my $result; while((my $archivos = readdir(DIR ))){#Leemos el directorio if($archivos !~ m/\.sql$/ig){#Si la extensión no es .sql se ejecuta el if next;#Pasamos al siguiente ciclo }#Fin del if $result .= "$archivos ";#Vamos agregando cada resultado de cada ciclo a la variable $result }#Fin del bucle while() return $result; #Retornamo los directorios }#Fin de la funcion
|