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 et montages mount.cifs qui ne se font pas


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
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Novembre 2015
    Messages : 74
    Par défaut crontab et montages mount.cifs qui ne se font pas
    Bonjour,

    J'ai créé un script shell qui fonctionne bien si je l'exécute directement via le prompt sous root :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    # génération du fichier d'inventaire linux
    cd /opt/outil-inventory
    ./outil.inventory.toolsinv -c InvScan_LINUX.xml -m mapping.xml -o /data/inventory/ -debug 1
     
    # montage du répertoire windows pour y envoyer les inventaires
    mount.cifs //serveur/Inv$ /mnt/inv -o rw,credentials=/root/inventory/secret.txt
     
    # déplacement du fichier d'inventaire
    mv /data/inventory/ScanFile*.xml /mnt/inv
     
    # suppression du point de montage
    umount /mnt/inv
    j'ai en suite appelé ce script dans crontab (crontab -e sous root).
    En faisant grep CRON /var/log/syslog je vois bien que le crontab lance le script et créé mon fichier xml d'inventaire, puis ne voyant pas la mise à jour quotidienne (scheduling du script à 22h chaque soir), je me dis que le fichier n'arrive pas sur le serveur windows.

    J'ai donc testé de commenter tout dans mon script puis de décommenter une à une les lignes et je constate que la commande mount.cifs ne se fait pas
    Une idée de comment forcer ceci sans que je doive laisser le montage de mon serveur windows tout le temps en place (40 serveurs linux doivent y envoyer leur inventaire) ?

    les logs de syslog ne remontent pas la moindre erreur donc je ne sais pas où chercher.
    merci par avance pour votre aide

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par yakalelo57 Voir le message
    Une idée de comment forcer ceci sans que je doive laisser le montage de mon serveur windows tout le temps en place (40 serveurs linux doivent y envoyer leur inventaire) ?
    Tu ne voudrais pas plutôt rajouter une évaluation de "$?" juste après le mount pour que ce dernier te dise lui-même ce qui cloche?

    Citation Envoyé par yakalelo57 Voir le message
    les logs de syslog ne remontent pas la moindre erreur donc je ne sais pas où chercher.
    En général, le cron te renvoie un mail. Donc en te connectant sous root et en tapant mail tu peux récupérer le résultat du script tel qu'il s'est déroulé.
    Tu peux aussi demander au cron de rediriger la sortie du script vers un fichier de ton choix. Pense aussi à la sortie des erreurs...

    PS: c'est normal ce "$" au nom du serveur //serveur/Inv$? C'est vraiment son nom?
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Novembre 2015
    Messages : 74
    Par défaut
    merci pour ce retour

    je suis un peu novice dans l'exploitation des logs alors je viens de vérifier comment retourner les sorties vers des fichiers et j'ai trouvé ceci en sortie erreur 2> :

    /data/scripts/inventory.sh: ligne 8: mount.cifs : commande introuvable
    donc la commande n'est pas reconnue par exécution crontab. Comment peut-on y remédier ?

  4. #4
    Membre confirmé
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2015
    Messages
    74
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Moselle (Lorraine)

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

    Informations forums :
    Inscription : Novembre 2015
    Messages : 74
    Par défaut
    je viens de trouver sur un forum allemand un admin qui a solutionné le problème :

    # mount Windows share
    /sbin/mount.cifs //192.168.1.28/Backup /data/backup/ -o user=<user>,password=<password>

    /bin/umount /data/backup

    en gros il ne faut pas directement exécuter la commande mount.cifs mais indiquer le chemin complet pour y accéder dans /sbin
    idem pour démonter la ressource via /bin

    le sujet est résolu

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 102
    Par défaut
    Citation Envoyé par yakalelo57 Voir le message
    en gros il ne faut pas directement exécuter la commande mount.cifs mais indiquer le chemin complet pour y accéder dans /sbin
    Ben oui, c'est 90% des problèmes de cron où la commande marche quand elle est lancée à la main, mais pas lorsque la commande est lancée par le cron daemon.

    La plupart du temps, il faut et il suffit de mettre le chemin complet des commandes car le $PATH (à l'intérieur du cron) est très rudimentaire.

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par yakalelo57 Voir le message
    donc la commande n'est pas reconnue par exécution crontab. Comment peut-on y remédier ?
    D'après ce que tu as dit, elle fonctionne quand tu l'exécutes à la main. Alors tape la commande suivante which mount.cifs. Ca te répondra un truc style "/usr/bin/mount.cifs" (peut-être pas exactement le même chemin mais j'espère que tu saisis l'idée). Mémorise le dossier nommé (ici c'est "/usr/bin").

    Ensuite tape echo $PATH. Ca te répondra une liste de chemins séparés par ":" (exemple "/root/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/bin"). Vérifie que le chemin que tu as mémorisé (ici "/usr/bin") s'y trouve bien (en fait c'est juste une précaution, il est forcé de s'y trouver sinon la commande ne fonctionnerait pas mais ça te forme à cette recherche). Dans mon exemple elle se trouve en dernière position ("/root/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/bin"). Peu importe la position (première, dernière), l'important c'est qu'elle y soit.

    Ensuite, elle n'est pas trouvée par le cron. Ca veut dire que le PATH du cron ne contient pas ce chemin. Il te suffit de rajouter dans ton crontab la ligne PATH="$PATH:/usr/bin" (enfin moi j'ai mis "/usr/bin" car c'est le cas de mon exemple mais à toi d'adapter par rapport à ton propre résultat de which mount.cifs) et le cron saura où aller chercher cette fameuse commande "mount.cifs".
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  7. #7
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 134
    Par défaut
    Bonjour,

    Les commandes exécutées par cron se font en dehors de tout profil utilisateur, en particulier sans connaître les PATH qui peuvent y être définis.
    Il est donc indispensable lors de tout appel d'une commande depuis le crontab de spécifier le chemin complet d'accès à celle-ci.

    C'est peut-être l’origine de l'erreur.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 11/05/2023, 11h39
  2. Montage smb/cifs
    Par big1 dans le forum Réseau
    Réponses: 7
    Dernier message: 25/02/2009, 09h09
  3. Problème ou blocage du montage (mount)
    Par SkyDev dans le forum Administration système
    Réponses: 3
    Dernier message: 06/11/2006, 13h35
  4. [Delete] Successions de delete qui ne se font pas
    Par GLDavid dans le forum Requêtes
    Réponses: 9
    Dernier message: 24/08/2006, 16h16
  5. Montage cle USB qui veut plus marcher
    Par pierabobl dans le forum Matériel
    Réponses: 10
    Dernier message: 07/06/2006, 14h09

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