Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2290 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [ Linux ][ Script ][ Démarrage ] : Who, Wget résultats vides? PQ?

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ Linux ][ Script ][ Démarrage ] : Who, Wget résultats vides? PQ?

n°1163025
Aschrack
Vive Pen²
Posté le 12-09-2009 à 15:04:06  profilanswer
 

Bonjour,
 
Version courte :
Pourquoi j'obtiens un fichier /tmp/who.txt vide lorsque

Code :
  1. $cd /etc/init.d/
  2. $sudo nano test.sh


j'y écris "who > /tmp/who.txt"

Code :
  1. $sudo chmod +x test.sh
  2. $sudo update-rc.d test.sh defaults
  3. $sudo reboot
  4. $cat /tmp/who.txt


 
Alors que

Code :
  1. $sh /etc/init.d/test.sh
  2. $cat /tmp/who.txt


m'affiche bien quelque chose
(idem si le script est lancé en sudo)
 
et j'ai le même problème (c'est mon problème d'origine en fait)
avec un script contenant

Code :
  1. wget <quelque chose> | cut <param> | cut <param> | nail -v -s "<sujet>" <emailDeDestination>


 
Une idée pourquoi cela se produit ainsi?
 
Vestion longue :
Cherchant à exécuter un script à tous les démarrages qui effectuerait une requête wget pour ensuite m'envoyer le résultat par mail, j'ai commencé par écrire le dit script
$sudo nano /etc/init.d/monScript.sh
j'y ai mis mes instructions du type

Code :
  1. wget <quelque chose> | cut <param> | cut <param> | nail -v -s "<sujet>" <emailDeDestination>


ou encore du type

Code :
  1. wget <quelque chose> | cut <param> | cut <param> > /tmp/monFichier.txt
  2. echo "blablabla" | nail -v -s "<sujet>" -a /tmp/monFichier.txt <emailDeDestination>


 
je le rends exécutable

Code :
  1. $sudo chmod +x /etc/init.d/monScript.sh


 
je place le script pour les runlevels

Code :
  1. $sudo update-rc.d /etc/init.d/monScript.sh defaults


 
je test le script

Code :
  1. $sh /etc/init.d/monScript.sh


nickel, je reçois direct le mail
je le test avec sudo

Code :
  1. $sudo sh /etc/init.d/monScript.sh


 
nickel tout marche à merveille.
Dans le premier script (wget <quelque chose> | cut <param> | cut <param> | nail -v -s "<sujet>" <emailDeDestination> ) je reçois direct le mail et dans le cas du deuxième

Code :
  1. wget <quelque chose> | cut <param> | cut <param> > /tmp/monFichier.txt
  2. echo "blablabla" | nail -v -s "<sujet>" -a /tmp/monFichier.txt <emailDeDestination>


 
je reçois bien le mail ET un fichier /tmp/monFichier.txt est bien créé et envoyé et contient bien les informations que je veux.
 
j'efface donc /tmp/monFichier.txt et je reboot $sudo reboot
 
Et là, je ne reçois aucun mail ... et dans le cas du script avec > /tmp/monFichier.txt, le fichier est bien créé mais est vide. Donc le script s'exécute bien au démarrage, vu qu'il crée le fichier mais pas correctement.
Bon, je me dis que par défault, lors du "$sudo update-rc.d /etc/init.d/monScript.sh defaults" il lui a mis le numéro 20 et peut être qu'il est exécuté trop tôt, avant que le réseau ne soit up. Et donc non seulement le wget ne fonctionne pas mais l'appel à nail non plus.
Donc je change ça

Code :
  1. $sudo update-rc.d -f /etc/init.d/monScript.sh remove
  2. $sudo update-rc.d /etc/init.d/monScript.sh defaults 99
  3. $sudo reboot


 
mais ... rien ne change. Bizarre. Je me dis que peut-être, le script n'est pas exécuté en tant que root, je ne sais pas.
Donc je test un script contenant seulement
who > /tmp/who.txt
 
(pareil, chmod+x, update-rc.d)
que je test en tant que user et sudo et aucun problème. J'efface alors /tmp/who.txt
je reboot et là, rebelotte. Je me prend un fichier /tmp/who.txt de vide.
 
D'où mes questions, n'ayant cette fois plus de piste (ça fait déjà quelques temps que je cherche à m'envoyer un mail automatiquement, et mes recherches sur internet ont porté leur fruit pour progresser, lentement mais surement avec un peu d'acharnement, jusqu'à ce stade) :
1°) une idée sur "pourquoi un script contenant seulement who > /tmp/who.txt produit un fichier vide si exécuté au démarrage et plein si exécuté par un user après le démarrage?"
2°) mes deux problèmes sont-ils réellement liés? ai-je manqué quelque chose?


Message édité par Aschrack le 12-09-2009 à 15:06:39
mood
Publicité
Posté le 12-09-2009 à 15:04:06  profilanswer
 

n°1163607
dchost99
Posté le 14-09-2009 à 19:03:55  profilanswer
 

ajoute sleep 5
et whoami  
pour voir qui lance le script

n°1163899
Aschrack
Vive Pen²
Posté le 15-09-2009 à 16:34:16  profilanswer
 

hello,
 
depuis que j'ai mis la suite

Code :
  1. wget <quelque chose> | cut <param> | cut <param> > /tmp/monFichier.txt
  2. sleep 5
  3. who > /tmp/who.txt
  4. sleep 5
  5. whoami > /tmp/whoami.txt
  6. wget <quelque chose> | cut <param> | cut <param> | nail -v -s "<sujet>" <emailDeDestination>


Je peux désormais j'obtiens

  • dans /tmp/monFichier.txt le bon résultat,
  • dans /tmp/who.txt rien du tout, le fichier reste vide
  • dans /tmp/whoami.txt, il y a marqué root (donc j'en déduis que c'est bien lui qui exécute le script au démarrage)
  • je ne reçois toujours pas de mail envoyé par la dernière commande (alors que $sudo monScript.sh m'envoie bien ce mail avec le contenu du wget)


PS : merci déjà pour ta première réponse :) je pense en effet avoir confondu who et whoami

n°1163955
dchost99
Posté le 15-09-2009 à 19:24:24  profilanswer
 

et pendent l'exécution tu as bien les 5 sec de pause, des message d'erreur?  
essaye de mettre le chemin absolu  (/usr/bin/wget)
et au départ du scrpt test le réseau  (ping google..)
who
echo `who`> txt   ?

n°1165368
belgique
Posté le 20-09-2009 à 11:29:16  profilanswer
 

Aschrack a écrit :

hello,
 
depuis que j'ai mis la suite

Code :
  1. wget <quelque chose> | cut <param> | cut <param> > /tmp/monFichier.txt
  2. sleep 5
  3. who > /tmp/who.txt
  4. sleep 5
  5. whoami > /tmp/whoami.txt
  6. wget <quelque chose> | cut <param> | cut <param> | nail -v -s "<sujet>" <emailDeDestination>


Je peux désormais j'obtiens

  • dans /tmp/monFichier.txt le bon résultat,
  • dans /tmp/who.txt rien du tout, le fichier reste vide
  • dans /tmp/whoami.txt, il y a marqué root (donc j'en déduis que c'est bien lui qui exécute le script au démarrage)
  • je ne reçois toujours pas de mail envoyé par la dernière commande (alors que $sudo monScript.sh m'envoie bien ce mail avec le contenu du wget)


PS : merci déjà pour ta première réponse :) je pense en effet avoir confondu who et whoami


Hypothèses:
Ton wget ne marche peut être pas car il te manque des services: dns, reseau???
Ton who ne renvoie rien car il n'y a personne de connecté pendant le boot :D
 
Solution, redirige aussi l'error output de ton wget pour voir ce qui ne va pas :
 
wget <quelque chose> | cut <param> | cut <param> > /tmp/monFichier.txt 2>&1

n°1168592
Aschrack
Vive Pen²
Posté le 02-10-2009 à 01:05:39  profilanswer
 

mon wget fonctionne puisque j'ai ce qu'il faut dans "/tmp/monFichier.txt", donc le réseau est ok
 
donc seul nail a un problème en fait, et ce-dernier provient sans doute de ta remarque liée au who
"Ton who ne renvoie rien car il n'y a personne de connecté pendant le boot :D "
ainsi, sans doute que nail ne sait pas où trouver sa configuration, celle-ci étant stockée dans ~/.mailrc de chaque utilisateur
 
pensant qu'il s'agissait de root, j'ai mis sa dans sa home mais apparemment ce n'était peut-être pas une bonne idée
 
cependant, lorsque je fais
 
wget <quelque chose> | cut <param> | cut <param> | nail -v -s "<sujet>" <emailDeDestination> 2> /tmp/errorNail.txt
 
cela me produit un fichier vide ... pas pratique pour voir les erreurs


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [ Linux ][ Script ][ Démarrage ] : Who, Wget résultats vides? PQ?

 

Sujets relatifs
xp et linux en dual bootLinux et les 2 "problèmes" qui persistaient en 2008
Prise de controle a distance graphique sur BSD/Gnu Linux ?linux sur portable 13''
Linux est il mature (L'admiministrateur aussi ?)[Linux] Interdire connexion des utilisateurs LDAP
[kubuntu] pb net manager + config du port au demarrage[Divers] KmidiMon est un moniteur MIDI pour Gnu/Linux : Utilisation
script sh de fichier logDouble redirection de la sortie d'une commande sous Linux
Plus de sujets relatifs à : [ Linux ][ Script ][ Démarrage ] : Who, Wget résultats vides? PQ?


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR