#!/usr/bin/perl use warnings; use strict; use Schedule::Cron; my @cronjobs; push(@cronjobs, { timespec => "* 8 * * Mon-Fri 0-40/10", name => "job1", subroutine => \&go_job1 } ); #push(@cronjobs, { timespec => "* 7 * * Mon-Fri 0-40/10", name => "job2", subroutine => \&go_job2 } ); #push(@cronjobs, { timespec => "35 7 * * Mon-Fri", name => "job3", subroutine => \&go_job3 } ); # jede Minute wird die die aktuelle zeit in last_online.txt geschrieben my $cron = new Schedule::Cron(\&last_on); $cron->add_entry("* * * * *"); foreach(@cronjobs){ #$cron->add_entry( $_->{timespec}, \&go_job3 ); $cron->add_entry( $_->{timespec}, \&{$_->{subroutine}}($_->{name}) ); } $cron->run(nofork => 0); sub go_job1{ print shift."\n"; system("notepad.exe"); last_on(); } sub go_job2{ print shift."\n"; system("calc.exe"); last_on(); } sub go_job3{ print shift."\n"; system("calc.exe"); last_on(); } sub get_time_now{ my ($Sekunden, $Minuten, $Stunden, $Monatstag, $Monat, $Jahr, $Wochentag, $Jahrestag, $Sommerzeit) = localtime(); if($Stunden < 10){ $Stunden = "0".$Stunden; } if($Minuten < 10){ $Minuten = "0".$Minuten; } if($Sekunden < 10){ $Sekunden = "0".$Sekunden; } $Jahr += 1900; if($Monat == 12){ $Monat = 1; } else{ $Monat++; } if($Monatstag < 10){ $Monatstag = "0".$Monatstag; } if($Monat < 10){ $Monat = "0".$Monat; } return $Monatstag.".".$Monat.".".$Jahr." ".$Stunden.":".$Minuten.":".$Sekunden; } sub last_on{ open FH, ">C:\\perl_schedule\\last_online.txt" or die ("Fehler beim schreiben $!"); print FH get_time_now(); close FH; }