Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Novellino cerca info

11 views
Skip to first unread message

Antonello Collini

unread,
May 12, 2012, 9:28:21 AM5/12/12
to
Da pochissimi giorni mi sto cimentando nell'apprendimento del Perl ( niente di professionale solo per divertimento ) e per cominciare ho voluto scrivere uno script che salvasse in file un elenco dei pacchetti rpm installati sul mio sistema, oltre ad una serie di informazioni relative al sistema stesso.

my $hostname = `hostname`;
my $cpu = `uname -m`;
my $date = `date +%d-%m-%Y`;
my $width = "=" x 60;

my %heading = (
"raw1" => "DATABASE OF UPDATED PACKAGES TO :\t",
"raw2" => "Pc_name :\t",
"raw3" => "System Type :\t",
"local_env" => [ "$date", "$hostname", "$cpu", "$width" ]
);

my $destdir = $ENV{HOME};

open (my $FILE, ">", "$destdir/" . "rpmdb-" . $heading{"local_env"}[1] . ".log")
or die $!;

print $FILE "$heading{raw1}" => "$heading{local_env}[0]\n";
print $FILE "$heading{raw2}" => "$heading{local_env}[1]";
print $FILE "$heading{raw3}" => "$heading{local_env}[2]";
print $FILE "$heading{local_env}[3]\n";

my $rpm_query = `rpm -qa --queryformat="%{name}\n" | sort`;

foreach my $package($rpm_query) {
print $FILE "$package\n";
}

close $FILE;

Inizialmente, avevo impostato alcune variabili di ambiente per recuperare determinate informazioni sul sistema, le quali funzionano correttamente quando lo script viene avviato nell'ambiente di login ma non quando invocato da cron,
ho immaginato quindi che non tutte le variabili sono disponibili in un ambiente diverso da quello dell'utente. In rete ho trovato un bel pò di discussioni al riguardo ma sinceramente non ho ben capito il metodo per risolvere il problema.
Grazie a chiunque voglia aiutarmi
0 new messages