Home | History | Annotate | Download | only in fs_maim
      1 #!/usr/bin/perl -w
      2 #
      3 #   Copyright (c) International Business Machines  Corp., 2000
      4 #
      5 #   This program is free software;  you can redistribute it and/or modify
      6 #   it under the terms of the GNU General Public License as published by
      7 #   the Free Software Foundation; either version 2 of the License, or
      8 #   (at your option) any later version.
      9 #
     10 #   This program is distributed in the hope that it will be useful,
     11 #   but WITHOUT ANY WARRANTY;  without even the implied warranty of
     12 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
     13 #   the GNU General Public License for more details.
     14 #
     15 #   You should have received a copy of the GNU General Public License
     16 #   along with this program;  if not, write to the Free Software
     17 #   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     18 #
     19 
     20 #
     21 #  FILE(s)     : partbeat
     22 #  DESCRIPTION : Quick test to test storage management functions like mount and fsck.
     23 #                More can be added later without much trouble.  Command line takes the
     24 #                partition device name (ex: /dev/hda1), an integer for how many iterations
     25 #                of the test you would like to run and the filesystem type to use (jfs or ext2 for now).
     26 #  AUTHOR      : Jeff Martin (martinjn (at] us.ibm.com)
     27 #  HISTORY     :
     28 #
     29 
     30 $target=$ARGV[0];
     31 $iterations=$ARGV[1];
     32 $fstype=$ARGV[2];
     33 
     34 print "mkfs:";
     35 if ($fstype =~ /jfs\b/i) {
     36     $tmp = `mkfs.jfs -f $target`;
     37     }
     38 elsif ($fstype =~ /ext2\b/i) {
     39     $tmp=`mkfs $target`;
     40     }
     41 elsif ($fstype =~ /ext3\b/i) {
     42     $tmp=`mkfs -t ext3 $target`;
     43     }
     44 elsif ($fstype =~ /reiserfs\b/i) {
     45     $tmp=`mkreiserfs --format 3.6 -f $target`;
     46     }
     47 else {
     48     $tmp=`mkfs $target`;
     49     }
     50 print $tmp;
     51 
     52 print "fsck:";
     53 $tmp=`fsck -t $fstype -a $target`;
     54 print $tmp;
     55 
     56 ($junk,$junk,$device)=split(/\//,$target);
     57 
     58 `mkdir $device`;
     59 
     60 for ($i=1;$i<=$iterations;$i++) {
     61     print "mount:";
     62     $tmp=`mount -t $fstype $target $device`;
     63     print ($tmp."\n");
     64 
     65     `touch $device/indicator$i`;
     66 
     67     print "umount:";
     68     $tmp=`umount $target`;
     69     print ($tmp."\n");
     70     }
     71 
     72 print "fsck:";
     73 $tmp=`fsck -t $fstype -a $target`;
     74 print $tmp;
     75 
     76 `mount -t $fstype $target $device`;
     77 `rm -f $device/indicator*`;
     78