[Bash] Variable $USER et CronTab
Résolu/Fermé
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 - 19 oct. 2012 à 09:36
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
A voir également:
- [Bash] Variable $USER et CronTab
- Crontab toutes les minutes ✓ - Forum Shell
- Crontab toutes les heures ✓ - Forum Shell
- User account control - Guide
- Vba range avec variable ✓ - Forum VB / VBA
3 réponses
mamiemando
Messages postés
33443
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
19 décembre 2024
7 811
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
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
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
30
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.