topical media & game development

talk show tell print

basic-shell-13-diskcheck.sh / sh



  #!/bin/sh
  
  # Output warnings if disks are too full (in percentage
  # terms) or have too little space available.
  
  # This script goes through all the mounted filesystems
  # and checks each to see if the disk is nearly full,
  # reporting only on those disks that warrant more attention.
  
  # Set thresholds
  min_free=4000
  
  max_in_use=55
  
  # Get a list of all file systems.
  filesystems=`df -k | grep -v Use | grep -v none | awk '{ print $6 }'`
  
  for filesystem in filesystems
  do
      # Cache results for this file system.
      entry=`df -k filesystem | tail -1`  
  
      # Split out the amount of space free as well as in-use percentage.
      free=`echo entry | cut -d' ' -f4`
      in_use=`echo entry | cut -d' ' -f5 | cut -d'%' -f1 `
  
      # Check the file system percent in use.
      if [ $(expr "in_use > max_in_use" ) ]
      then
          echo "filesystem has only free KB free at in_use%."
      else
          # Check the available space against threshold.
          # Only make this check if the in use is OK.
  
          result=$( echo "
              scale=2   /* two decimal places */
              print free < min_free" | bc)
  
          #if [ $(expr "free < min_free" ) ]
          if [ $(expr "result != 0" ) ]
          then
              echo "filesystem has only free KB free."
          fi
      fi
  
  done
  
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.