Antonello Collini
unread,May 12, 2012, 9:28:21 AM5/12/12You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
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