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
Comentarios recientes