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

Administration système Discussion :

Cron et script sh sous debian


Sujet :

Administration système

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut Cron et script sh sous debian
    Bonjour,

    j'ai un script sh qui ressemble a ca :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/sh
    mysqldump --all-databases -u root -p****** > /home/vince/mysql_dump.sql
    cd /home/vince/
    tar -cvf mysql_dump.tar /home/vince/mysql_dump.sql
    gzip mysql_dump.tar
    ncftpput -u ftpadmin -p ****** -DD ***.***.***.*** /private/ /home/vince/mysql_dump.tar.gz
    Il fonctionne tres bien quand je le lance depuis la console..

    Je l'ai copié dans /etc/cron.daily/
    et activé le log de cron .. et redemarré cron..

    Mais ce script ne s'execute pas, malgré tout !
    Et le log ne dit rien du tout...

    Que faire, que controler ?

    Merci !

  2. #2
    Membre confirmé
    Avatar de bster
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2005
    Messages : 372
    Points : 497
    Points
    497
    Par défaut
    déjà cron ça marche pas comme ça.
    (officiellement)

    il ne s'edite que d'une et une seule façon :
    tu y ajoutes ton script

    0 0 * * * /chemin/tonscript
    n'oublies pas que crontab ne gére pas d'environnement et que c'est ton script qui doit s'en occuper ! utilises que des chemins complets dans tes scripts lancés par le crontab.

    si tu veux controler facilement ajoutes des controles d'execution à ton script et généres un fichier log.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    cat /dev/null > /tmp/backup.log
    ....
    #commande dump
    ....
    if [ $? -ne 0 ] ; then
       echo "erreur ($?) dans la commande dump " >> /tmp/backup.log
    fi
    #commande tar
    tar -cvf mysql_dump.tar /home/vince/mysql_dump.sql 2>> /tmp/backup.log
    if [ $? -ne 0 ] ; then
       echo "erreur ($?) dans la commande tar " >> /tmp/backup.log
    fi
    et ainsi de suite


    là tu auras dans le log les codes d'erreurs exactes et les retours sterr des commandes (messages d'erreurs textuels) et tu y verra enfin quelque chose.
    Comité de lutte contre le langage SMS sur les forums
    Veuillez écrire dans un langage compréhensible par les humains, merci.

  3. #3
    Expert confirmé
    Avatar de Katyucha
    Femme Profil pro
    DevUxSecScrumOps Full Stack Bullshit
    Inscrit en
    Mars 2004
    Messages
    3 287
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Irlande

    Informations professionnelles :
    Activité : DevUxSecScrumOps Full Stack Bullshit

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 287
    Points : 5 075
    Points
    5 075
    Par défaut
    Conseil numero 1 :
    Met les chemins complets pour mysqldump...etc

    Conseil numéro 2 :
    dans ta crontab

    [.... ]./monscript 1>/var/log/mon_log 2>&1


    voir : http://marcg.developpez.com/ksh/#L3.3
    Grave urgent !!!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut
    bon, dans le crontab, y'a ca, entre autres :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    37 6	* * *	root	test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily

    le "run-parts" indique que tous les scripts du dossier /etc/cron.daily seront executés, il me semble ?? donc pas besoin de rajouter le script dans le crontab ? meme si ca n'est pas super "officiel" ?

    Par contre pour rajouter la gestion des erreurs dans mon script, je suis preneur de l'info !
    je vais rajouter ca et voir ce que ca donne..

    et cette syntaxe veut dire quoi au juste ?

    merci du tuyeau [/quote]

  5. #5
    Membre confirmé
    Avatar de bster
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    372
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2005
    Messages : 372
    Points : 497
    Points
    497
    Par défaut
    Citation Envoyé par zevince
    bon, dans le crontab, y'a ca, entre autres :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    37 6	* * *	root	test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily

    le "run-parts" indique que tous les scripts du dossier /etc/cron.daily seront executés, il me semble ?? donc pas besoin de rajouter le script dans le crontab ? meme si ca n'est pas super "officiel" ?

    Par contre pour rajouter la gestion des erreurs dans mon script, je suis preneur de l'info !
    je vais rajouter ca et voir ce que ca donne..

    et cette syntaxe veut dire quoi au juste ?

    merci du tuyeau
    [/quote]

    toute version façon de faire non officielle est à proscrire à tout jamais, il y a des standards utilisez les (voyez ce que ça donne de pas les utiliser : windows plqntages et reboot toutes les 5minutes pour un oui ou un non le tout pendant des années)!

    2

    $? represente le status renvoyé au systeme par un programme

    il vaut 0 si il n'y a pas d'erreur.
    Comité de lutte contre le langage SMS sur les forums
    Veuillez écrire dans un langage compréhensible par les humains, merci.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    489
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 489
    Points : 388
    Points
    388
    Par défaut
    ok, ok...
    mais vu que debian utilise ce systeme, ca me parait pas si hors norme..
    Enfin, bref..
    j'ai rajouté ca dans mon crontab :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    10 16 * * * root /etc/cron.daily/save_all.sh 1>/tmp/backup.log 2>&1
    et modifié mon script ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #!/bin/sh
     
    cat /dev/null > /tmp/backup.log
     
    mysqldump --all-databases -u root -p****** > /home/vince/mysql_dump.sql
     
    if [ $? -ne 0 ] ; then
       echo "erreur ($?) dans la commande dump " >> /tmp/backup.log
    fi 
     
    cd /home/vince/
     
    tar -cvf /home/vince/mysql_dump.tar /home/vince/mysql_dump.sql
     
    if [ $? -ne 0 ] ; then
       echo "erreur ($?) dans la commande tar " >> /tmp/backup.log
    fi 
     
    gzip -f /home/vince/mysql_dump.tar
     
    if [ $? -ne 0 ] ; then
       echo "erreur ($?) dans la commande gzip " >> /tmp/backup.log
    fi 
     
    ncftpput -u ftpadmin -p ****** -DD -V ***.***.***.*** /private/ /home/zevince/mysql_dump.tar.gz
     
    if [ $? -ne 0 ] ; then
       echo "erreur ($?) dans la commande ncftpput " >> /tmp/backup.log
    fi
    et tout ce que me dit le backup.log c'est ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    tar: Removing leading '/' from member names
    /home/vince/mysql_dump.sql
    ah ben oui, la ca marche !

    je pense que le probleme etait au niveau du gzip.. j'avais oublié le -f...

    Merci !

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

Discussions similaires

  1. CRON sous DEBIAN: mes taches planifiées s'exécutent en avance
    Par DonF dans le forum Administration système
    Réponses: 9
    Dernier message: 20/07/2011, 12h00
  2. AIDE : script de sécurité sous Debian
    Par azou_gold dans le forum Sécurité
    Réponses: 3
    Dernier message: 01/02/2010, 20h30
  3. Problème de cron sous Debian
    Par ideal dans le forum Administration système
    Réponses: 2
    Dernier message: 16/06/2006, 17h55
  4. Réponses: 6
    Dernier message: 16/01/2006, 15h24
  5. [Install] Problème de lancement sous debian sid
    Par SoaR245 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 18/02/2004, 10h01

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