Inicio > Sin categoría > Echando código: ¿Como me bajo los ISO de RedHat por Internet?

Echando código: ¿Como me bajo los ISO de RedHat por Internet?

Domingo, 20 de febrero de 2005

Tengo el siguiente problema: RedHat sacó la actualización de su sistema operativo, RedHat WS4 y me quiero bajar las imagenes ISO; Pero son como 7 y el comando (según ellos) para bajarmelas es el siguiente:

[user@localhost home]$ curl -C – -o ‘myfilename.iso’ ‘very_long_url’

¿Fastidioso, no? Me voy a aprovechar esta vez de el poder de Perl para hacer un script en 10 minutos, el cual se baje las imagenes y me mande un correo una vez que termine. Usando un arreglo asociativo (Hash) en Perl y el módulo ‘Net::SMTP’ resuelvo el asunto:

   1:#!/usr/bin/perl   2:use Net::SMTP;   3:use strict;   4:my $curl = '/usr/bin/curl';   5:my %download_info = (   6:        'RHEL4-i386-WS-disc1.iso' =>   7:        'http://download-2.rhn.redhat.com/download/ak/rhn/isos/rhel4/rhel-i386-ws-4/RHEL4-i386-WS-disc1.iso?auth=%2X%DDD',   8:        'RHEL4-i386-WS-disc2.iso' =>   9:        'http://download-2.rhn.redhat.com/download/ak/rhn/isos/rhel4/rhel-i386-ws-4/RHEL4-i386-WS-disc2.iso?auth=%2X%DDD',  10:        'RHEL4-i386-WS-disc3.iso' =>  11:        'http://download-2.rhn.redhat.com/download/ak/rhn/isos/rhel4/rhel-i386-ws-4/RHEL4-i386-WS-disc3.iso?auth=%2X%DDD',  12:        'RHEL4-i386-WS-disc4.iso' =>  13:        'http://download-2.rhn.redhat.com/download/ak/rhn/isos/rhel4/rhel-i386-ws-4/RHEL4-i386-WS-disc4.iso?auth=%2X%DDD',  14:        'RHEL4-i386-source-disc1.iso' =>  15:        'https://download.rhn.redhat.com/download/X/%2X%DDD/YYY/10910/rhn/isos/rhel4/rhel-i386-ws-4/RHEL4-i386-source-disc1.iso',  16:        'RHEL4-i386-source-disc2.iso' =>  17:        'https://download.rhn.redhat.com/download/X/%2X%DDD/YYY/10911/rhn/isos/rhel4/rhel-i386-ws-4/RHEL4-i386-source-disc2.iso',  18:        'RHEL4-i386-source-disc3.iso' =>  19:        'https://download.rhn.redhat.com/download/X/%2X%DDD/YYY/10912/rhn/isos/rhel4/rhel-i386-ws-4/RHEL4-i386-source-disc3.iso',  20:        'RHEL4-i386-source-disc4.iso' =>  21:        'https://download.rhn.redhat.com/download/X/%2X%DDD/YYY/10913/rhn/isos/rhel4/rhel-i386-ws-4/RHEL4-i386-source-disc4.iso',  22:        'RHEL4-docs-dvd.iso' =>  23:        'https://download.rhn.redhat.com/download/X/%2X%DDD/YYY/10914/rhn/isos/rhel4/rhel-i386-ws-4/RHEL4-docs-dvd.iso',  24:);  25:my $status;  26:foreach my $iso (keys %download_info) {  27:        printf "Processing ISO: %s\n", $iso;  28:        `$curl -C - -o '$iso' '$download_info{$iso}'`;  29:        if ($? != 0) {  30:                $status .= "OK: $iso\n"  31:        } else {  32:                $status .= "FAILED: $iso\n"  33:  34:        }  35:}  36:my $smtp = Net::SMTP->new(  37:        'mail.domain.com',  38:        Hello => 'domain.com',  39:        Timeout => 30,  40:        Debug   => 0,  41:);  42:$smtp->mail('me@domain.com');  43:$smtp->to('me@domain.com');  44:$smtp->data();  45:$smtp->datasend("To:   me\@domain.com\n");  46:$smtp->datasend("Subject: Download of software!\n");  47:$smtp->datasend("\n");  48:$smtp->datasend($status);  49:$smtp->dataend();  50:$smtp->quit;

Y aquí está un ejemplo de como corre el programa:

[root@XXXX ws4]# ./download.plx
Processing ISO: RHEL4-i386-WS-disc1.iso
% Total % Received % Xferd Average Speed Time Curr.
Dload Upload Total Current Left Speed
39 147M 39 57.9M 0 0 77709 0 0:33:09 0:13:01 0:20:07 47949

Así que esto le dará un par de ideas de como invirtiendo 10 minutos, ¡usted se puede ahorrar 60! :)

Sin categoría

  1. Sin comentarios aún.
  1. Sin trackbacks aún.