[英]Shell script garbling text in email
当 RAID 状态不是“最佳”时,我正在使用下面的脚本来 email 我。
其中的 echo 命令,例如:
echo $(/usr/local/RAID\ Web\ Console\ 2/StorCLI/storcli64 /c0 /eall /sall show)
使用无格式文本生成 email,例如:
Drive Information : ================= ----------------------------------------------------------------------- EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp ----------------------------------------------------------------------- 16:0 31 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U 16:1 30 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U 16:2 29 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U 16:3 34 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U 16:4 33 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U 16:5 32 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U 16:6 37 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U 16:7 36 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U 16:8 35 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U 16:9 38 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U 16:10 41 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U 16:11 40 Onln 0 5.
而不是:
Drive Information :
=================
-----------------------------------------------------------------------
EID:Slt DID State DG Size Intf Med SED PI SeSz Model Sp
-----------------------------------------------------------------------
16:0 31 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U
16:1 30 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U
16:2 29 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U
16:3 34 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U
16:4 33 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U
16:5 32 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U
16:6 37 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U
16:7 36 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U
16:8 35 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U
16:9 38 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U
16:10 41 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U
16:11 40 Onln 0 5.456 TB SAS HDD N N 512B ST6000NM0034 U
-----------------------------------------------------------------------
当然,我没有在这里做一些愚蠢的事情。 提前感谢您的建议。
脚本:
#!/bin/bash
CLISTAT=$(/usr/local/RAID\ Web\ Console\ 2/StorCLI/storcli64 /c0 /vall show | grep RAID6 |awk '{ print $3 }')
if [ "$CLISTAT" = "Optl" ]; then
echo "RAID status is optimal. All is good!"
exit 0
else
(
echo "From: admin@example.org"
echo "To: admin@example.org"
echo "Subject: RAID status alert on server.example.org !!"
echo "X-Priority: 1 (Highest)"
echo "X-MSMail-Priority: High"
echo "Importance: High"
echo ""
date
echo
echo "The RAID status on Socs-Stats is not optimal!"
echo " "
echo "Hard Drive details:"
echo " "
echo $(/usr/local/RAID\ Web\ Console\ 2/StorCLI/storcli64 /c0 /eall /sall show)
echo " "
echo " "
echo "Virtual Drive details:"
echo $(/usr/local/RAID\ Web\ Console\ 2/StorCLI/storcli64 /c0 /vall show)
echo "----------------------------------------------------------------"
) | /sbin/sendmail -it
exit 2
fi
尝试在命令替换周围加上引号:
echo "$(/usr/local/RAID\ Web\ Console\ 2/StorCLI/storcli64 /c0 /eall /sall show)"
echo " "
echo " "
echo "Virtual Drive details:"
echo "$(/usr/local/RAID\ Web\ Console\ 2/StorCLI/storcli64 /c0 /vall show)"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.