#!/usr/bin/perl -w
#
# Descarga ficheros de una determinada url. El objetivo de este script es
# descargar los paquetes publicados en los espejos de CentOS haciendo uso de los
# comandos yum, yumdownloader (paquete yum-utils) y wget.
#
# Para el correcto funcionamiento de este script es necesario que estos
# programas esten instalados y configurados correctamente en el sistema. Es
# necesario ademas que los repositorios de los cuales se descargaran los
# paquetes esten correctamente configurados y habilitados.
#
# ATENCION: Los paquetes descargados seran las actualizaciones para la ultima
# version mayor de CentOS publicada. Esto puede ser cambiado en la variable $Url.
#
# Esto es software libre, puedes cambiarlo y compartirlo con tus amigos sin
# ninguna limitante. Solo tu eres responsable del uso de este script. Deseo que
# te sea util pero no me hago responsable si en un momento deja de funcionar.
#
# Marzo 21 del 2007
# Laboratorio 4 de la Facultad de Ciencias Medicas de Cienfuegos, Cuba.
# Alain Reguera Delgado <alain.reguera@gmail.com>
# Especifica algunas varibles.
my $Url = "http://mirror.centos.org/centos/7/updates/x86_64/Packages/";
my $Sourcefile = "updates.html";
# Verifica el directorio donde se almacenaran los paquetes.
my $Rpmdir = "./RPMS";
if ( ! -d $Rpmdir ) {
print "Creando directorio $Rpmdir ...\n";
mkdir $Rpmdir;
}
# Recupera fichero con las urls de los paquetes a descargar.
print "Actualizando $Sourcefile ... \n";
system "/usr/bin/wget $Url -O $Sourcefile";
# Parsea el fichero $Sourcefile
# Limpia y deja solamente el nombre de los paquetes.
open FILE,$Sourcefile;
while (readline FILE ) {
next if ! /\.rpm/;
$_ =~ s/^<img.+\.rpm\">//;
$_ =~ s/\.rpm<.*$//;
$_ =~ s/\n$//;
push @Paquetes,$_;
}
close FILE;
# Descarga paquetes
print "Descargando Paquetes ...\n";
foreach (@Paquetes) {
system "/usr/bin/yumdownloader --destdir=$Rpmdir $_";
}
__END__