Tipps & Tricks zu digitaler Medienproduktion, Netzwerken und Servertechnologien | |||||
Thematisch:
Chronologisch:
Alles als PDF Durchsuchen: | kaiser-edv.de » Tipps & Tricks » MacOS » dateisystem-fuellstand-pruefen.html Tipp: [MacOS X] Dateisystemfüllstand überwachen (07. Juni 2004 — tk)Wenn große Lösungen à la »Big Sister« und Konsorten ausscheiden oder zu umfangreich sind, dann lohnt es sich trotzdem, auf unbeaufsichtigt laufenden Macs einen Benachrichtigungsmechanismus einzusetzen, der vor überlaufenden Dateisystemen warnt.
Das folgende kleine Skript erledigt genau das (funktioniert unter MacOS X sowohl von 10.0 - 10.2 mit dem eingebauten
Ein simples Anpassen der Variablen
Periodisch aktiv wird es bspw., indem man an eines der cronjob-Skripte, bspw. das nächtlich aufgerufene /usr/local/bin/warn-when-fs-full.sh 80 Das sorgt in Zukunft dafür, daß Dateisysteme, die zu mehr als 80% belegt sind, per E-Mail gemeldet werden. Skriptsource:
#!/bin/sh
#
#######################################################################
#
# Copyright (c) 2004, Thomas Kaiser
# license: http://www.opensource.org/licenses/bsd-license.php
#
#######################################################################
#
# Description:
#
# Small script intended to report local filesystems exceeding a certain
# amount of used space -- to be defined either as ${DefaultPercentage}
# variable or as parameter on the command line.
#
# Use it for example in your crontab (adding a line to the scripts in
# /private/etc/periodic/ respectively)
#
# Attention: Don't forget to adjust both ${Sender} and ${Receiver} to
# fit your needs.
#
#######################################################################
#
# Non-Warranty:
# This script comes with absolutely no warranty. Use at your own risk!
#
#######################################################################
# Adjust settings here!
DefaultPercentage=90
Sender=me@privacy.net
Receiver=me@privacy.net
# Use the default unless a specific value will be supplied
MaxPercent=${1:-${DefaultPercentage}}
Main() {
MailBody=$(CheckFileSystems)
if [ "X${MailBody}" != "X" ]; then
SendMail "${MailBody}"
fi
} # Main
CheckFileSystems() {
df | grep "^/dev" | while read -r fs ; do
fuellstand=$(echo ${fs} | awk -F" " '{print $5}' | tr -d '%')
if [ ${fuellstand} -ge ${MaxPercent} ]; then
echo ${fs} | awk -F" " '{print $6" zu \303\274ber "$5" voll"}'
fi
done
} # CheckFileSystems
SendMail() {
sendmail -f${Sender} -i -t <<-End-OF-Mail
Return-path: <${Sender}>
User-Agent: sendmail
Subject: Dateisystem voll auf $(hostname)
From: $(hostname) <${Sender}>
To: <${Receiver}>
Mime-version: 1.0
Content-type: text/plain; charset="UTF-8"
Content-transfer-encoding: 8bit
$(echo -e $1)
End-OF-Mail
if [ "X${TERM}" != "XDUMB" ]; then
echo "Notification sent to \"${Receiver}\""
fi
} # SendMail
Main
Copyright © Thomas Kaiser, 2004 (erstellt am Montag, 07. Juni 2004) | ||||