You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.1 KiB
78 lines
2.1 KiB
#!/usr/bin/perl -w
|
|
#
|
|
# Copyright (c) International Business Machines Corp., 2000
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
|
|
# the GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
#
|
|
|
|
#
|
|
# FILE(s) : partbeat
|
|
# DESCRIPTION : Quick test to test storage management functions like mount and fsck.
|
|
# More can be added later without much trouble. Command line takes the
|
|
# partition device name (ex: /dev/hda1), an integer for how many iterations
|
|
# of the test you would like to run and the filesystem type to use (jfs or ext2 for now).
|
|
# AUTHOR : Jeff Martin (martinjn@us.ibm.com)
|
|
# HISTORY :
|
|
#
|
|
|
|
$target=$ARGV[0];
|
|
$iterations=$ARGV[1];
|
|
$fstype=$ARGV[2];
|
|
|
|
print "mkfs:";
|
|
if ($fstype =~ /jfs\b/i) {
|
|
$tmp = `mkfs.jfs -f $target`;
|
|
}
|
|
elsif ($fstype =~ /ext2\b/i) {
|
|
$tmp=`mkfs $target`;
|
|
}
|
|
elsif ($fstype =~ /ext3\b/i) {
|
|
$tmp=`mkfs -t ext3 $target`;
|
|
}
|
|
elsif ($fstype =~ /reiserfs\b/i) {
|
|
$tmp=`mkreiserfs --format 3.6 -f $target`;
|
|
}
|
|
else {
|
|
$tmp=`mkfs $target`;
|
|
}
|
|
print $tmp;
|
|
|
|
print "fsck:";
|
|
$tmp=`fsck -t $fstype -a $target`;
|
|
print $tmp;
|
|
|
|
($junk,$junk,$device)=split(/\//,$target);
|
|
|
|
`mkdir $device`;
|
|
|
|
for ($i=1;$i<=$iterations;$i++) {
|
|
print "mount:";
|
|
$tmp=`mount -t $fstype $target $device`;
|
|
print ($tmp."\n");
|
|
|
|
`touch $device/indicator$i`;
|
|
|
|
print "umount:";
|
|
$tmp=`umount $target`;
|
|
print ($tmp."\n");
|
|
}
|
|
|
|
print "fsck:";
|
|
$tmp=`fsck -t $fstype -a $target`;
|
|
print $tmp;
|
|
|
|
`mount -t $fstype $target $device`;
|
|
`rm -f $device/indicator*`;
|