скрипт оболонки для надсилання повідомлення-сповіщення, якщо використання диска перевищує 90%, а інше сповіщення - 95%


-4

Я новачок в сценарії оболонок і хочу реалізувати сценарій на своєму сервері, який автоматично надсилатиме сповіщення електронною поштою, якщо використання диска перевищує 90%, а попередження електронної пошти - понад 95%. моя файлова система abc: / xyz / abc і mount є / pqr.

Будь ласка, допоможіть мені зі сценаріями.


3
Це те, що ви повинні шукати або намагатися написати, а не просити когось написати для вас. Якщо ви не переймаєтесь цим, тоді ви повинні найняти когось, щоб це зробити за вас.
johnshen64

@ johnshen64- ADMIN = "def@stu.com" ALERT = 70 df -H | grep -vE 'abc: / xyz / abc | tmpfs | cdrom '| awk '{print $ 5 "" $ 1}' | під час читання виводу; do usep = $ (ехо $ вихід | awk '{print $ 1}' | вирізати -d '%' -f1) розділ = $ (ехо $ вихід | awk '{print $ 2}'), якщо [$ usep -ge $ ALERT ]; то поштові повідомлення "Попередження: Майже не вистачає місця на диску $ usep" $ ADMIN fi зроблено зараз, чи можете ви повідомити, що не так у цьому сценарії? Я хотів побачити різні підходи.
Танай Матур

1
@TanayMathur - Будь ласка, оновіть своє запитання зі сценарієм та використовуйте параметр форматування тексту, а не публікувати все це в коментарі, що є досить нечитабельним.
nerdwaller

Я згоден, і це було б дуже хорошим початком. Питання, як це можливо, може закритися.
johnshen64

Відповіді:


1

Ось один із багатьох способів зробити це. Цей швидкий і брудний :

#!/bin/bash

errortext=""
EMAILS="address@domain.com,otheraddress@domain.com"

# get file system disk usage report for 
# all file systems (-a) 
# with POSIX output (P) 
# in human readable format (h)
# Look for only vgroup (I've LVM), but if you want only /home and /var 
# to be checked for, do something like this: egrep 'home|var'

for line in `df -aPh | egrep 'vgroup-' | sort | awk '{print$6"-"$5"-"$4}'`
do

    # get the percent and chop off the %
    percent=`echo "$line" | awk -F - '{print$2}' | cut -d % -f 1`
    partition=`echo "$line" | awk -F - '{print$1}' | cut -d % -f 1`

    # Let's set the limit to 90% when alert should be sent
    limit=90

    if [ $percent -ge $limit ]; then
        errortext="$errortext $line"
    fi
done

# send an email
if [ -n "$errortext" ]; then
    echo "$errortext" | mail -s "NOTIFICATION: some partitions on almost full"         $EMAILS
fi

0

Ось хрон, який працює з понеділка по п’ятницю о 8 ранку, який сповістить, якщо використання перевищує 90%

0 8 * * 1-5 df | tail --lines=+2 | sed s/%//g | awk '{ if($5 > 90) print $0;}'|mail -s "space alert" address@domain.com
  • 0 8 * * 1-5 повідомляє crontab запустити це о 8:00 понеділка-п’ятницю (1-5)
  • df | tail --lines=+2 приймає весь результат після пропуску перших 2 рядків
  • sed s/%//g' знаки відсотка смужки
  • awk ... якщо 5-е поле на виході є числом більше 90, воно друкує цей рядок
  • |mail -s "space alert" address@domain.com надсилає цей рядок на адресу електронної пошти на адресу@domain.com з назвою "космічне сповіщення"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.