Wall
| Fiche express | |
|---|---|
| Domaine | Communication entre utilisateurs connectés |
| Commande | wall
|
| Contexte | Linux (tout système avec des utilisateurs connectés en shell) |
| Voir aussi | Shutdown (diffuse un message wall avant extinction) |
wall ("write all") diffuse un message à tous les terminaux des utilisateurs actuellement connectés sur la machine, ce qui en fait l'outil de base pour prévenir d'une maintenance, d'un redémarrage ou de toute interruption de service imminente.
Usage interactif
En mode interactif, on lance simplement wall sans argument, on tape le message puis on termine la saisie avec Ctrl-D (fin de fichier) :
wall
The system is coming down in ten minutes for unexpected maintenance.
Please log off soon in order to save your files.
# Ctrl-D pour envoyer
Le message est alors immédiatement diffusé à tous les terminaux ouverts, précédé d'un en-tête indiquant l'expéditeur, son terminal d'origine et l'heure d'envoi.
Usage via pipe ou redirection
Pour un message court ou un envoi scripté, wall accepte aussi son entrée via un pipe ou une redirection depuis un fichier, sans passer par la saisie interactive :
echo "Maintenance réseau dans 5 minutes, merci de vous déconnecter" | wall
wall < message.txt
Cette forme est pratique dans un script d'astreinte ou un cron, là où une saisie interactive avec Ctrl-D n'a pas de sens.
Lien avec shutdown
La commande shutdown appelle automatiquement wall en interne pour diffuser son message d'avertissement à tous les utilisateurs connectés avant de couper les services, ce qui explique pourquoi un message passé en argument de shutdown apparaît sur tous les terminaux de la même façon qu'un wall manuel.
Pourquoi certains utilisateurs ne reçoivent pas le message
wall écrit directement sur le périphérique terminal de chaque utilisateur connecté, mais seulement si ce terminal accepte les écritures externes. Un utilisateur peut bloquer cette diffusion avec mesg n, qui interdit l'écriture sur son terminal par d'autres que le propriétaire ou root ; l'état inverse, mesg y, autorise à nouveau la réception :
mesg # affiche l'état courant (is y / is n)
mesg n # refuse les messages entrants (wall, talk...)
mesg y # autorise à nouveau les messages entrants
En pratique, root reste presque toujours en mesure de forcer l'écriture même sur un terminal en mesg n, mais un utilisateur normal exécutant wall verra son message silencieusement ignoré sur les terminaux qui l'ont désactivé.
Voir aussi
- Shutdown — diffuse automatiquement un message wall avant d'arrêter ou de redémarrer le système