IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Crontab : ordre des lignes


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 163
    Par défaut Crontab : ordre des lignes
    Bonjour,
    novice sous linux, j'ai une question concernant la crontab...

    Peut on mettre des lignes en désordre chronologiquement parlant tout en étant certain que la crontab va les traiter dans un ordre chronologique ??

    Ex.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    0 10 8 4 * CommandeB
    0 9  8 4 * CommandeA
    Ma question est donc la suivante, la CommandeA s'executera bien avant la Commande B ????

    Existe t'il aussi une commande qui permettrait de réorganiser la crontab de façon à classer par ordre chronologique les lignes qu'elle contient ?

    D'avance merci.
    Fred

  2. #2
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Bonjour,

    Le service crond lit les tables toutes les minutes (à 00 secondes). Il faut savoir que la sélection de l'heure ne donne pas toujours un seul temps précis:

    • * est pour chaque minute
    • 1,3,5 est pour les minutes 01, 03, 05
    • 1-5 est pour les minutes 1, 2, 3, 4, 5

    Dans ces cas, difficile de placer une ligne avant l'autre!

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 163
    Par défaut
    donc dans mon exemple la commandeA (en 2ème ligne) s'executera bien avant la commandeB (en 1ère ligne) ?

    L'ordre d'exécution des tâches ne dépendra pas forcément de l'ordre des lignes.

  4. #4
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Tout-à-fait, le service crond prend la première ligne du fichier, vérifie si c'est le bon moment pour lancer la commande, lance ladite commande si c'est bon, puis passe à la ligne suivante et reprend le même traitement jusqu'à la dernière ligne. Pas besoin d'ordre chronologique. Chaque ligne est donc indépendante des autres.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 163
    Par défaut
    Encore une petite question.

    Si j'ajoute une ligne dans mon fichier crontab (via la commande sed ou >>)
    dois je arrêter et redémarrer le service crond (crond restart) pour que cette nouvelle ligne soit prise en compte ??

  6. #6
    Rédacteur
    Avatar de CedrX
    Inscrit en
    Avril 2007
    Messages
    1 111
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 111
    Par défaut
    Si j'ajoute une ligne dans mon fichier crontab (via la commande sed ou >>)
    dois je arrêter et redémarrer le service crond (crond restart) pour que cette nouvelle ligne soit prise en compte ??
    Le fichier /etc/crontab (si c'est bien celui dont tu parles) ne s'édite pas directement.
    Pour initialiser la crontab d'un utilisateur : (-e : comme édites pour le moyen mémo-technique)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 163
    Par défaut
    Là est mon problème.

    Sur le matériel que j'utilise (borne industrielle) la commande "crontab -e" déconne...
    Dès que je la lance je vois le contenu de la crontab mais un message d'erreur clignote en bas de page et je perds la main... (obligé de couper la connexion et de la redémarrer)

    Du coup j'édite le fichier "root" dans /var/spool/cron/crontabs qui est le fichier crontab de l'utilisateur root.

    C'est le seul moyen que j'ai de la modifier, et pour que les modifications soient prises en compte je dois procéder à un etc/init.d/crond restart.

    Est ce normal ? (d'arreter/redemarrer le crontab pour prendre en compte les modifs ?)

    Merci

  8. #8
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Bonjour,

    Je dois également éditer le fichier /var/spool/cron/root pour vérifier / forcer / retirer des services sur de nombreuses machines. Je ne peux me permettre d'éditer de manière interactive (crontab -e) la liste des tâches à exécuter sur chaque machine. Il me suffit de faire une modification dans ce fichier pour qu'elle soit prise en compte à la minute suivante. Il faut bien sûr que le service crond tourne. Donc pas besoin de redémarrer le service.

  9. #9
    Membre éprouvé Avatar de jean.2edi
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 106
    Par défaut
    Il me semble que certaines versions de crontab permettent de donner un nouveau fichier. Si vous ne voulez pas éditer de manière interactive le fichier de cron (crontab -e), vous pouvez :
    • copier le fichier crontab de votre utilisateur dans un fichier temporaire,
    • modifier le fichier temporaire,
    • renvoyer le fichier à cron par "crontab fichier" !

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 163
    Par défaut
    la modification de la crontab n'est pas un probleme en soit.
    Ce qui me surprend c'est que je doive redémarrer le service crond pour que ma modification soit prise en compte....

    ??

  11. #11
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    C'est effectivement étrange, intuitivement le daemon va lire le fichier chaque minute et l'interpréter. C'est ce fonctionnement sur RHEL/CentOS/SL 4 et 5.

    Quelle est ta distro?

  12. #12
    Membre éprouvé Avatar de jean.2edi
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 106
    Par défaut
    Les commandes "crontab -e" ou "crontab fichier" servent justement à signaler au daemon qu'il faut recharger le fichier. Il n'est pas recommandé de modifier le fichier dans /var directement !

  13. #13
    Rédacteur
    Avatar de CedrX
    Inscrit en
    Avril 2007
    Messages
    1 111
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 111
    Par défaut
    Oui effectivement la seule fois que j'avais essayé de modifier le fichier directement les modifications n'étaient pas prises en compte non plus, mais bon j'étais sous solaris.
    Je n'ai jamais tenté sous linux.

  14. #14
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Bon, effectivement: il semble préférable d'éditer un fichier puis de le passer à la commande crontab. Je ferai les modifications nécessaires pour mieux utiliser cette commande. Même si ce service semble voué à l'abandon grâce à upstart.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    163
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 163
    Par défaut
    Mon problème de crontab -e a été résolu.
    Suite à mise à jour du logiciel, le fournisseur a réglé mon problème !

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ordre des lignes dans sql server
    Par bobby51 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/06/2008, 16h11
  2. [RegEx] Changer ordre des lignes avec SQL et PHP
    Par kifouillou dans le forum Langage
    Réponses: 16
    Dernier message: 20/03/2008, 17h27
  3. Modifier ordre des lignes de JTable
    Par ALIAS200 dans le forum Composants
    Réponses: 12
    Dernier message: 31/05/2007, 22h16
  4. Snapshot log et ordre des lignes
    Par orafrance dans le forum Administration
    Réponses: 8
    Dernier message: 15/02/2007, 20h48
  5. l'ordre des lignes dans un Select
    Par comment_ca dans le forum Oracle
    Réponses: 15
    Dernier message: 05/10/2006, 12h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo