Problème avec cron
Résolu
zatox
Messages postés
640
Date d'inscription
Statut
Membre
Dernière intervention
-
zatox Messages postés 640 Date d'inscription Statut Membre Dernière intervention -
zatox Messages postés 640 Date d'inscription Statut Membre Dernière intervention -
Bonjour, j'ai un script qui se nomme t_save_doc_mga5-sda_vers_mga5-sdb.sh
voici ce qu'il contient entre les 2 lignes d'*:
J'appelle donc un autre script par la commande source, ce script s'appelle 0_ip.sh et il contient entre les lignes de ù
Quand je lance le script t_save_doc_mga5-sda_vers_mga5-sdb.sh en console root, pas de problème ça marche voici ce que contient le fichier log:
Donc tout se passe bien et je récupère ce que je voulais c'est à dre la valeur de IP.
Le problème c'est que quand je lance ce même script t_save_doc_mga5-sda_vers_mga5-sdb.sh par cron en root, ça ne marche pas, il semble que la commande "source" n'est pas activée voici ce que j'ai dons mon fichier log:
Pourtant tous les éléments à savoir les 2 script sh et le fichier .txt ont un chmod 755 !!!!
Est-ce que quelqu'un aurait une idée, ça m'arrangerait beaucoup que ça puisse fonctionner à partir de cron en root.
Merci pour votre aide.
voici ce qu'il contient entre les 2 lignes d'*:
#! /bin/bash log="/home/robert/Bureau/log.txt" echo "DANS t_save_doc_mga5-sda_vers_mga5-sdb.sh" >> $log IP="0" FICHIERSH=$0 if [ ${0:0:29} = "/home/robert/zzz_sauvegardes/" ];then FICHIERSH=${0:27:40} fi source 0_ip.sh $FICHIERSH echo "IP = " $IP >> $log
J'appelle donc un autre script par la commande source, ce script s'appelle 0_ip.sh et il contient entre les lignes de ù
#! /bin/bash # DEBUT RECUPERATION IP ******************************** echo "DANS 0_ip.sh" >> $log while read line do echo "DANS LA BOUCLE WHILE" >> $log if [ ${1:27:8} = ${line:0:8} ];then echo "DANS LE IF" >> $log LONGUEUR=${#line} LONGUEUR=$LONGUEUR-8 IP=${line:8:LONGUEUR} fi done < 0_ip.txt
Quand je lance le script t_save_doc_mga5-sda_vers_mga5-sdb.sh en console root, pas de problème ça marche voici ce que contient le fichier log:
DANS t_save_doc_mga5-sda_vers_mga5-sdb.sh
DANS 0_ip.sh
DANS LA BOUCLE WHILE
DANS LA BOUCLE WHILE
DANS LA BOUCLE WHILE
DANS LE IF
DANS LA BOUCLE WHILE
IP = 225.1.145.12
Donc tout se passe bien et je récupère ce que je voulais c'est à dre la valeur de IP.
Le problème c'est que quand je lance ce même script t_save_doc_mga5-sda_vers_mga5-sdb.sh par cron en root, ça ne marche pas, il semble que la commande "source" n'est pas activée voici ce que j'ai dons mon fichier log:
DANS t_save_doc_mga5-sda_vers_mga5-sdb.sh
IP = 0
Pourtant tous les éléments à savoir les 2 script sh et le fichier .txt ont un chmod 755 !!!!
Est-ce que quelqu'un aurait une idée, ça m'arrangerait beaucoup que ça puisse fonctionner à partir de cron en root.
Merci pour votre aide.
A voir également:
- Problème avec cron
- Z-cron - Télécharger - Optimisation
- Visual cron - Télécharger - Divers Utilitaires
- Cron toutes les minutes ✓ - Forum Linux / Unix
- Executer une commande touts les 5 minutes - Forum Shell
- Cron windows - Forum PHP
3 réponses
Bonjour, merci pour ta réponse, j'ai spécifié le chemin pour source mais c'est pareil !!! il ne rentre pas dans 0_ip.sh
Re-bonjour, en fait je viens de trouver, merci dubcek tu m'as donné la puce à l'oreille, en fait j'ai spécifié le chemin source comme tu me dis mais ce n'est pas suffisant, il a fallut que je spécifie également le chemin du fichier .txt que je lis ce qui donne:
# DEBUT RECUPERATION IP ********************************
echo "DANS 0_ip.sh" >> $log
while read line
do
echo "DANS LA BOUCLE WHILE" >> $log
if [ ${1:27:8} = ${line:0:8} ];then
echo "DANS LE IF" >> $log
LONGUEUR=${#line}
LONGUEUR=$LONGUEUR-8
IP=${line:8:LONGUEUR}
fi
done < /chemin/0_ip.txt
Maintenant ça marche, je passe le sujet en résolu, merci à tous pour votre aide.
# DEBUT RECUPERATION IP ********************************
echo "DANS 0_ip.sh" >> $log
while read line
do
echo "DANS LA BOUCLE WHILE" >> $log
if [ ${1:27:8} = ${line:0:8} ];then
echo "DANS LE IF" >> $log
LONGUEUR=${#line}
LONGUEUR=$LONGUEUR-8
IP=${line:8:LONGUEUR}
fi
done < /chemin/0_ip.txt
Maintenant ça marche, je passe le sujet en résolu, merci à tous pour votre aide.