#!/bin/bash echo "[ Syn-3 automated burn-in test. ]" echo ############# INIT CPUS=`cat /proc/cpuinfo |egrep ^processor|wc -l` MEM=`cat /proc/meminfo |egrep ^MemTotal|sed s/[^0-9]//g`000 IP=$1 PARTS=`mdadm --detail /dev/md0|grep /dev|grep -v :|sed 's/.* //'` for PART in $PARTS; do DISKS="$DISKS `getdisk $PART`" done echo "Detected CPU's: $CPUS." echo "Detected memory: $MEM bytes" echo "Detected Syn-3 disks: $DISKS" #if ! [ "$IP" ]; then # echo "Usage: $0 " # echo " Runs stresstest on hardware and pingfloods IP to test network card." # exit 1 #fi echo "Pingflood IP: $IP" abort() { killall ping 2>/dev/null echo "########################################" if [ "$1" != "0" ]; then echo "ERROR - STRESSTEST FAILED!" echo "Press enter to continue.." read else echo "STRESSTEST SUCCEEDED" fi exit $1 } #ctrl-c is clean exit trap "echo Aborting...;abort 0" 2 ############# READ-TEST ALL DISKS disktest() { DISK=$1 SIZE=`sfdisk -s $DISK` echo echo "Read-testing disk $1, size $SIZE Kb..." dd if=$DISK of=/dev/null || abort 1 echo "Disk $1 is OK!" } for DISK in $DISKS; do disktest $DISK done ############# STRESS TEST echo echo "Stress-testing hardware..." echo "This test takes at least 12 hours!" if [ "$IP" ]; then ping -q -f $IP & fi #(( MEM=MEM/2 )) MEM=64000000 while true; do stress -t 12h --io 1 --cpu $CPUS --hdd 1 --vm 1 --vm-bytes $MEM || abort 1 echo "(CTRL-C to end testing)" done