Escribir un aplicativo Perl que realice el respaldo de los archivos que contienen programas Perl ubicados en un directorio particular (entregado por el usuario) hacia un directorio diferente también entregado por el usuario. Considere que los archivos que contienen código Perl siempre comienzan con las siguientes líneas y tienen la extensión .pl:
#!/usr/bin/perl
#file <nombre del archivo>
El programa debe verificar las siguientes condiciones y operar correctamente en cada caso:
- El directorio de programas a respaldar y el directorio de respaldo no deben coincidir y el directorio de respaldo puede ser usado varias veces, es decir, podría existir al momento de iniciar un respaldo nuevo y tener contenido.
- Los nombres de los archivos respaldados deben tener como prefijo la fecha del respaldo y la hora de respaldo, es decir, si un archivo llamado programa4.cl se respalda el 26 de abril del 2012 a las 18:45 horas, el nombre de la copia de respaldo debe ser del estilo 20120426.1845.programa4.pl.
El programa debe mostrar los siguientes resultados en forma ordenada al finalizar la tarea de respaldo.
- Listado de archivos respaldados (ruta del archivo, tamaño)
- Cantidad total de archivos respaldados.
- Tamaño total de archivos respaldados
El código que estoy realizando es el siguiente:
Using perl Syntax Highlighting
- #!/usr/bin/perl
- Printf "\t Respaldo de Archivos \t\n\n" my ( $p, $archivo, $dirperl, $line1, $line2 );
- printf "directorio a respaldar:\n";
- $dirpelr = <STDIN>;
- chomp($dirperl);
- system("find $dirperl -name *.pl > txt.txt");
- open( INFILE, "txt.txt" );
- while (<INFILE>) {
- $p = rindex( $_, "/" );
- $archivo = substr( $_, $p + 1 );
- $line1 = 'head -n1 $_';
- if ( $line1 == "!/usr/bin/perl" ) {
- $line2 = `head -n2 $_ | tail -n1`;
- if ($line2=="FILE:$archivo"){
- printf $_;
- }
- }
- }
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4