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 :

Créer un nouveau cron job via un script


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Par défaut Créer un nouveau cron job via un script
    Bonjour,
    Je souhaites ajouter un cron job par script à un utilisateur qui n'a jamais eu de crontab.
    1) Si l'utilisateur n'a jamais eu de crontab, le premier crontab -e demande de choisir un éditeur.
    Est-ce que cette demande risque de poser la question lors du déroulement de mon script ? Chose que je ne souhaites pas.

    2) Donc je souhaites mettre dans le crontab :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    # REBOOT
    # &> /dev/null OU >/dev/null 2>&1 permet d'éviter l'envoi automatique d'un mail de fin d’action par cron
    @reboot bash /home/toto/reboot.sh &> /dev/null
    Donc mettre dans mon script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    crontab <(crontab -l ; echo "# REBOOT")
    crontab <(crontab -l ; echo "# &> /dev/null OU >/dev/null 2>&1 permet d'éviter l'envoi automatique d'un mail de fin d’action par cron")
    crontab <(crontab -l ; echo "@reboot bash /home/toto/reboot.sh &> /dev/null")
    3) TESTS :
    Ca, ca ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    crontab <(crontab -l ; echo "# REBOOT")
    donne sans rien faire d'autre l'erreur :
    /dev/fd/63: Not a regular file
    Par contre, ca, ca semble marcher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (crontab -l ; echo "# REBOOT") 2>&1 | grep -v "no crontab" | uniq | crontab -
    (crontab -l ; echo "# &> /dev/null OU >/dev/null 2>&1 permet d'éviter l'envoi automatique d'un mail de fin d’action par cron") 2>&1 | grep -v "no crontab" | uniq | crontab -
    (crontab -l ; echo "@reboot bash /home/francis/reboot.sh &> /dev/null") 2>&1 | grep -v "no crontab" | uniq | crontab -
    Qu'en pensez-vous ?

    Comment traduire en français ce que cela fait ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (crontab -l ; echo "mon job") 2>&1 | grep -v "no crontab" | uniq | crontab -
    ********
    2>&1 : ?
    -v : "Invert the sense of matching, to select non-matching lines." ???
    grep -v "no crontab" : qu'est ce que cela veut dire, pourquoi ca marche avec ca ? je ne comprends pas la logique de cette portion ? Ce grep ne renvoie qu'un vrai ou faux ?
    uniq : ?
    crontab - ?
    ********
    D'avance merci pour votre aide éventuelle

  2. #2
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Bonjour

    L'utilisateur va supprimer ton travail que tu imposes dans son espace.
    Pourquoi ne pas remplir /etc/.profile si tu veux un script de connexion ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Par défaut
    En fait, il n'y a qu'un seul utilisateur, et c'est moi.
    D'autre part, le .profile je ne maitrise pas donc, j'y vais doucement...

    Tu as vu, j'ai fait des modifs dans mon précédent post !

  4. #4
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Comment traduire en français ce que cela fait ?
    "Cela fait n'importe quoi." ? Et encore, j'ai évité l'évocation d'un matériau peu valorisé.

    • Étouffer les messages d'erreurs est-il bien nécessaire ?
    • Créer un sous-processus par les parenthèses est-il nécessaire ? (Des accolades suffisent, non ? )
    • "uniq" travaille mieux sur un fichier trié. Ton crontab est-il trié ???


    Pour la signification, c'est clair. Sinon, utilise les pages "man".
    La seule chose un peu difficile est de savoir que le tiret de fin est le fichier sur l'entrée standard, donc celui transmis par la conduite (pipe).

  5. #5
    Membre confirmé
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Juillet 2020
    Messages
    175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2020
    Messages : 175
    Par défaut
    Donc pour ajouter proprement un cron job par script à un seul utilisateur en l'occurence moi, qui n'a jamais eu de crontab :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {crontab -l ; echo "@reboot bash /home/francis/reboot.sh &> /dev/null"} | grep -v "no crontab" | crontab -
    C'est bon ?

  6. #6
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 288
    Par défaut
    Il manque un espace après l'accolade ouvrante.
    Il manque un point virgule avant l'accolade fermante.
    (Ce sont des mots-clé. Ils doivent être reconnus.)

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

Discussions similaires

  1. cPanel, créer compte FTP avec paramètres via script PHP
    Par TheStarcraftx dans le forum Langages serveur
    Réponses: 0
    Dernier message: 01/08/2018, 22h03
  2. [PR-2010] Créer un nouveau projet via infopath
    Par Tomtomtvn dans le forum Project
    Réponses: 0
    Dernier message: 21/03/2013, 08h32
  3. [DI] lancement des jobs DI via des scripts Shell
    Par Invité dans le forum Outils BI
    Réponses: 5
    Dernier message: 07/07/2011, 13h53
  4. Réponses: 3
    Dernier message: 21/02/2011, 23h40

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