
Ich habe Crontab und ein einfaches Bash-Skript, das mir regelmäßig E-Mails mit PHP-, NGINX- und MySQL-Fehlern aus ihren Protokolldateien sendet. Dies ist ein vereinfachtes Beispiel.
#/home/user/status.sh
[email protected]
PHP_ERROR=`tail -5 /var/log/php-fpm/error.log`
NGINX_ERROR=`tail -5 /var/log/nginx/error.log`
MYSQL_ERROR=`tail /var/log/mysqld.log`
DISK_SPACE=`df -h`
echo "
Today's, server report::
==================================
DISK_SPACE: $DISK_SPACE
---------------------------------
MEMORY_USAGE: $MEMORY_USAGE
-----------------------------------
NGINX ERROR: $NGINX_ERROR
-----------------------------------
PHP ERRORS: $PHP_ERROR
------------------------------------
MYSQL_ERRORS: $MYSQL_ERROR
-------------------------------------
" | mail -s "Server reports" $EMAIL
Ich weiß, dass dies eine sehr einfache Verwendung ist, aber wie Sie sehen, versuche ich, die Fehler zu trennen, nicht jedoch die HTML-Tags, die \n
funktionieren.
Meine Frage lautet also: Ist es möglich, HTML-Tags zum Formatieren des Textes zu verwenden? Und wenn nicht, welche Alternativen gibt es?
Antwort1
Sie können jede Formatierung verwenden, die Ihr E-Mail-Client lesen kann. Um Ihre Nachricht besser zu verschlüsseln, verwenden Sie die <<EOF
Syntax:
#/home/user/status.sh
[email protected]
PHP_ERROR=`tail -5 /var/log/php-fpm/error.log`
NGINX_ERROR=`tail -5 /var/log/nginx/error.log`
MYSQL_ERROR=`tail /var/log/mysqld.log`
DISK_SPACE=`df -h`
mail -s "Server reports" $EMAIL <<EOF
Today's, server report::
==================================
DISK_SPACE: $DISK_SPACE
----------------------------------
MEMORY_USAGE: $MEMORY_USAGE
----------------------------------
NGINX ERROR: $NGINX_ERROR
----------------------------------
PHP ERRORS: $PHP_ERROR
----------------------------------
MYSQL_ERRORS: $MYSQL_ERROR
----------------------------------
EOF