Назад | Перейти на главную страницу

Написание электронного письма с правильным приветствием и объявлением в сценарии bash

Закончилось место "/ dev / mapper / LVMG1-tmp (87%)" на имени хоста по состоянию на 3 февраля, понедельник, 15:44:03 IST 2020

выше - это сообщение, которое я получаю по электронной почте, но мне нужно использовать правильное приветствие и объявление. Как я могу заархивировать это детское предложение ваших идей?

Код:

#!/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" name@doamin.com 
  fi
done

Вот несколько функций, которые делают то, что вы ищете. Есть пара переменных, связанных с почтой, которые вам нужно будет определить в другом месте вашего скрипта, но это должно быть достаточно просто.

Я просто помещаю необработанный вывод в переменную и добавляю его к переменной тела сообщения. Вы можете манипулировать этим разными способами, прежде чем отправлять его в функцию mailBody.

Дайте знать, если у вас появятся вопросы.

function func_mailVariables() { 
    recipientAddress="somebody@somewhere.smth" 
    senderAddress="someoneelse@somewhereelse.smth" 
    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 
}