Display Filesystem Statistics: The df Command

How are the systems mounted? Here is the partial report of the mount command: mount partially presented too ..... ..... files on devvg01lvol10 delaylog on Sat May 16 23:30:37 1998 usrud on filesexportshareud defaults on Sat May 16 23:31:10 1998 users on filesexporthome defaults on Sat May 16 23:31:10 1998 tmp on filestmp defaults on Sat May 16 23:31:10 1998 home on filesexporthome defaults on Sat May 16 23:31:10 1998 The lines presented here correspond to those presented earlier in the filesystem configuration file etcfstab. It is clear to see that the system was rebooted on Saturday, May 16, 1998.

5.6 Managing Filesystem Usage

Once a filesystem is configured and mounted properly, users can start to use files. This is the purpose of the filesystems existence. Using filesystems also means consuming appropriate disk space. Not only users do this; the system also consumes disk space on a regular basis because a number of system log files grow continuously. Incorrect filesystem usage can also corrupt the filesystem itself, making it inaccessible. The worst−case scenario is a complete collapse and crash of the system. Filesystems require a great deal of maintenance during their lifetimes. Primary activities are closely related to disk space usage, and we will mainly focus on that topic. To manage disk space a corresponding tool is needed; UNIX provides the necessary tools in a set of commands that are sufficient for successful management. The main commands in this group are: df To display filesystem statistics du To report on disk usage quot To report disk usage by users The fsck command is used to check filesystems, and will also be discussed.

5.6.1 Display Filesystem Statistics: The df Command

The df command produces a report that describes the filesystems, the total capacities, and the amount of free space available, all displayed in 1kB blocks. If a filesystem, or a file, or a directory within a filesystem is specified as an argument, the report refers only to the corresponding filesystem. The two usual flavors of the df command Berkeley and System V generate different reports. A typical BSD report displays: df Filesystem Kbytes used avail capacity Mounted on 133 This output reports the status of existing filesystems, starting with the root disk partition, and then other mounted disk partitions. Each line of the report shows: The filesystem name • The total filesystem capacity in Kbytes • The number of Kbytes in use • The number of Kbytes available free • The percentage of the filesystems storage currently in use • The filesystem mounting point • It sounds impossible, but the displayed percentage can be sometimes larger than 100 the maximum value can reach 111. How can this be? To increase transfer efficiency, 10 of the available filesystem space is sacrificed as fragmented disk space; however, the superuser can use this space if needed. So the full filesystem size is 90 of the total size but 100 for df, and under such circumstances the filesystem can appear to be overfilled. We will return to the 10 reserved disk space later. This example was from SunOS 4.1.3, which supports the BSD form of the df command. Some UNIX flavors, like HP−UX, support both command types; to distinguish between them, the BSD type is renamed bdf. Here is an example from HP−UX 10.20: bdf Filesystem Kbytes used avail used Mounted on devvg00lvol1 91669 58532 23970 71 devvg00lvol7 319125 252427 34785 88 var devvg00lvol6 350997 294527 21370 93 usr devvg00lvol5 99669 23060 66642 26 tmp devvg00lvol4 251285 189044 37112 84 opt The logical volume manager LVM is a standard part of the HP−UX 10.20 and creates the needed special device files for existing logical volumes. To get the report about index nodes this is actually a numerical report about files, use df −i the −i option refers to index nodes: df −i Filesystem iused ifree iused Mounted on devsd0a 1217 13887 8 devsd0g 13130 100150 12 usr devsd0h 10726 374426 3 home rs01−ch:home2gigrsxx−ch rsxx−ch mvaxgr:1DUB1: mvaxgrdisku2 hcprophet:hcprophet hcprophet The System V df command produces a different report. This example is from Solaris 2.6: df devdskc1t0d0s0: 1488210 blocks 290743files 134 This example is from HP−UX 10.20: df opt devvg00lvol4: 74224 blocks 36311 i−nodes tmp devvg00lvol5: 133284 blocks 15592 i−nodes usr devvg00lvol6: 42740 blocks 44762 i−nodes var devvg00lvol7: 69570 blocks 35897 i−nodes devvg00lvol1: 47940 blocks 11893 i−nodes The report includes: The filesystem mount point • The special file name • The number of blocks block=512 bytes • The number of inodes, i.e., files in use • The percentage field, with the used space represented as a percentage of the total space, is missing from the generic System V df report. However, this is the most used, and possibly the most valuable, piece of information generated by the BSD−type command. Some vendors, therefore, provide a special option for this purpose. On Solaris 2.x, the option −k in effect converts the existing df command into the Berkeley style one. df −k Filesystem kbytes used avail capacity Mounted on devdskc1t0d0s0 1280786 536681 740904 43 proc 0 0 0 0 proc fd 0 0 0 0 devfd devdskc1t0d0s3 192241 9 192040 1 altboot swap 565480 4416 561064 1 tmp devmddskd10 4211882 3544631 625133 86 files A frequent run of the df command is strongly recommended. This is an efficient way to prevent the filesystem from being overfilled. Typically, the administrator should be warned when 90 of the filesystem is in use. Please note that fulfilled system−critical filesystems root, usr, var can be fatal for the system. It is a good idea to automate the monitoring of filesystem statistics by periodically running the df command. Combined with an automatically generated warning e−mail, or a paging of the administrator, this can be a very efficient early warning method and could prevent more serious system problems. Some system administrators put the df command in the roots login scripts to be executed as each administrator logs into the system.

5.6.2 Report on Disk Usage: The du Command