[bash] retour de chariot
Résolu
enyrix
Messages postés
144
Date d'inscription
Statut
Membre
Dernière intervention
-
dubcek Messages postés 18789 Date d'inscription Statut Contributeur Dernière intervention -
dubcek Messages postés 18789 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 formule - Guide
- Partager photos en ligne - Guide
- Retour à la ligne chatgpt - Forum Réseaux sociaux
- Notepad++ retour à la ligne ✓ - Forum Bureautique
- Retour à la ligne google sheet - Forum Google Docs
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
j'ai modifié cette ligne
DATA="Voici le contenu du fichier log:\r\n\r\n""$MSG"
Essai la commande unix2dos, qui si elle n'est pas par défaut doit être dans les paquets officiels.