Old stuff/Perl/at/classique/at01.pl
(Deskargatu)
#!/usr/bin/perl -w
if (!$ARGV[0])
{
print "Syntaxe: ./at.pl heure:minute\n";
die "Pas de raison de continuer... \n\n";
}
print "Entrer les commandes (fin de saisi en entrant Quit)\n";
while (defined($recu = <STDIN>) and $recu !~ /^\s*?Quit\s*?$/i)
{
push (@a_faire,$recu);
}
print "Liste des commandes:\n";
foreach (@a_faire) { print "\t$_\n"; }
($heure,$minute) = split /:/,$ARGV[0];
($c_sec,$c_min,$c_heure) = localtime(time);
print "Il est $c_heure:$c_min\nLes programmes seront executes a $heure:$minute, soit une attante de ";
if ($minute < $c_min) { $minute += 60; $heure -=1; }
if ($heure < $c_heure) { $heure += 24; }
$sleep = (($heure-$c_heure)*60*60 + ($minute-$c_min)*60 +$c_sec-60);
print "$sleep secondes\n";
if ($pid = fork) { print "\nRuning background\n"; }
elsif(defined $pid)
{
select(undef,undef,undef,$sleep);
print "\nAT SCRIPT: ".scalar @a_faire." programme(s) a executer\n";
foreach (@a_faire) { print "[EXEC:] $_\n"; system($_); }
}