A handy script to which you can pass a single or multiple hostnames and in turn it fetches server stats of those remote systems namely Uptime & Load Avg, CPU Usage, Memory Usage, list of disks running out of space and list of hungry processes. In case you have not yet in an ansible managed environment, scripts such as this will be a time saver.


    echo "Enter Hostname(s) with space in between"
    echo "Type 'X' to exit"
    read -a Hostname
      if [ "${Hostname[0]}" == x ] || [ "${Hostname[0]}" == X ]; then
        for i in "${Hostname[@]}"
             ssh -T -o ConnectTimeout=10 -o ConnectionAttempts=1 $i <<'EOF'
             # if you need to ssh as different user replace 'username' with the actual username 
             # ssh -T -o ConnectTimeout=10 -o ConnectionAttempts=1 username@$i <<'EOF'
                     echo "Generated on", $(date)
                     echo "-----Hostname & OS-----"
                     cat /etc/*release 2> /dev/null
                     echo ""
                     echo "-----Uptime & Load Avg-----"
                     echo ""
                     echo "-----CPU Usage-----"
                     top -b -n2 -p 1 | fgrep "Cpu(s)" | tail -1 | awk -F'id,' -v prefix="$prefix" '{n=split($1, vs, ","); v=vs[n]; sub("%", "", v); printf "%s%.1f%%\n", prefix, 100 - v }'
                     echo ""
                     echo "-----Memory Usage-----"
                     echo `free | awk 'FNR == 3 {print $3/($3+$4)*100}'`%
                     echo ""
                     echo "-----Mount points with 90%+ disk usage-----"
                     echo "Filesystem            Size  Used Avail Use% Mounted on"
                     df -Ph | awk '0+$5 >= 90 {print}'
                     echo ""
                     echo "-----Top Processess-----"
                     echo "USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND"
                     ps auxf | sort -nr -k 4 | head -10
                     echo ""
           done >> server_stats_op.`date +%Y-%m-%d%H%M%S`.txt

The output of the script should prompt for hostnames/IP to fetch the details from.

Enter Hostname(s) with space in between
Type 'X' to exit