email_alerts_on_low_free_space
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
email_alerts_on_low_free_space [2009/08/17 14:33] – created tkbletsc | email_alerts_on_low_free_space [2017/05/28 15:34] (current) – tkbletsc | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Email alerts on low free space ====== | ====== Email alerts on low free space ====== | ||
- | Create ''/ | + | Create ''/ |
- | <file> | + | <code=python> |
- | #!/usr/bin/perl | + | #!/usr/bin/python |
+ | |||
+ | import sys, | ||
- | # Based on: | + | def get_free_GB(path): |
- | # | + | st = os.statvfs(dir) |
+ | avail = st.f_bavail * st.f_bsize | ||
+ | total = st.f_blocks * st.f_bsize / (1024.0**3) # free space in GB | ||
+ | used = total - avail | ||
+ | return (avail, | ||
- | use strict; | + | def send_email(to, |
- | use warnings; | + | fp_mail = subprocess.Popen(['/ |
- | use Filesys:: | + | fp_mail.write(message) |
+ | fp_mail.close() | ||
- | if (@ARGV != 3) { | ||
- | die " | ||
- | } | ||
- | my ($to,$dir,$warning_level) = @ARGV; | + | if len(sys.argv) != 4: |
+ | print " | ||
+ | sys.exit(1) | ||
+ | |||
+ | (_,to,dir,min_space_GB) = sys.argv | ||
+ | min_space_GB = float(min_space_GB) | ||
- | my $hostname = `hostname` || ' | + | hostname = socket.gethostname() |
- | chomp $hostname; | + | |
- | # email setup | + | (avail, |
- | my $subject | + | |
- | # get df | + | pct = avail/total*100 |
- | my ($fs_type, $fs_desc, $used, $avail, $fused, $favail) = df $dir; | + | |
- | $used /= 1024*1024; # to GB | + | if avail < min_space_GB: |
- | $avail /= 1024*1024; # to GB | + | subject |
- | my $total | + | message |
- | my $pct = $avail/ | + | |
- | # compare | + | Low disk space on $dir: %.1fGB / %.1fGB free (%.1f%%). Threshold is %.1fGB. |
- | if ($avail < $warning_level) { | + | "" |
- | open MAIL, "| / | + | send_email(to, |
- | printf MAIL " | + | </code> |
- | close MAIL; | + | |
- | } | + | |
- | </file> | + | |
- | Then create ''/ | + | Then create ''/ |
< | < | ||
- | / | + | / |
... | ... | ||
</ | </ | ||
+ | |||
+ |
email_alerts_on_low_free_space.1250544805.txt.gz · Last modified: 2009/08/17 14:33 by tkbletsc