Salto de línea
Resuelto
enyrix
Mensajes publicados
167
Estado
Miembro
-
dubcek Mensajes publicados 18627 Fecha de registro Estado Colaborador Última intervención -
dubcek Mensajes publicados 18627 Fecha de registro Estado Colaborador Última intervención -
Hola,
Programa un correo electrónico que contendrá el retorno de una orden ejecutada en un servidor. Guardo en una variable el retorno de mi comando, pero me gustaría conservar los retornos de carro contenidos en mi archivo de registro... ¿Cómo hacerlo?
Programa un correo electrónico que contendrá el retorno de una orden ejecutada en un servidor. Guardo en una variable el retorno de mi comando, pero me gustaría conservar los retornos de carro contenidos en mi archivo de registro... ¿Cómo hacerlo?
MSG=$?(tail -n 20 /var/log/apache2/error.log) DATA="Aquí está el contenido del archivo de registro:\r\n\r\n$MSG"
6 respuestas
-
hola
meter entre ""MSG="$?(tail -n 20 /var/log/apache2/error.log)" .. echo "$MSG"
-
No funciona, eso pone la línea directamente en texto... Yo lo uso para meterlo en un correo, devolverme el contenido de mi tail dentro en texto... funciona pero no coloca saltos de línea para el contenido del archivo de log, me envía todo el contenido del archivo de log de golpe, no es muy legible... ¿No habría otra forma, por ejemplo: comando < nombredearchivoparaimportar .... ? ¡Gracias por vuestra ayuda valiosa!
-
-
-
¡Resuelto! ¡Encontrar una solución y mejorar el script junto con un colega programador!
#!/bin/bash SUBJECT="Notificación del servidor" MAILSERVER="relais.xxxx.xx" PORT="25" MAILFROM="xxxx@xxxx" MAILTO="xxxx@xxxx" #### ENVIAR MAIL via RAW TCP ####### echo echo "Conectando a $MAILSERVER en el puerto $PORT"; echo "Por favor espere ... " echo exec 3<>/dev/tcp/$MAILSERVER/$PORT if [ $? -ne 0 ] ; then echo echo "ERROR: No se puede conectar al servidor de correo"; echo "Por favor verifique el nombre del servidor y/o el número de puerto" 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 "Aquí está el contenido del archivo de registro:\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 enviado!" echo fi
Gracias a ustedes por ayudarme! Para info unix2dos se convirtió en tofrodos para Ubuntu... -
con 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 $
-
Aquí está mi código, no sé muy bien cómo podría hacer un echo en este caso:
#!/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
-
j'ai modifié cette ligne
DATA="Aquí está el contenido del archivo de registro:\r\n\r\n""$MSG"
-
si es que falta el \r, ¿y así?
tail -v -n 20 /var/log/apache2/error.log | sed 's/$/\r/' >&3