
나는 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