|   | 
| hotsanic | Subversion Repositories: | 
Compare with Previous - Blame - Download
#!/usr/bin/env shif ! [ -e settings ]; then OUTFILE="settings"; else OUTFILE="settings.new"; fiOSTYPE=`uname`VERSION=`uname -r|awk -F "\." '{ if ( $2 < 3 ) { vrs = "2" ; } else { vrs = "4"; }; print $1"."vrs}'`cat > $OUTFILE << EOF# kernel version# KERNEL="2.2" for 2.1.x and 2.2.x kernels# KERNEL="2.4" for 2.3.x and 2.4.x kernels#EOFecho "KERNEL=\"$VERSION\"" >> $OUTFILEcat >> $OUTFILE << EOF# all entries have to be of the form:# DEV=<device>,<device name>## <device> the device-number as in /proc/stat -> disk_io# for kernels < 2.3 "0" is the first drive, "1" the second ...# <2.3 kernels support (unless patched) only 4 drives.## <device name> a description for the device## Example for Kernel >= 2.3:# DEV=8_0,sda# DEV=3_0,hda# DEV=22_0,hdc## Example for Kernel <= 2.2:# DEV=0,hda# DEV=1,hdb#EOFif [ "$OUTFILE" = "settings" ]; thenif [ "$OSTYPE" = "NetBSD" ]; then/usr/sbin/iostat -Ix | perl -ne 'chomp; ($drv,$rest) = split / /, $_; next if ($drv =~ /device/ || $drv =~ /md?/ ||$drv =~ /fd?/); print "DEV=$drv,$drv\n";' >> $OUTFILEfiif [ "$OSTYPE" = "FreeBSD" -o "$OSTYPE" = "OpenBSD" ]; thenecho "not supported yet, sorry"exit 1fiif [ "$OSTYPE" = "Linux" ]; thenDEVS=$(cat /proc/stat |grep disk_io | sed -e "s/):([0-9,]*//g; s/[()]//g; s/disk_io: //g")for DEV in $DEVS; doENTRY=$(echo $DEV | sed -e "s/,/_/g")NAME="(unknown)"case $ENTRY in3_0) NAME="/dev/hda";;3_64) NAME="/dev/hdb";;22_0) NAME="/dev/hdc";;22_64) NAME="/dev/hdd";;33_0) NAME="/dev/hde";;33_64) NAME="/dev/hdf";;34_0) NAME="/dev/hdg";;34_64) NAME="/dev/hdh";;8_0) NAME="/dev/sda";;8_1) NAME="/dev/sdb";;8_2) NAME="/dev/sdc";;8_3) NAME="/dev/sdd";;8_4) NAME="/dev/sde";;8_5) NAME="/dev/sdf";;8_6) NAME="/dev/sdg";;8_7) NAME="/dev/sdh";;8_8) NAME="/dev/sdi";;8_9) NAME="/dev/sdj";;8_10) NAME="/dev/sdk";;8_11) NAME="/dev/sdl";;8_12) NAME="/dev/sdm";;8_13) NAME="/dev/sdn";;8_14) NAME="/dev/sdo";;esacecho "found: $DEV - $ENTRY - $NAME"echo "DEV=$ENTRY,$NAME" >> $OUTFILEdonefifiif [ "$OUTFILE" = "settings.new" ]; thencat settings | grep "^DEV=" >> $OUTFILEfiechoecho "Please check the settings file and adapt it to satisfy your needs."if [ "$OUTFILE" = "settings.new" ]; thenmkdir -p backupNOW=`date +%Y%m%d-%H%M%S`mv -f settings backup/settings-$NOWmv -f settings.new settingsecho "a backup of the previous settings has been saved."fiecho# kernel2.4 source-snip (/usr/src/linux/fs/proc/proc_misc.c) :## proc_sprintf(page, &off, &len, "\ndisk_io: ");## for (major = 0; major < DK_MAX_MAJOR; major++) {# for (disk = 0; disk < DK_MAX_DISK; disk++) {# int active = kstat.dk_drive[major][disk] +# kstat.dk_drive_rblk[major][disk] +# kstat.dk_drive_wblk[major][disk];# if (active)# proc_sprintf(page, &off, &len, "(%u,%u):(%u,%u,%u,%u,%u) ", major, disk,# kstat.dk_drive[major][disk], kstat.dk_drive_rio[major][disk], kstat.dk_drive_rblk[major][disk],# kstat.dk_drive_wio[major][disk], kstat.dk_drive_wblk[major][disk]);# }# }