Aller au menu - Aller au contenu

Exécuter un programme à une heure différée

Pour accéder à cette section
Connectez-vous !
connexion_rpx
Page 1 
Pseudo Commentaire
Page 1 
Hors ligne Keaulaim # Posté le 11/11/2008 à 16:20:28

Ville : St genis laval
Pays : France métropolitaine

Vraiment super comme chapitre. Moi qui cherchais depuis trois jours comment exécuter un script toutes les 30 minutes sans avoir à programmer un deamon ou un script compliqué. :)
Deux petits détails en revanche:
  • La commande at n'était pas installée sur mon système (sabayon). Pour ceux que ça interresse elle est dans les dépots (gentoo) sys-process/at
  • Deuxieme point, crontab ne voulais pas s'éxecuter en tant qu'utilisateur normal. Il faut donc si besoin est, faire un chown de /var/spool/cron/

Je donne les deux lignes de code pour un système type Gentoo(comme sabayon):
Code : Console
emerge -av sys-process/at

Code : Console
chown -R root.users /var/spool/cron


Pardon aux puristes pour lesquelles mes commandes ne serais pas très correctes

Et encore un grand merci à M@teo21 pour son cours. :D
Hors ligne grobs # Posté le 11/11/2008 à 16:52:48
Vivre c'est apprendre...
Avatar

"Exécuter un commande à une heure précise" => "Exécuter une commande à une heure précise" serait mieux ;)

Image utilisateur
Programmeur PHP - (x)HTML - CSS - SQL - C - ADA - JS - XML - Shell
 
Hors ligne python-guy # Posté le 11/11/2008 à 16:58:06
Vive archLinux.
Avatar

Citation
Pour le moment, at nous affiche un prompt pour nous demander la ou les commandes que nous souhaitons exécuter plus tard. C'est la méthode "classique" je dirais.

Il est possible de faire la même chose un peu plus rapidement à l'aide d'un pipe. Essayez ceci :

Code : Console
touch fichier.txt | at now +2 minutes


La commande touch ne sera pas exécutée tout de suite : elle est envoyée à "at" qui retient que vous souhaitez l'exécuter dans 2 minutes. C'est un exemple d'utilisation du pipe qui peut s'avérer bien pratique.


On parie ?
À moins que at soit une commande built-in au shell (et encore), cette commande enverra la sortie de touch à at.
Par contre, Code : Console
echo "touch fichier.txt" | at now +2 minutes

devrait mieux marcher.

Image utilisateur
 
Hors ligne Suyu # Posté le 11/11/2008 à 18:09:47
Are you still there?
Avatar

Études : ISEN Lille

Je n'ai pas encore tout lu, mais je m'empresse de poser deux questions si M@teo21 passe par ici :

- J'ai vu sur l'interface graphique (de GNOME en tout cas) qu'on peut synchroniser l'heure avec les serveurs sur internet. Est-ce possible en commande ? (car si on change la date avec date, bah on est plus synchronisé)
- Si on ferme la console, les commandes étudiées dans ce chapître continuent-elles de fonctionner, ou sont-elles solidaires du terminal en cours ? (je me sens très mauvais élève avec cette question)

Merci !! :)

Inactive user.

ArchLinux user.
Windows 7 Professional user ; only for games and studies if required.
 
Hors ligne M@teo21 # Posté le 11/11/2008 à 19:06:25
Amateur professionnel
Avatar
Admins
Flux RSS

Ville : Paris
Pays : France métropolitaine
Études : EFREI

En effet python-guy, je crois que j'ai craqué un peu sur le coup. J'ai viré l'explication, c'était préférable dans le cas présent.

grobs > corrigé merci. :)

Suyu > oui, le programme en question s'appelle ntpdate.
at et cron fonctionnent indépendamment du terminal en cours, ça me paraissait évident du coup je ne l'ai pas mentionné. Tu vas pas laisser ton terminal ouvert juste parce que t'as besoin qu'une commande s'exécute toutes les 30 minutes. ;)

Auteur de 5 livres : HTML5 - C - PHP - Linux - C++
L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai...
 
Hors ligne Suyu # Posté le 11/11/2008 à 20:38:17
Are you still there?
Avatar

Études : ISEN Lille

Bah je voulais être sûr, vu que les serveurs Linux tournent en permanance, et qu'on avait vu "nohup" le chapitre d'avant...
Merci beaucoup en tout cas !

Inactive user.

ArchLinux user.
Windows 7 Professional user ; only for games and studies if required.
 
Hors ligne wgmpgp # Posté le 12/11/2008 à 07:06:57
Rotoclap true fan
Avatar
Groupe : Bannis

Études : EPITA

La version en ligne ne semble pas up-to-date pour l'explication sur at et le pipe, l'erreur y est toujours présente.
 
Hors ligne overcrash_2008 # Posté le 12/11/2008 à 10:28:21
Avatar

Avis : Très bon

Ville : Kouba
Pays : Algérie

Génial le tuto !

Si seulement tu pouvais suivre linux avec des tutos administration serveurs pour les zéros !

EX: bien configurer son serveur ,apache,php en cas de surchauffe ment ce qu'il faut faire..

à part ça niquel ce tuto :D

Image utilisateur
 
Hors ligne Dhu # Posté le 12/11/2008 à 13:06:25
I accidentally...
Avatar

Ville : Grenoble
Pays : France métropolitaine
Études : BTS IRIS

Citation : tuto
Cela aura pour effet d'écrire cette ligne à la fin de votre fichier .bashrc situé dans votre répertoire personnel.
Fermez ensuite votre console et réouvrez-la pour que cette nouvelle configuration soit bien prise en compte.


Pour "recharger" la configuration du bashrc, la commande
Code : Console
. ~/.bashrc

marche aussi. ;)


Très bon tuto sinon, merci beaucoup :D

Je ne suis pas superstitieux, ça porte malheur.
Le groupe de rock grenoblois qu'il est bieng !
 
Hors ligne Aniem # Posté le 12/11/2008 à 14:34:59
Avatar

Études : Polytechnique

Petite question pour cron/at :
Si a la date où on a demandé a cron/at d'effectuer une action, linux ne tourne pas(ordi éteint, voire windows/mac, autre distrib qui tourne) comment réagit-il au prochain demarrage de linux?
Est-ce qu'il effectue l'action au demarrage (donc en retard) ou est-ce qu'il ne l'effectue pas du tout?

(je reconnais que j'ai pas essayé, mais dans tous les cas, je pense que ça serait bon de le préciser, je ne l'ai pas vu dans le tuto, et ça devrait servir à d'autres)
Hors ligne M@teo21 # Posté le 12/11/2008 à 17:45:07
Amateur professionnel
Avatar
Admins
Flux RSS

Ville : Paris
Pays : France métropolitaine
Études : EFREI

L'action ne s'exécute que si le PC est allumé. J'ai présenté ce chapitre dans l'optique où vous avez une machine qui est constamment allumée en fait, ce qui est le cas des serveurs notamment. Cron est surtout intéressant pour un serveur en pratique.

Auteur de 5 livres : HTML5 - C - PHP - Linux - C++
L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai...
 
Hors ligne kna # Posté le 12/11/2008 à 22:10:22
へへ
Avatar

Pour les PCs qui ne sont pas toujours allumés, il y a anacron

Sinon, en tout cas sur Debian & Co, il y a aussi une crontab système (/etc/crontab, dans laquelle il faut préciser l'utilisateur en plus de la commande) qui par défaut exécute tous les scripts placés dans /etc/cron.hourly /etc/cron.daily, /etc/cron.weekly, /etc/cron.monthly (ai-je besoin de préciser à quels intervalles ?).
Après, ce n'est peut-être pas le cas sur toutes les distribs...

La propriété intellectuelle n'a d'intérêt que lorsqu'elle porte mal son nom.
 
Hors ligne Hûrle # Posté le 13/11/2008 à 18:44:09
Avatar

Études : Lycée Jean-Baptiste Dumas - Alès

Salut,

Je pense que tu aurais pu parler des @reboot et les autres qui peuvent remplacer l'heure ;), ils sont bien pratiques.
Hors ligne Sylvain.sab # Posté le 15/11/2008 à 16:39:10
Protégez-vous!
Avatar

Salut M@teo. A mon avis, tu devrais te renseigner sur fcron : c'est l'outil le plus pratique que je connaisse dans la série des *cron, et il n'y a pas besoin que l'ordinateur soit allumé au moment ou la tâche doit être effectuée, puisqu'il se base sur plusieurs méthodes différentes.

Quelques liens :
http://fr.wikipedia.org/wiki/Fcron
http://doc.ubuntu-fr.org/fcron
http://fcron.free.fr/
http://fcron.free.fr/doc/fr/
http://fcron.free.fr/doc/fr/fcron.8.html
http://pwet.fr/man/linux/administration_systeme/fcron
http://linux.die.net/man/8/fcron

Sylvain
1Kilo-octet=1024 octets : erroné, mais toléré.
1Kilo-octet=1000 octets : juste.
1Kibioctet=1024 octets : juste.
 
Hors ligne yannn # Posté le 17/12/2008 à 21:56:23
Ah; bon!! il est où
Avatar

Bonjour
Comment exécuter un programme ou ouvrir un site à une heure précise automatiquement?

Et je regardai, et je vis apparaitre un cheval couleur pale, et son cavalier se nommait la Mort, et l'enfer le suivait...
 
Hors ligne Gargamel # Posté le 12/02/2009 à 19:17:26

bonjour,

Excellent tuto, comme d'hab, cependant j'aimerais savoir s'il est possible de lancer une application de manière "graphique" en passant par ligne de commande comme, par exemple : ouvrir un fichier texte ou bien lancer firefox (tout cela de manière différée bien entendu)?
J'ai essayé le code suivant :
Code : Console
$ at HH:MM
at> firefox

mais ça ne marche pas.
or,
Code : Console
$ firefox

ce code lance bien firefox.
Je ne comprend pas bien pourquoi? :o

Bon, voilà, j'espère infiniment que quelqu'un pourra me répondre!
tchao!

Il n'y a jamais de raccourcis vers les endroits qui en valent la peine.
Beverly Sills
 
Hors ligne mydjey # Posté le 27/03/2009 à 21:00:23
Avatar

Avis : Très bon

Comme d' hab Super tuto.
Merci de me permettre d'apprendre les commandes Linux simplement.
Quelle pédagogie; si seulement les profs en avaient autant.........


Par contre c'est pas trop dans l'habitude de M@téo de nous balancer une commande, comme ça sans nous l'expliquer echo il me semble que aucun chapitre ne l'aborde
Hors ligne darkrojo # Posté le 16/06/2009 à 18:35:44
/me FTW!
Avatar

Ville : Neuvillalais
Pays : France métropolitaine

M@teo une question vient de me venir à l'esprit. Je voudrait sauvegarder tout mon "home" chaque soir à minuit mais que ce passe-t-il si mon ordi n'est pas allumé à minuit ? Il attend le lendemain à la même heure ou il le fera dès que possible ? :o

libtermcolor | Couleurs dans votre terminal en C/C++ (UNIX)
 
Hors ligne Nootilus # Posté le 05/01/2010 à 22:32:25
Avatar
Flux RSS

Coucou !
Merci pour ces formidables tutos. Ca faisait longtemps que je cherchais une initiation à Nux aussi claire et didactique.

J'ai eu quelques soucis avec la commande at:
Code : Console
noot@noot-crunch:~$ at 21:55
warning: commands will be executed using /bin/sh
Cannot open lockfile /var/spool/cron/atjobs/.SEQ: No such file or directory


Après quelques recherches, j'ai trouvé un petit mode d'emploi pour corriger ça. Il faut tout simplement créer ledit fichier manquant. Il faut donc se rendre dans le répertoire en SU et faire un petit coup de touch :
Code : Console
noot@noot-crunch:~$ sudo su
root@noot-crunch:/home/noot# cd /var/spool/cron/atjobs/
root@noot-crunch:/var/spool/cron/atjobs# touch .SEQ


Il reste un truc à faire, donner au fichier les droits daemon, autrement vous aurez un "permission denied" parce qu'il appartient à root et non à daemon qui doit l'utiliser. Un petit coup de chown :
Code : Console
root@noot-crunch:/var/spool/cron/atjobs# chown daemon.daemon .SEQ


Vérifiez l'état du fichier :
Code : Console
root@noot-crunch:/var/spool/cron/atjobs# ls -al
total 8
drwxrwx--T 2 daemon daemon 4096 2010-01-05 22:08 .
drwxr-xr-x 5 root   root   4096 2009-06-30 12:53 ..
-rw-r--r-- 1 daemon daemon    0 2010-01-05 22:08 .SEQ


Et voilààà ! :)
Hors ligne Piotr2 # Posté le 15/03/2010 à 10:38:52
Avatar

Merci beaucoup pour ce tuto, qui s'inscrit dans ce merveilleux processus d'accouchement des consciences qui s'efforce de libérer les esprits des utilisateurs cloisonnés entre quatre fenêtres par lesquelles on entre sans pouvoir ressortir, afin de les exposer enfin à la lumière du soleil tricéphale de la liberté informatique!!! (vite ma ventoline)

Ouff, ça va mieux.

Sinon, petite question, est il possible via la crontab, de programmer l'execution de commandes necessitant le statut de root? En fait, je voudrais me programmer un apt-get update et un apt-get upgrade par semaine pour pas avoir à m'en occuper, mais si il faut que je sois devant ma machine pour rentrer mon mot de passe au moment de le faire, c'est pas trop interessant.

Si quelqu'un a une idée, c'est cool.

Sinon, ben que la force soit avec vous.
Hors ligne matris10 # Posté le 29/05/2010 à 02:23:00
Avatar

super tuto Mr.matèo merci

je cherche l'equivalent de atp sous fedora car cette cmd ne fonction pas sous la destribution fedora




ce crontab x'exécute même si après le redemarrage
Code : Console
* * * * * touch /home/: D/fichier.txt


pour l'arréter faut juste taper cronttab -e et modifier : P

mercI verry good tuto
Hors ligne vins.pol # Posté le 24/07/2010 à 12:09:15
Avatar

Avis : Très bon

Ville : Arzens
Pays : France métropolitaine
Études : IUT Toulouse 3

Tout d'abord très bon tuto !
Je souhaite signalé un petit point car maintenant dans les dernières versions de cron (sous ubuntu 10.04 par exemple) quand on lance la commande crontab -e pour la première fois il nous demande quel éditeur de texte cette commande va utiliser par défaut donc la petite partie de configuration pour l'éditeur de texte par défaut pour la console est devenu obsolète.
Hors ligne vapeurtox # Posté le 04/08/2010 à 11:01:28

Juste un petit défaut que j'ai pu rencontrer sur le chapitre de la crontab (étant débutant j'ai cherché un moment ^^) il n'est pas précisé qu'il faut avoir le paquet mailutils pour pouvoir faire fonctionner cron ainsi que le fichier cron.deny (vide pour donner droit à tous les utilisateurs d'avoir une crontab fonctionnelle ou un fichier cron.allow avec les noms des comptes ayant droit à une crontab) créé dans le répertoire /etc/.
Sinon ce tutoriel est très complet :)
Hors ligne indox # Posté le 09/10/2010 à 10:09:13

Études : IUT Villetaneuse

comment fait t'on pour lancer un lecteur audio a une heurre differée?
Hors ligne baronsed # Posté le 19/06/2011 à 12:58:55
Avatar

Une incohérence chez moi :euh: :
Code : Console
$ date +%Y
2011
$ date +%C
20
Pour accéder à cette section
Connectez-vous !
connexion_rpx