Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails)

#1 Le 25/11/2012, à 12:07

Bat_Tuc

Message a toute les personnes connecté.

Bonjour
A l'école nous travaillons sur un serveur qui nous ait dédié via un client ssh.
J'aimerais faire un script me permettant d'envoyé un message ( via write a priori .. ) a tous les utilisateurs connecté en meme temps que moi.
Pour récuperer la liste des connectés j'y arrive ( who avec un traitement via sed )
je fais une redirection dans un fichier dans lequel j'ai donc sur chaque ligne un utilisateur connecté.
C'est la que viens le probleme. je n'arrive pas a " passé en argument" de write ce fichier ..
faut il que je fasse un cat dessus ( avec un awk eventuellement ) ou je peux directement lui dire tu execute write pour toute les lignes de ce fichier ?
Je suis pas sur d'avoir été tres clair mais si quelqu'un peut m'aidé ca serait chouette smile


Un jour mon père m' a dit " fils, si ton programme tourne, c est qu il peut faire mieux ..."

Hors ligne

#2 Le 25/11/2012, à 12:11

Bat_Tuc

Re : Message a toute les personnes connecté.

voila ou j'en suis pour le moment ..

U know who U R ->monlogin~ who | sed -e 's/^\([^[:blank:]]*\).*$/\1/g' > who

// j'enregistre les login dans le who

figlet 'Hey' | write | cat who

pour mes essai j'utilise le fichier moi dans lequel est seulement mon login.
mais meme resutlat.
je n'arrive pas a faire le lien entre le write et le contenu de moi who

Dernière modification par Bat_Tuc (Le 25/11/2012, à 12:12)


Un jour mon père m' a dit " fils, si ton programme tourne, c est qu il peut faire mieux ..."

Hors ligne

#3 Le 25/11/2012, à 12:14

Bat_Tuc

Re : Message a toute les personnes connecté.

pour mes test j'ai aussi utilisé whoami mais bon je n'arrive toujours pas lui dire que c'est une commande et pas le login auquel je veux appliqué mon write


Un jour mon père m' a dit " fils, si ton programme tourne, c est qu il peut faire mieux ..."

Hors ligne

#4 Le 25/11/2012, à 12:24

pingouinux

Re : Message a toute les personnes connecté.

Bonjour,
Pour boucler sur la liste des utilisateurs :

while read qui
do
   la_commande … $qui …
done <who

Remarques :
1) Il vaut mieux ne pas donner à un fichier le nom d'une commande
2) Penser aussi à supprimer du fichier "who" les utilisateurs qui apparaissent plusieurs fois

Hors ligne

#5 Le 25/11/2012, à 12:29

Bat_Tuc

Re : Message a toute les personnes connecté.

pingouinux a écrit :

Bonjour,
Pour boucler sur la liste des utilisateurs :

while read qui
do
   la_commande … $qui …
done <who

Remarques :
1) Il vaut mieux ne pas donner à un fichier le nom d'une commande
2) Penser aussi à supprimer du fichier "who" les utilisateurs qui apparaissent plusieurs fois

merci smile


Un jour mon père m' a dit " fils, si ton programme tourne, c est qu il peut faire mieux ..."

Hors ligne

#6 Le 25/11/2012, à 12:33

Bat_Tuc

Re : Message a toute les personnes connecté.

Autre question.
Est il possible ( et si oui comment) de faire un "programme / fichier " qui execute plusieurs commandes a la suite. De cette maniere j'execute que ce programme/fichier et non mes plusieurs commande a la suite ..
si j'ai bien compris on appelle ca un script c'est bien ca ?
Comment fait on ? :-)


Un jour mon père m' a dit " fils, si ton programme tourne, c est qu il peut faire mieux ..."

Hors ligne

#7 Le 25/11/2012, à 12:42

pingouinux

Re : Message a toute les personnes connecté.

Voici un exemple. Il faut éditer un nouveau fichier, dans lequel on écrit les commandes.

$ cat mon_script.sh
#!/bin/bash

echo "Ceci est ma 1ère commande"
echo "Ceci est ma 2ème commande"

On lui donne la permission d'exécution :

$ chmod u+x mon_script.sh

Pour l'exécuter :

$ ./mon_script.sh
Ceci est ma 1ère commande
Ceci est ma 2ème commande

Hors ligne

#8 Le 25/11/2012, à 12:56

tiramiseb

Re : Message a toute les personnes connecté.

un script me permettant d'envoyé un message ( via write a priori .. ) a tous les utilisateurs connecté en meme temps que moi.

Ben utilise wall au lieu de write, et voilà... :-)

(note bien, cependant, que tout utilisateur peut désactiver l'affichage de ces messages grâce à la commande mesg (sauf si tu es root, dans ce cas tu outrepasses ce réglages).


echo "Salut tout le monde !" | wall

Dernière modification par tiramiseb (Le 25/11/2012, à 12:56)


Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXe siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

En ligne

#9 Le 25/11/2012, à 12:58

Watael

Re : Message a toute les personnes connecté.

salut,

pourquoi ne pas utiliser wall ?


eval, c'est mal.

Hors ligne

#10 Le 25/11/2012, à 17:18

Bat_Tuc

Re : Message a toute les personnes connecté.

Je ne connaissais pas cette commande je me renseigne la dessus ;-)


Un jour mon père m' a dit " fils, si ton programme tourne, c est qu il peut faire mieux ..."

Hors ligne

#11 Le 25/11/2012, à 18:06

Sciensous

Re : Message a toute les personnes connecté.

Attention au message d'erreur:

tiramiseb a écrit :
echo "Salut tout le monde !" | wall

il faut des simples "

echo 'Salut tout le monde !' | wall

Hors ligne

#12 Le 25/11/2012, à 21:18

tiramiseb

Re : Message a toute les personnes connecté.

Sciensous a écrit :

Attention au message d'erreur:

[...]

il faut des simples "

Ah oui. Les problèmes avec le point d'exclamation...

Enfin s'il n'y a pas le point d'exclamation, ça passe smile


Sébastien Maccagnoni-Munch - administrateur Linux depuis le XXe siècle
Consultant informatique indépendant - http://www.smm-informatique.fr
Geek et tout plein d'autres choses - http://www.tiramiseb.fr

En ligne

Haut de page ↑