
私は crontab と、ログ ファイルからの PHP、NGINX、MYSQL のエラーを含む電子メールを定期的に送信する簡単な bash スクリプトを持っています。これは単純化された例です。
#/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
これは非常に基本的な使用法であることは承知していますが、ご覧のとおり、エラーを分離しようとしていますが、機能している HTML タグは分離していません\n
。
そこで質問なのですが、HTML タグを使用してテキストをフォーマットすることは可能でしょうか。不可能な場合は、代替手段は何でしょうか。
答え1
メール クライアントが読み取れる形式であれば何でも使用できます。メッセージをより適切にエンコードするには、次の<<EOF
構文を使用します。
#/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