ciphermethod.com

Scripts

20091222: raidcheck.sh

by on Dec.22, 2009, under Scripts

#!/bin/bash

# raidcheck.sh – search for SAS1064 or Adaptec AAC-RAID controller and report failed drives
#
# Created 20091222 Jamey Hopkins
# Note: replaced by 20110511: raidcheck.sh

process_mpt-status() {
   ID=`grep Found status.0 | cut -f2 -d= | cut -f1 -d,`
   /usr/sbin/mpt-status -i $ID -s >status.1
   C1=`cat status.1 | grep phys_id | wc -l`
   C2=`cat status.1 | grep phys_id | grep ONLINE | wc -l`
   [ “$C1” = “0” ] && echo “No Drives Found”
   [ “$C1” = “$C2” ] && echo “$C2 of $C1 Drives Are Online”
   #echo “Controller ID=$ID”
  
   if [ $C2 -lt $C1 ]
   then
 echo “ERROR: Failed SAS Drive Found”
        echo “$C2 of $C1 Drives Are ONLINE”
 echo
 exit 2
   fi
}

AACRAID=”0″;SAS1064=”0″

# search for SAS1064 controller
DATA=`/sbin/lspci | grep SAS1064 2>/dev/null`
if [ “$DATA” != “” ]
then
 #echo Process SAS
 SAS1064=”1″
 # check if mptctl module is loaded
 MPT=`/sbin/lsmod | grep mptctl 2>/dev/null`
 [ ! -n “$MPT” ] && echo “mptctl module not loaded”
 /usr/sbin/mpt-status -p >status.0 2>&1
 grep “not found” status.0 >/dev/null
 if [ “$?” = “0” -a ! -n “$MPT” ]
 then
  echo “mpt-status not found in /usr/sbin”
 else
  process_mpt-status
 fi
fi

# search for Adaptec AAC-RAID controller
DATA=`/sbin/lspci | grep AAC-RAID 2>/dev/null`
if [ “$DATA” != “” ]
then
  #echo Process AAC-RAID
 AACRAID=”1″
 STATE=`/usr/StorMan/arcconf getconfig 1 | grep “Logical devices/Failed/Degraded” | cut -f2 -d: | xargs echo`
 #echo state is -${STATE}-
 if [ “$STATE” != “1/0/0” ]
 then
  echo ERROR: AAC-RAID Failed Drive Found
  echo
  exit 2
 else
  echo “AAC-RAID: No failed or degraded drives found.”
 fi
fi

if [ $SAS1064 = 0 -a $AACRAID = 0 ]
then
 echo “No controllers found.”
fi

rm status.0 status.1 >/dev/null 2>&1

exit 0

Leave a Comment more...

BASH: createsftpaccount.sh

by on Mar.04, 2009, under Linux, Scripts


#!/bin/sh
#
# Create SFTP user account
#
# 20090304 jah - new
#

if [ "$1" == "" ]
then
  echo
  echo user login to create is blank
  echo use: $0 user
  echo
  exit
fi
 
/usr/sbin/useradd -g sftponly -d /sftpusers/$1 $1
mkdir -p /sftpusers/$1/data
chown root:root /sftpusers/$1
chmod 755 /sftpusers/$1
chown $1:sftponly /sftpusers/$1/data
chmod 700 /sftpusers/$1/data
passwd $1

Leave a Comment more...

20060425: dacprobe

by on Apr.25, 2006, under AIX, Linux, Scripts

#!/bin/sh
# dacprobe - monitor/audit daemon (drive space and rootkits)
# 20040830 - created by jamey hopkins
#
# 20050425 jah - added -x option to ssh command in order to speed up ssh call
# 20050811 jah - added SSH fail notice
# 20060425 jah - use -P on linux df to prevent drive space being placed on second line
#                shows up on servers with logical volumes

# spaces at start/end required
TEST=" lenxintq1 tto xto tlv qlv qto xlv "
PROD=" cvs dacadmin dacbup1 dacedip1 dacxextp1 dlv dms dto dxr fax1 fax2 ibb ibmtransp1 ibmxextp1 icc imserv1 lencextp1 lencometp1 lenpsp1 lentransp1 lenxintp1 ncc ns1 ns2 ticket toshcometp1 "
ALL="$PROD $TEST"
DLIMIT=90
MAILA="user@server.com"
MAILB="user@server.com pager@myairmail.com"

# check drive space
echo
echo -n "Checking Disk Space->"
echo >space.list
for HOST in `echo $ALL`
do
   echo -n " $HOST"
   if [ "$HOST" = "dacedip1" -o "$HOST" = "lenpsp1" ]
   then
      ssh -x $HOST df -k >dacprobe.$$ 2>/dev/null
      [ $? -ne 0 ] && FAIL="$FAIL $HOST"
   else
      ssh -x $HOST df -P >dacprobe.$$ 2>/dev/null
      [ $? -ne 0 ] && FAIL="$FAIL $HOST"
   fi

   COUNT=`cat dacprobe.$$ | wc -l | xargs echo`
   COUNT=`expr $COUNT - 1`
   cat dacprobe.$$ | tail -$COUNT >temp.$$ 2>/dev/null
   cat temp.$$ | grep -v cdrom >dacprobe.$$
   while read LINE
   do
      PERCENT=`echo $LINE | awk '{ print $5 }'`
      # redo PERCENT var if host is AIX
      [ "$HOST" = "lenpsp1" ] && PERCENT=`echo $LINE | awk '{ print $4 }'`
      PERCENT=`echo $PERCENT | sed 's/%//g'`
      if [ $PERCENT -gt $DLIMIT ]
      then
         PART=`echo $LINE | awk '{ print $6 }'`
	 # redo PART var if host is AIX
         [ "$HOST" = "lenpsp1" ] && PART=`echo $LINE | awk '{ print $7 }'`
	 HCAPS=`echo $HOST | tr [a-z] [A-Z]`
	 echo "${HCAPS}'s Partition $PART is ${PERCENT}% Full" >> space.list
         [ "$EMAIL" != "$MAILB" ] && EMAIL=$MAILA
	 # page if a prod server and > 98 percent full
	 echo $PROD | grep $HOST >/dev/null 2>&1
         [ $? -eq 0 -a $PERCENT -gt 98 ] && EMAIL=$MAILB
      fi
   done > space.list
	echo "WARNING - Drive Space Check Failed on the Following Servers:" >>space.list
	echo "$FAIL" >>space.list
	echo >> space.list
	echo "Please make sure dacprobe account exists and the SSH exchanges happen auto magically." >> space.list
	echo "If server is permanently down, then remove it from the list of servers to monitor." >> space.list
fi

if  [ -s space.list ]
then
   echo
   cat space.list
   {
      echo "subject: Drive Partition Exceeds ${DLIMIT}% Full Limit"
      echo "Partition Information:"
      cat space.list
      echo
      echo "Servers Checked:"
      echo "P:$PROD"
      echo "T:$TEST"
   } | /usr/sbin/sendmail -ONoRecipientAction=add-to -fdacprobe -oi "$EMAIL"
fi
rm space.list
echo

################  gather up chkrootkit output files and email

echo -n "Gather and Mail CHKROOTKIT Reports->"
PROD=" dlv dms dxr ibmpsp1 lenpsp1 lenxintp1 dacxextp1 dacxextq1 "
rm /tmp/chkrootkit.mailfile >/dev/null 2>&1
for HOST in `echo $PROD`
do
   echo -n " $HOST"
 ssh -x $HOST "cat /tmp/chkrootkit.status.*" >>/tmp/chkrootkit.mailfile 2>/dev/null
done

{
  echo "subject: CHKROOTKIT Status Report"
  echo
  echo "Servers Checked:"
  echo "P:$PROD"
  echo
  echo "Server Reports Returned:"
  cat /tmp/chkrootkit.mailfile 2>/dev/null
} | /usr/sbin/sendmail -ONoRecipientAction=add-to -fdacprobe -oi "$EMAIL"

echo 
echo
Leave a Comment more...

20040728: si (System Information)

by on Jul.28, 2004, under Linux, Scripts

#!/bin/sh
# System Information for Linux/SCO Openserver
# Created: 07 April 2000
#      by: Jamey Hopkins
#
# 23July2002 jah - send error on uptime and ps to /dev/null to handle
#                  output of unknown HZ value linux kernel bug 
# 28July2004 jah - added CPU information / format change
#

OS=`uname`
CPU=`cat /proc/cpuinfo | grep "model name" | tail -1 | awk -F: '{ print $2 }' | xargs echo`
NCPU=`cat /proc/cpuinfo | grep "processor" | wc -l | xargs echo`
MHZ=`cat /proc/cpuinfo | grep "MHz" | tail -1 | awk -F: '{ print $2 }' | xargs echo`

echo
echo [ `uname -n | tr a-z A-Z` ]
date
printf "%s on %s %s (%s MHz)\n" "$OS" "$NCPU" "$CPU" "$MHZ"
STATS=`uptime 2>/dev/null`
echo $STATS

echo
echo "Active Processes Using >= 1% of CPU:"
echo _________________________________________________________

if [ "$OS" = "Linux" ]
then
	ps -e -o user -o pid -o c -o args 2>/dev/null | grep -v ' 0 '
elif [ "$OS" = "SCO_SV" ]
then
	ps -A -o user -o pid -o c -o args 2>/dev/null | grep -v ' 0 ' \
                 | grep -v $$ > /tmp/ps.tmp
	echo "UID\\t\\tPID\\tC\\tCMD"
	while read data
	do
		set $data
		if [ $3 -gt 4 ]
		then
			echo -n $1\\t 
			if [ `expr length $1` -lt 8 ]
				then echo -n \\t
			fi
			echo $2\\t$3\\t$4' '$5
		fi
	done < /tmp/ps.tmp
fi
echo _________________________________________________________
rm /tmp/si.tmp /tmp/usr.tmp /tmp/ps.tmp >/dev/null 2>&1
echo

Leave a Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

But Wait, There's More!

A few highly recommended friends...