2020 年 2 月 3 日星期一 15:44:03 IST,Hostname 上的“/dev/mapper/LVMG1-tmp (87%)”空间不足
以上是我在电子邮件中收到的信息,但我需要使用适当的称呼和声明,我该如何存档这条信息,请提出您的想法?
代码 :
#!/bin/sh
df -H | grep -vE '^Filesystem|tmpfs' | awk '{ print $5 " " $1 }' | while read output;
do
echo $output
usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
partition=$(echo $output | awk '{ print $2 }' )
if [ $usep -ge 80 ]; then
echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" | mail -s "FILE SYSTEM ALERT" [email protected]
fi
done
答案1
这里有几个函数可以完成您想要的功能。您必须在脚本的其他地方定义几个与邮件相关的变量,但这应该很容易。
我只是将原始输出放入变量中,并将其添加到邮件正文变量中。在将其发送到 mailBody 函数之前,您可以通过多种方式对其进行操作。
如果您有任何疑问,请告诉我。
function func_mailVariables() {
recipientAddress="[email protected]"
senderAddress="[email protected]"
mailSubject="Something Important blahblahblah"
}
function func_mailSend() {
importantNumbers="$( df -H | grep -vE '^Filesystem|tmpfs' | awk '{ print $5 " " $1 }' )"
sendmail -t <<< "${mailBody}"
}
function func_mailBody() {
read -r -d '' mailBody <<-EOF
To: ${recipientAddress}
From: ${senderAddress}
Subject: ${mailSubject}
Hello,
Here are those numbers that are so important:
${importantNumbers}
Sincerely,
${senderFullName}
EOF
}
function main() {
func_mailVariables
func_mailBody
func_mailSend
}