Skip to content

Latest commit

 

History

History
91 lines (76 loc) · 2.27 KB

File metadata and controls

91 lines (76 loc) · 2.27 KB

Simple shell script to check recommended kernel settings on a RHEL server

This page will give a simple, quick and dirty shell script, that could be customized for the environment where it is run, to check for various DataStax recommended production kernel settings on a RHEL server, run by a linux system administrator with root level access.

#!/bin/bash
# Script to do recommended settings check across DSE servers

dev_servers="
sxn1da0009
sxn1da0020
sxn1da0029
"

si_servers="
sxn1da0010
sxn1da0011
sxn1da0021
sxn1da0022
sxn1da0030
sxn1da0031
"

root_check_dse_prod_settings() {
  server=$1

  commands=(
    "file /etc/localtime"
    "systemctl status ntpdate"
    "sysctl net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_probes net.ipv4.tcp_keepalive_intvl net.core.rmem_max net.core.wmem_max net.core.rmem_default net.core.wmem_default net.core.optmem_max net.ipv4.tcp_rmem net.ipv4.tcp_wmem"
    "cat /etc/sysctl.conf"
    "cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor"
    "cat /sys/class/block/sda/queue/rotational"
    "cat /sys/class/block/sda/queue/read_ahead_kb"
    "cat /proc/sys/vm/zone_reclaim_mode"
    "grep cassandra /etc/security/limits.conf"
    "grep vm.max_map_count /etc/sysctl.conf"
    "swapon"
    "grep vm.swappiness /etc/sysctl.conf"
    "cat /sys/kernel/mm/transparent_hugepage/defrag"
    )

  for cmd in "${commands[@]}"; do
    echo 
    echo 
    echo "## COMMAND: $cmd"
    ssh root@$server -- $cmd 2>&1 | tail +16
    echo "## END COMMAND: $cmd"
    echo 
    echo 
  done
}

success_count=0
success_servers=
error_count=0
error_servers=
for i in $dev_servers $si_servers; do
  echo "# Server: $i"

  server=$i.customer_name.com

  if root_check_dse_prod_settings $server; then
    echo
    echo "SUCCESS: command finished on $server"

    success_count=$((success_count + 1))
    success_servers="$success_servers\n$server"
  else
    echo
    echo "ERROR: command failed on $server"

    error_count=$((error_count + 1))
    error_servers="$error_servers\n$server"
  fi

  echo
  echo
  echo

done

echo "Success count: $success_count"
echo -e "Success servers: $success_servers"
echo
echo
echo "Error count: $error_count"
echo -e "Error servers: $error_servers"

echo