[Bash] Variable $USER et CronTab
Résolu
Creutzou
Messages postés
550
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
30 mai 2013
-
Modifié par Creutzou le 18/10/2012 à 12:05
Creutzou Messages postés 550 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 30 mai 2013 -
Creutzou Messages postés 550 Date d'inscription lundi 17 mai 2010 Statut Membre Dernière intervention 30 mai 2013 -
A voir également:
- [Bash] Variable $USER et CronTab
- User account control - Guide
- Bingo bash - Télécharger - Divers Jeux
- User is over quota - Forum Mail
- Bash addition - Forum Shell
- [Shell] Comment additionner des valeurs ✓ - Forum Shell
3 réponses
mamiemando
Messages postés
33758
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
1 août 2025
7 877
Modifié par mamiemando le 18/10/2012 à 13:11
Modifié par mamiemando le 18/10/2012 à 13:11
Pour commencer je te conseille d'utiliser $HOME plutôt que $USER, car le home n'est pas forcément dans /home (par exemple pour root, c'est /root). Ensuite, il faut voir si quand tu lances crontab, ces variables d'environnement sont initialisées comme tu le crois. Tu peux par exemple lancer dans ton script :
... pour être fixé.
En admettant que ton utilisateur soit toto, comme il y a peu de chance que crontab soit lancé par toto, il y a peu de chance que $USER (resp. $HOME) soit initialisé à la valeur que tu espères.
Sous linux chaque utilisateur est identifié par un UID (entier indiqué dans /etc/passwd), et l'utilisateur "principal" sous ubuntu correspond en général à l'utilisateur 1000. Tu peux donc dans ton script bash récupérer le nom de l'utilisateur et son home associés à l'UID 1000 comme suit :
Bonne chance
echo "USER=[$USER]" > /tmp/toto.txt
... pour être fixé.
En admettant que ton utilisateur soit toto, comme il y a peu de chance que crontab soit lancé par toto, il y a peu de chance que $USER (resp. $HOME) soit initialisé à la valeur que tu espères.
Sous linux chaque utilisateur est identifié par un UID (entier indiqué dans /etc/passwd), et l'utilisateur "principal" sous ubuntu correspond en général à l'utilisateur 1000. Tu peux donc dans ton script bash récupérer le nom de l'utilisateur et son home associés à l'UID 1000 comme suit :
#!/bin/bash UID=1000 USER=$(cat /etc/passwd | cut -d":" -f1,3,6 | grep 1000 | cut -d":" -f1) HOME=$(cat /etc/passwd | cut -d":" -f1,3,6 | grep 1000 | cut -d":" -f3) #suite de ton script
Bonne chance
dubcek
Messages postés
18789
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
18 août 2025
5 634
18 oct. 2012 à 14:31
18 oct. 2012 à 14:31
hello
USER n'est pas défini dans cron mais LOGNAME est défini
USER n'est pas défini dans cron mais LOGNAME est défini
Creutzou
Messages postés
550
Date d'inscription
lundi 17 mai 2010
Statut
Membre
Dernière intervention
30 mai 2013
19 oct. 2012 à 09:36
19 oct. 2012 à 09:36
Bonjour à vous deux,
Merci pour vos précisions. Je vais mettre ça en application de suite. Et je reviens vous donner des news.
Merci pour vos précisions. Je vais mettre ça en application de suite. Et je reviens vous donner des news.