Contenu | Rechercher | Menus

Annonce

Ubuntu-fr vend de superbes t-shirts et de belles clés USB 32Go
Rendez-vous sur la boutique En Vente Libre

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 07/10/2019, à 18:39

p0lf0

Commande useradd exécuter par crontab

Bonjour,
Je suis coincé par l'exécution d'un script (.sh) via crontab (Debian 8.7).
Lors de l'exécution manuel tout se passe normalement.
En revanche dès lors que le script est exécuté via crontab le process s'exécute normalement sauf la commande useradd.
Aucune erreur ni de création de home, group ...
L'exemple ci-dessous illustre mon problème :
mysql.sh => script exécuté via crontab qui liste les installations (mysql) à réaliser et 'déclanche' ex.sh (argumenté)

Manuelement (./mysql.sh) le script s'exécute correctement.
Si vous avez une piste ...
Merci

####### mysql.sh ########
mysql -h $host -D $db -B -N -e "SELECT op1, op2, op3 FROM la_table WHERE instal = 0 AND valid = 1 LIMIT 1" |while read op1 op2 op3
do
	./ex.sh $op1 $op2 $op3
done
####### ex.sh ######
if [ ! -d "/home/$1" ];then
	groupadd $1
	useradd -g $1 -m $1
	if [ $2 = "n" ]
	then
		cp -r /etc/skel/* /home/$1/public_html
	fi
fi
#########################

Hors ligne

#2 Le 07/10/2019, à 19:06

Watael

Re : Commande useradd exécuter par crontab

salut,

mais pourquoi ajouter des utilisateurs via crontab ? pourquoi !?


eval, c'est mal.

Hors ligne

#3 Le 07/10/2019, à 19:21

p0lf0

Re : Commande useradd exécuter par crontab

Watael a écrit :

salut,

mais pourquoi ajouter des utilisateurs via crontab ? pourquoi !?

Bonjour Watael,
L'idée étant d'ajouter des comptes via un formulaire (web). Dans l'exemple mysql.sh liste les installations (stocké dans la base) et déclenche ex.sh qui ajoute le compte. Crontab exécute mysql.sh ...
Mon niveau et ma formation ne me facilite pas la tâche ... et si y a une autre piste je ne suis pas contre wink
Merci de ta réponse en tout cas !

Hors ligne

#4 Le 07/10/2019, à 19:25

metalux

Re : Commande useradd exécuter par crontab

Bonsoir,
As-tu essayé en mettant le chemin entier vers useradd au lieu de juste indiquer la commande?
C'est une bonne habitude à prendre dans une crontab.

Hors ligne

#5 Le 07/10/2019, à 19:30

p0lf0

Re : Commande useradd exécuter par crontab

metalux a écrit :

Bonsoir,
As-tu essayé en mettant le chemin entier vers useradd au lieu de juste indiquer la commande?
C'est une bonne habitude à prendre dans une crontab.

Bonsoir Metalux,
Non je n'ai pas essayé ... Je ne connais pas, je vais chercher ! 
Merci !

Hors ligne

#6 Le 07/10/2019, à 19:34

metalux

Re : Commande useradd exécuter par crontab

metalux@metalux-E6239-MD99678:~$ whereis useradd
useradd: /usr/sbin/useradd /usr/share/man/man8/useradd.8.gz
metalux@metalux-E6239-MD99678:~$ 
 

Dans le script:

/usr/sbin/useradd -g $1 -m $1

Fait de même pour l'ensemble des commandes.

Hors ligne

#7 Le 07/10/2019, à 19:36

Watael

Re : Commande useradd exécuter par crontab

ouaip. et le chemin absolu vers ex.sh.


eval, c'est mal.

Hors ligne

#8 Le 07/10/2019, à 19:36

p0lf0

Re : Commande useradd exécuter par crontab

metalux a écrit :
metalux@metalux-E6239-MD99678:~$ whereis useradd
useradd: /usr/sbin/useradd /usr/share/man/man8/useradd.8.gz
metalux@metalux-E6239-MD99678:~$ 
 

Dans le script:

/usr/sbin/useradd -g $1 -m $1

Fait de même pour l'ensemble des commandes.

Super ... je test.
Merci beaucoup !

Hors ligne

#9 Le 07/10/2019, à 19:51

p0lf0

Re : Commande useradd exécuter par crontab

p0lf0 a écrit :
metalux a écrit :
metalux@metalux-E6239-MD99678:~$ whereis useradd
useradd: /usr/sbin/useradd /usr/share/man/man8/useradd.8.gz
metalux@metalux-E6239-MD99678:~$ 
 

Dans le script:

/usr/sbin/useradd -g $1 -m $1

Fait de même pour l'ensemble des commandes.

Super ... je test.
Merci beaucoup !

Je viens de tester et idem : à l'exécution manuel le home est créé et rien via crontab.
voici ma commande :

*/10 * * * * /bin/bash /chemin/du/script/mysql.sh >/dev/null 2>&1

Pour info la suite du script est bien exécuté (avec crontab) ... l'update de la bdd est bien visible !?

Dernière modification par p0lf0 (Le 07/10/2019, à 20:02)

Hors ligne

#10 Le 07/10/2019, à 20:10

metalux

Re : Commande useradd exécuter par crontab

Redirige la sortie vers un fichier pour enregistrer ce qu'il se passe, et éventuellement avec l'option -x pour voir le déroulement du script.

Hors ligne

#11 Le 07/10/2019, à 20:14

p0lf0

Re : Commande useradd exécuter par crontab

Watael a écrit :

ouaip. et le chemin absolu vers ex.sh.

Merci de ta réponse.
J'ai également testé et idem : à l'exécution manuel le home est bien créé et rien via crontab.
voici ma commande pour crontab :

*/10 * * * * /bin/bash /chemin/du/script/mysql.sh >/dev/null 2>&1

Pour info la suite du script est bien exécuté (avec crontab) ... l'update de la bdd est bien visible, à ni rien comprendre !

Hors ligne

#12 Le 07/10/2019, à 20:34

p0lf0

Re : Commande useradd exécuter par crontab

metalux a écrit :

Redirige la sortie vers un fichier pour enregistrer ce qu'il se passe, et éventuellement avec l'option -x pour voir le déroulement du script.

Merci ++ 

Le chemin complet sur toutes les commandes semble avoir fait le job !
Résolu ... turlututu !

Hors ligne