Logwatch disk space report
Paul Howarth
paul at city-fan.org
Fri Mar 18 18:06:00 UTC 2005
Kanwar Ranbir Sandhu wrote:
> Hi Everyone,
>
> [I originally sent this using the wrong email account. I'm not sure if
> the first email will make it through, so here it is again]
>
> So, I wanted to figure out why the logwatch report mangles the disk
> space usage report. Here's what I receive for one of my servers:
>
> /dev/mapper/VolGroup00-LogVol00
> /dev/hda1 101M 15M 80M 16% /boot
> /dev/mapper/VolGroup00-home
> /dev/mapper/VolGroup00-tmp
> /dev/mapper/VolGroup00-usr
> /dev/mapper/VolGroup00-var
>
> That's obviously incomplete. If I just run df -h, I get this:
>
> /dev/mapper/VolGroup00-LogVol00
> 496M 172M 299M 37% /
> /dev/hda1 101M 15M 80M 16% /boot
> none 173M 0 173M 0% /dev/shm
> /dev/mapper/VolGroup00-home
> 434M 34M 379M 9% /home
> /dev/mapper/VolGroup00-tmp
> 496M 13M 459M 3% /tmp
> /dev/mapper/VolGroup00-usr
> 2.9G 830M 2.0G 30% /usr
> /dev/mapper/VolGroup00-var
> 992M 234M 708M 25% /var
>
> Much better (except for the ugly output).
>
> Anyway, here's the line in the script that logwatch fires up to create
> the disk usage report:
>
> df -h | grep '^/dev/'
>
> It appears that if the path to the device being is sufficiently long
> enough, the disk usage for that device isn't printed. I've tried the
> same command on my laptop (also setup with LVM), and the same thing
> happens:
>
> /dev/mapper/vg00-root
> /dev/hda1 99M 12M 82M 13% /boot
> /dev/mapper/vg00-home
> /dev/mapper/vg00-opt 1008M 34M 924M 4% /opt
> /dev/mapper/vg00-tmp 1008M 34M 924M 4% /tmp
> /dev/mapper/vg00-usr 3.9G 2.6G 1.1G 71% /usr
> /dev/mapper/vg00-local
> /dev/mapper/vg00-var 1008M 415M 542M 44% /var
>
> Notice that /dev/mapper/vg00-home and /dev/mapper/vg00-local are both
> empty.
>
> Questions:
>
> 1. Why the need to grep for /dev? df -h alone does the job well.
> 2. What's the solution?
> a. change the script to use df -h ?
> b. use shorter VG labels?
> c. something else entirely?
This one's been bugging me a little too, and your message prompted me to
have a look at it.
Try editing /etc/log.d/scripts/services/zz-disk_space and changing:
grep '^/dev/'
to:
awk '/^\/dev/ { print; if (NF < 6) { getline; print } }'
I'd guess that the search for /dev/ is there to select only local
filesystems, and it's not using the "-l" option so as to avoid the
pseudo-filesystems that you get with that option.
Paul.
More information about the users
mailing list