Redirection des sorties d un pgr sous linux

nosgraf Messages postés 4 Statut Membre -  
jivef Messages postés 1024 Statut Membre -
Bonjour,
je n arrive pas a comprendre sous linux le fait d enregistrer la sortie d'un programme à des fins de traitement.
j ai trouver cet explication sur cette page , http://lexo.free.fr/docs/mdkuserguide/node52.html
merci d avance pour vos reponses
A voir également:

2 réponses

mamiemando Messages postés 34229 Date d'inscription   Statut Modérateur Dernière intervention   7 897
 
Je n'ai rien compris et le lien que tu donnes est cassé. Que cherches-tu à faire ?
0
jivef Messages postés 1024 Statut Membre 306
 
Bonjour,


Non, le lien n'est pas cassé, mais il faut retirer le point final/
http://lexo.free.fr/docs/mdkuserguide/node52.html
Ca marche mieux comme ça !

Ta question sur la redirection est dans quel contexte ?

Sinon, un début de réponse :
Alors, la redirection qu'est ce que c'est et à quoi ça sert ?

Sous toutes machine il y a des périphériques d'entrée et de sortie.
La sortie standard est en général l'imprimante ou l'écran.
Cependant, ce n'est pas forcément très pratique.
L'entrée standard est le clavier et la souris.

Une commande produit des effets que tu veux traiter.
S'ils sont à l'écran, (ou sur papier) tu dois tout lire pour le traiter "manuellement".
Pas très pratique !

Exemple , je veux vérifier la présence en mémoire d'un processus et s'il est absent, le relancer automatiquement.
Imaginons le processus amavisd-new (au pif, c'est lui qui gère l'antispam et l'antivirus dans un serveur smtp Postfix).
La commande pour vérifier est :
ps -ef
et là... tu as un beau bordel avec plein de lignes et tu n'arrives à trouver laquelle est la bonne...
Dommage !
Alors il faut envoyer le résultat vers un autre traitement qui fera le tri... donc envoyer la sortie vers un autre traitement par un pipeline (ou pipe tout simplement - à prononcer païpe)

ps -ef | grep amavis
et là, c'est déjà plus propre, tu as les lignes contenant amavis mais tu as un parasite...
une ligne contenant grep amavis (qui correspond à la commande lancée)
encore un petit effort et ce sera bon
ps -ef | grep amavis | grep -v grep
et là tu n'as plus que les lignes contenant amavis.

Si tu as 0 lignes alors amavis n'est pas lancé.

Tu peux récupérer le nombre de ligne et si celui-ci est égal à 0, faire démarrer un traitement qui relancera l'application.
la commande
ps -ef | grep amavis | grep -v grep | wc -l
te donnera le nombre de ligne !
Ensuite, avec un test "if", tu peux provoquer le redémarrage de l'application.

(Mais en général, s'il est planté, il a une bonne raison, c'était juste pour l'exemple).

Tu peux aussi envoyer le résultat d'une commande vers un fichier qui permettra ensuite de vérifier si un traitement s'est bien passé.
Par exemple, la commande postqueue -p permet sur un serveur postfix de vérifier l'état de la file d'attente.
Tu peux lancer cette commande et envoyer le résultat dans un fichier.

postqueue -p > resultatpostqueue

Dans le cas présent, le fichier sera écrasé à chaque lancement.


tu peux conserver les informations en faisant :
postqueue -p >> resultatpostqueue.

Par contre, tu auras un agglomerat de lignes se suivant et tu ne saura pas quand elles ont été ajoutées.

Tu peux donc améliorer ton fichier sortie, en lui ajoutant les dates et heures.
date >> resultatpostqueue.
postqueue -p >> resultatpostqueue.
Ainsi, tu auras la date et l'heure de chaque vérification.

(Tu peux faire ceci dans un script, ce qui facilite énormément les choses.)

Tu peux aussi rediriger une entrée...
Au lieu de saisir un texte pour l'envoie d'un message, tu peux utiliser un texte tout fait.

Exemple, la commande mutt permet d'envoyer un message, tu veux envoyer le fichier resultatpostqueue à M. Machin
mutt -s "surveillance postfix" machin@domaine.pf < resultatpostqueue

Je mets ici en entrée le fichier resultatpostqueue.

Il y a des tas de sites sur le sujets.

Bon courage.
Jonas.





0