[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#8208: Possible bug for df
From: |
Pádraig Brady |
Subject: |
bug#8208: Possible bug for df |
Date: |
Wed, 09 Mar 2011 16:20:54 +0000 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.8) Gecko/20100227 Thunderbird/3.0.3 |
On 09/03/11 09:36, Jesse Molina wrote:
>
> The "df" tool will mismatch mounted devices when a specific device
> parameter is specified.
>
> Here's some console output from running df;
>
> [/var/log]
> address@hidden>df -h /dev/md5
> Filesystem Size Used Avail Use% Mounted on
> /dev/md5 2.3T 1.7T 534G 76% /mnt/backup/bak5
> [/var/log]
> address@hidden>df -h /dev/md5
> Filesystem Size Used Avail Use% Mounted on
> udev 881M 372K 880M 1% /dev
>
>
>
> In the second invocation, the /dev/md5 device had been dismounted, but
> the /dev filesystem is now being matched, when it should not be.
>
> Expected behavior is to get non-zero exit code and print nothing, and/or
> an error on stderr that the device is not found.
>
> Note that this was to be used in a script. I tried with the -P flag,
> and the behavior is the same, in that the wrong mount is matched.
This is expected behavior. If the passed file is not a mount point itself,
df will go and find it's mount point, and report for that device.
If you want to enforce that the passed device node is mounted
then I suggest you ensure that the file system is the same as passed, like:
dev=/dev/md5
df_dev=$(df -P $dev | sed -n '2s/\([^ ]*\).*/\1/p')
test "$dev" = "$df_dev" || { echo "$dev not mounted" >&2; exit 1; }
cheers,
Pádraig.