[bash] retour de chariot
Résolu
enyrix
Messages postés
167
Statut
Membre
-
dubcek Messages postés 19025 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 19025 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je programme un courriel qui contiendra le retour d'une commande exécuter sur un serveur. Je stocke dans une variable le retour de ma commande, mais j'aimerais conserver les retours de chariot contenu dans mon fichier log... Comment faire ?
Je programme un courriel qui contiendra le retour d'une commande exécuter sur un serveur. Je stocke dans une variable le retour de ma commande, mais j'aimerais conserver les retours de chariot contenu dans mon fichier log... Comment faire ?
MSG=$?(tail -n 20 /var/log/apache2/error.log) DATA="Voici le contenu du fichier log:\r\n\r\n$MSG"
A voir également:
- Echo retour à la ligne
- Retour à la ligne excel - Guide
- Retour à la ligne google sheet - Forum Excel
- Retour à la ligne google sheets android ✓ - Forum Google Docs
- Partager photos en ligne - Guide
- Notepad++ retour à la ligne ✓ - Forum Bureautique
6 réponses
Résolu! Trouver une solution et améliorer le script grâce à un collègue programmeur !
Merci à vous de m'avoir aidé! Pour info unix2dos c'est rendu tofrodos pour ubuntu...
#!/bin/bash
SUBJECT="Notification du serveur"
MAILSERVER="relais.xxxx.xx"
PORT="25"
MAILFROM="xxxx@xxxx"
MAILTO="xxxx@xxxx"
#### SEND MAIL via RAW TCP #######
echo
echo "Connecting to $MAILSERVER on Port $PORT";
echo "Please wait ... "
echo
exec 3<>/dev/tcp/$MAILSERVER/$PORT
if [ $? -ne 0 ] ; then
echo
echo "ERROR: Cannot connect to the Mail Server";
echo "Please check the servername and/or the port number"
exit
else
echo -en "HELO mail.email.com\r\n" >&3
echo -en "MAIL FROM:$MAILFROM\r\n" >&3
echo -en "RCPT TO:$MAILTO\r\n" >&3
echo -en "DATA\r\n" >&3
echo -en "Subject: $SUBJECT\r\n\r\n" >&3
echo -en "Voici le contenu du fichier log:\r\n\r\n" >&3
tail -v -n 20 /var/log/apache2/error.log | while read line
do
echo -en "$line\r\n" >&3
done
echo -en ".\r\n" >&3
echo -en "QUIT\r\n" >&3
cat <&3
echo
echo
echo "Mail sended!"
echo
fi
Merci à vous de m'avoir aidé! Pour info unix2dos c'est rendu tofrodos pour ubuntu...
avec des " ça fonctionne, montre ton code
$ tail a2 aaa aaa bbb b b b ccc ccc $ MSG="$(tail a2)" $ echo $MSG aaa aaa bbb b b b ccc ccc $ echo "$MSG" aaa aaa bbb b b b ccc ccc $ $ DATA="Voici le contenu du fichier log:\r\n\r\n""$MSG" $ echo -e "$DATA" Voici le contenu du fichier log: aaa aaa bbb b b b ccc ccc $
Voici mon code, je sais pas trop comment je pourrais faire un echo dans ce cas:
#!/bin/bash
MSG="$(tail -n 20 /var/log/apache2/error.log)"
DATA= echo "Voici le contenu du fichier log:\r\n\r\n$MSG"
SUBJECT="Notification du serveur"
MAILSERVER="XXXXXXXX"
PORT="25"
MAILFROM="XXXXXXXXX"
MAILTO="XXXXXXXXXXX"
#### SEND MAIL via RAW TCP #######
echo
echo "Connecting to $MAILSERVER on Port $PORT";
echo "Please wait ... "
echo
exec 3<>/dev/tcp/$MAILSERVER/$PORT
if [ $? -ne 0 ] ; then
echo
echo "ERROR: Cannot connect to the Mail Server";
echo "Please check the servername and/or the port number"
exit
fi
echo -en "HELO mail.email.com\r\n" >&3
echo -en "MAIL FROM:$MAILFROM\r\n" >&3
echo -en "RCPT TO:$MAILTO\r\n" >&3
echo -en "DATA\r\n" >&3
echo -en "Subject: $SUBJECT\r\n\r\n" >&3
echo -en "$DATA\r\n" >&3
echo -en ".\r\n" >&3
echo -en "QUIT\r\n" >&3
cat <&3
echo
echo
echo "Mail sended!"
echo
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Essai la commande unix2dos, qui si elle n'est pas par défaut doit être dans les paquets officiels.