Comment exécuter un script à un moment précis, comme chaque samedi?

Sous le système unix ..

Je veux lancer un script perl A.pl tous les samedis. J’ai essayé le code ci-dessous, ça marche. Mais je me demande s’il existe un autre code qui peut fonctionner, mais ne continue pas à vérifier l’heure dans une boucle occupée?

while(1) { @Time = localtime(); if( $Time[6] eq "6" ) { `perl A.pl`; } } 

Mettez-le en crontab comme suit:

 0 0 * * 6 /path/to/perl A.pl 

C’est, bien sûr, en supposant que vous êtes sur Unix. Je n’ai aucune idée de Windows.

Sous Unix, exécuter des programmes périodiquement est le travail de cron . Les utilisateurs peuvent modifier leurs tâches dans la crontab à l’aide de la commande crontab -e (définissez votre variable d’environnement EDITOR sur votre éditeur favori).

Le format de la crontab est décrit dans crontab (5) que vous lisez avec

  man 5 crontab 

La méthode la plus courante pour les nouveaux utilisateurs de cron est que les tâches cron sont exécutées avec un environnement minimal. même PATH n’est pas exporté, vous devez donc définir PATH dans votre programme.

Alors, où va la sortie de votre programme? Toute sortie sur stdout ou stderr sera envoyée à votre compte. Si vous le souhaitez ailleurs, votre ligne crontab doit redirect la sortie, par exemple avec une entrée crontab comme celle-ci (note: syntaxe sh, pas la syntaxe csh!):

 # Quarter past 8 on Saturdays. 15 20 * * 6 /home/user/bin/A.pl >/home/user/A.stdout 2>/home/user/A.stderr 

Si vous utilisez un système Unix / Linux, vous pouvez placer votre script A.pl dans la crontab.