Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 26/07/2011, à 19:44

dureiken

Crontab et init.d

Bonjour,

je vous sollicite car je ne comprends pas pourquoi ce crontab ne fonctionne pas : les 2 premières lignes ne fonctionnent pas, les 2 dernières oui, avec le même utilisateur bien sur :

# m h  dom mon dow   command
00 06 * * * /etc/init.d/toto-Build save
10 06 * * * /etc/init.d/toto-Build carte
00 15 * * * rm -r /var/www/map
10 15 * * * mv /home/tutu/map /var/www/map

/etc/init.d/toto-Build save et carte marchent quand je les execute en ligne de commande avec cet utilisateur

Merci de votre aide !

Hors ligne

#2 Le 26/07/2011, à 21:17

Haleth

Re : Crontab et init.d

Montre les scripts qui ne se lancent pas, parcque la, ton crontab est correct


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#3 Le 26/07/2011, à 21:21

Cyrille_tux

Re : Crontab et init.d

Rien d'anormal dans le fichier /var/log/cron.log ?

Hors ligne

#4 Le 26/07/2011, à 21:35

dureiken

Re : Crontab et init.d

Merci de me répondre

le fichier /var/log/cron.log n'existe pas.

Et sinon je peux t'envoyer les scripts mais ils sont assez gros, du fait qu'ils se lancent en console manuelle je pensais qu'il n'y aurait pas de souci pour les lancer en cron

Hors ligne

#5 Le 26/07/2011, à 21:54

Cyrille_tux

Re : Crontab et init.d

Pour le fichier de LOG, regarde du côté de /var/log/syslog

Peux-tu faire un essai avec un autre script ?

Contenu du fichier debug par exemple

#!/bin/bash
touch /tmp/$1

Puis dans la crontab

00 06 * * * /etc/init.d/debug TEST

Et vérifier que le fichier TEST est créé dans le répertoire /tmp

Hors ligne

#6 Le 27/07/2011, à 06:35

dureiken

Re : Crontab et init.d

Hum,

dans le syslog :

Jul 27 06:00:01 ICreeper CRON[28908]: (creeperic) CMD (/etc/init.d/toto-Build save)
Jul 27 06:00:01 ICreeper postfix/sendmail[28917]: fatal: open /etc/postfix/main.cf: No such file or directory
Jul 27 06:10:02 ICreeper CRON[29782]: (creeperic) CMD (/etc/init.d/toto-Build carte)
Jul 27 06:10:02 ICreeper postfix/sendmail[29790]: fatal: open /etc/postfix/main.cf: No such file or directory

Et sinon ton test a marché avec le repertoire TEST

Hors ligne

#7 Le 27/07/2011, à 13:31

Haleth

Re : Crontab et init.d

Ben, ca me parait clair : il cherche un fichier qui n'existe pas
Etrange d'ailleur, il me semble que ce fichier est la conf principale de postfix


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#8 Le 27/07/2011, à 20:56

dureiken

Re : Crontab et init.d

Une idée de la solution ? smile

Hors ligne

#9 Le 27/07/2011, à 21:08

Cyrille_tux

Re : Crontab et init.d

- Le fichier main.cf existe t-il ?
- Il doit y avoir un problème avec le script que tu utilises. Peux-tu le poster ?

Hors ligne

#10 Le 28/07/2011, à 06:28

dureiken

Re : Crontab et init.d

Le fichier main.cf ,n'existe pas

Voici le script :

    #!/bin/bash
    # /etc/init.d/toto-Build
    # version 0.3.2 2011-01-27 (YYYY-MM-DD)    

      ### BEGIN INIT INFO
      # Provides:   toto
      # Required-Start: $local_fs $remote_fs
      # Required-Stop:  $local_fs $remote_fs
      # Should-Start:   $network
      # Should-Stop:    $network
      # Default-Start:  2 3 4 5
      # Default-Stop:   0 1 6
      # Short-Description:    Toto server
      # Description:    Starts the toto server
      ### END INIT INFO

    #Settings
    SERVICE='toto'
    USERNAME="creeperic"
    MCPATH='/home/toto-Build/'
    TECTONICUSPATH='/home/creeperic/tectonicus'

    ME=`whoami`
    as_user() {
      if [ "$ME" == "$USERNAME" ] ; then
        bash -c "$1"
      else
        su - $USERNAME -c "$1"
      fi
    }

    mc_start() {
      if ps ax | grep -v grep | grep -v -i SCREEN | grep -v -i tectonicus | grep $SERVICE > /dev/null
      then
        echo "$SERVICE est deja en fonctionnement !"
      else
        echo "$SERVICE n'etait pas en fonctionnment... Lancement du serveur."
        cd $MCPATH
        as_user "cd $MCPATH && screen -dmS toto-Build java -Xmx4096M -Xms4096M -jar toto_server.jar nogui"
        sleep 7
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
        then
          echo "$SERVICE est maintenant lancé."
        else
          echo "Impossible de demarrer $SERVICE."
        fi
      fi
    }


    mc_stop() {
            if ps ax | grep -v grep | grep -v -i SCREEN | grep -v -i tectonicus | grep $SERVICE > /dev/null
            then
                    echo "$SERVICE is running... stopping."
                    as_user "screen -p 0 -S toto-Build -X eval 'stuff \"say EXTINCTION DU SERVEUR DANS 10 SECONDES. SAUVEGARDE DE LA CARTE...\"\015'"
                    as_user "screen -p 0 -S toto-Build -X eval 'stuff \"save-all\"\015'"
                    sleep 10
                    as_user "screen -p 0 -S toto-Build -X eval 'stuff \"stop\"\015'"
                    sleep 7
            else
                    echo "$SERVICE n'etait pas en fonctionnement."
            fi
            if ps ax | grep -v grep | grep -v -i SCREEN | grep -v -i tectonicus | grep $SERVICE > /dev/null
            then
                    echo "$SERVICE n'a pas pu etre eteint... toujours en fonctionnement."
            else
                    echo "$SERVICE eteint."
            fi
    }

    mc_save() {
        if ps ax | grep -v grep | grep -v -i SCREEN | grep -v -i tectonicus | grep $SERVICE > /dev/null
        then
            echo "$SERVICE en marche, pas de sauvegarde."
        else
            echo "Lancement de la sauvegarde"
            as_user "cd $MCPATH && cp -r ICreeper /home/creeperic/`date "+%Y-%m-%d"`_ICreeper"
            sleep 20
            echo "Sauvegarde effectuee"
        fi
    }
    mc_carte() {
        if ps ax | grep -v grep | grep -v -i SCREEN | grep tectonicus > /dev/null
        then
            echo "Generation de carte en cours. Abandon du lancement d'une autre generation."
        else
            echo "Suppression de l'ancien repertoire ICreeper dans Tectonicus."
            as_user "rm -r $TECTONICUSPATH/ICreeper"
            sleep 30
            echo "Copie de la sauvegarde du jour dans Tectonicus."
            as_user "cd $MCPATH && cp -r /home/creeperic/`date "+%Y-%m-%d"`_ICreeper $TECTONICUSPATH/ICreeper"
            sleep 30
            echo "Lancement de la generation de la carte."
            as_user "cd $TECTONICUSPATH && ./tectonicus"
            sleep 30
            if ps ax | grep -v grep | grep -v -i SCREEN | grep tectonicus > /dev/null
                then
                    echo "Generation de la carte lancee"
                else
                    echo "Generation de la carte NON lancee"
                fi
        fi
    }    
    
    #Start-Stop here
    case "$1" in
      start)
        mc_start
        ;;
      stop)
        mc_stop
        ;;
      restart)
        mc_stop
        mc_start
        ;;
      save)
    mc_stop
    mc_save
    mc_start
        ;;
      carte)
        mc_carte
        ;;
      status)
        if ps ax | grep -v grep | grep -v -i SCREEN | grep $SERVICE > /dev/null
        then
          echo "$SERVICE is running."
        else
          echo "$SERVICE is not running."
        fi
        ;;

      *)
      echo "Usage: /etc/init.d/toto-Build {start|stop|save|status|carte|restart}"
      exit 1
      ;;
    esac

    exit 0

Merci smile

Hors ligne

#11 Le 30/07/2011, à 14:16

Cyrille_tux

Re : Crontab et init.d

Salut,

Si le système tente d'envoyer un mail (par l'intermédiaire de postfix) c'est qu'il a trouvé une erreur dans le script.

1° Installe postfix
2° Exécute le script via cron
3° Regarde dans les fichiers de log le message généré (/var/log/maillog ou un fichier dans ce genre)

Hors ligne

#12 Le 30/07/2011, à 15:17

jilucorg

Re : Crontab et init.d

Moi je tenterais d'abord ceci :

gksudo gedit /etc/crontab

y écrire :

MAILTO=""

ou mettre cette valeur "" à la place de ce qui y serait déjà.

parce qu'installer postfix pour recevoir les mails de cron, ça me paraît légèrement too much wink et les mails de cron n'ont aucun intérêt pratique.

EDIT: et d'ailleurs, que répond la commande

mail

?

Dernière modification par jilucorg (Le 30/07/2011, à 15:22)


  jiluc.
––
             Pour soutenir concrètement le logiciel libre : l'April !    http://www.april.org

Hors ligne

#13 Le 30/07/2011, à 16:44

Haleth

Re : Crontab et init.d

gksudo gedit /etc/crontab

Non


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#14 Le 30/07/2011, à 17:19

jilucorg

Re : Crontab et init.d

Et pourquoi donc cette sentence si décisive ? Peut-on avoir une bribe de justification ?
Ce fichier est prévu pour être édité, et il comporte au début des variables d'environnement :

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

J'aimerais bien un peu moins de laconisme et l'explication pour ce « Non » interdisant l'ajout d'une variable MAILTO="" (manip parfaitement homologuée, Google est ton ami si tu en doutes.)

Et même : man cron :

En plus de LOGNAME, HOME, et SHELL, cron(8) prendra en compte la variable MAILTO s'il doit envoyer le résultat d'une commande exécutée dans cette crontab. Si MAILTO est définie (et non vide), le résultat est envoyé à l'utilisateur indiqué. Si MAILTO est défini et vide (MAILTO=""), aucun courrier ne sera envoyé. Sinon, le courrier sera émis vers le propriétaire de la crontab.

Dernière modification par jilucorg (Le 30/07/2011, à 17:23)


  jiluc.
––
             Pour soutenir concrètement le logiciel libre : l'April !    http://www.april.org

Hors ligne

#15 Le 30/07/2011, à 17:49

Cyrille_tux

Re : Crontab et init.d

Salut Jilucorg,

J'évoquais l'installation de postfix car les fichiers de LOG y faisait référence.

fatal: open /etc/postfix/main.cf: No such file or directory

Après, si la variable MAILTO est suffisante, je n'y vois aucun inconvénient ! smile

Hors ligne

#16 Le 30/07/2011, à 18:11

jilucorg

Re : Crontab et init.d

J'en sais rien hein ! wink Juste que je sais que cron peut faire des erreurs quand il est contrarié dans son envoi de mails. Ma "solution" est un test pour ce problème (cron ne veut plus envoyer de mails), et est aisément réversible.

Ce qui m'intéresse d'abord – d'où ma demande –, c'est de savoir si mailutils est bien installé et ce que dit alors la simple commande mail (il faut normalement avoir mailutils pour que cron ne pose pas de problèmes, voir la doc) : si ça marche elle devrait présenter une série de mails de compte-rendu de cron.

[On espère que dureiken s'intéresse à son sujet.............]

Dernière modification par jilucorg (Le 30/07/2011, à 18:13)


  jiluc.
––
             Pour soutenir concrètement le logiciel libre : l'April !    http://www.april.org

Hors ligne

#17 Le 30/07/2011, à 20:31

Haleth

Re : Crontab et init.d

vi /etc/crontab
vim /etc/crontab
nano /etc/crontab

Mais

gksu gedit /etc/crontab

Non

C'est pas un conseil, mais une incitation au vice !


Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#18 Le 30/07/2011, à 21:08

jilucorg

Re : Crontab et init.d

Haleth a écrit :
vi /etc/crontab
vim /etc/crontab
nano /etc/crontab

-rw-r--r-- 1 root    root       724 2009-09-16 00:32 crontab

C'est quoi l'intérêt d'ouvrir crontab en lecture seule ? roll

Et si c'est l'éditeur qui te pose problème, pas assez roots, on peut faire aussi

sudo emacs /etc/crontab

Dernière modification par jilucorg (Le 30/07/2011, à 21:10)


  jiluc.
––
             Pour soutenir concrètement le logiciel libre : l'April !    http://www.april.org

Hors ligne

#19 Le 31/07/2011, à 23:05

dureiken

Re : Crontab et init.d

Bonjour, désolé j'étais en déplacement.

Bon alors j'ai installé mailutils comme dit dans un post. Lorsque je fais mail avec mon compte non admin (creeperic) j'ai ça :

creeperic@ICreeper:/home$ mail
Impossible d'ouvrir la boîte aux lettres /var/mail/creeperic: Permission non accordée
Pas de courrier pour creeperic

et en sudo mail :

dureiken@ICreeper:~$ sudo mail
Pas de courrier pour root

J'ai été regardé le fichier /var/log/mail.log :

Jul 31 22:56:02 ICreeper postfix/sendmail[10414]: fatal: open /etc/postfix/main.cf: No such file or directory
Jul 31 22:58:01 ICreeper postfix/sendmail[10628]: fatal: open /etc/postfix/main.cf: No such file or directory

et sudo emacs /etc/crontab donne :

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

Merci de vos réponses en tout cas

Hors ligne

#20 Le 31/07/2011, à 23:07

Haleth

Re : Crontab et init.d

aptitude install postfix

Ubuntu is an ancien African word which means "I can't configure Debian"

Because accessor & mutator are against encapsulation (one of OOP principles), good OOP-programmers do not use them. Obviously, procedural-devs do not. In fact, only ugly-devs are still using them.

Hors ligne

#21 Le 01/08/2011, à 07:25

dureiken

Re : Crontab et init.d

C'etait deja installe postix

Aucun paquet ne va être installé, mis à jour ou enlevé.
0 paquets mis à jour, 0 nouvellement installés, 0 à enlever et 9 non mis à  jour.
Il est nécessaire de télécharger 0o d'archives. Après dépaquetage, 0o seront utilisés.

Hors ligne

#22 Le 12/08/2011, à 19:37

dureiken

Re : Crontab et init.d

Un petit coup de pouce de retour de vacances ? smile

merci

Hors ligne

#23 Le 13/08/2011, à 09:30

Cyrille_tux

Re : Crontab et init.d

Salut,

- Postfix existe
- le fichier main.cf n'existe pas

==> Commence peut-être par réinstaller postfix.

Hors ligne