-
-
Save ismailh/0332590564dc7c0d917ef8c904cb2e12 to your computer and use it in GitHub Desktop.
CloudLinux Doctor Bash File
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
LC_ALL=en_US.UTF-8 | |
LANG=en_US.UTF-8 | |
LANGUAGE=en_US.UTF-8 | |
DEST=/root/cl-report | |
UPLOAD_URL=https://doctor.cloudlinux.com/doctor/upload | |
CAT=`command -v cat` | |
UNAME=`command -v uname` | |
CP="Unknown" | |
SERVER_ID= | |
cleanup() { | |
rm -f $DEST $DEST.wget | |
} | |
test_curl() { | |
command -v curl 2>&1 >/dev/null | |
return $? | |
} | |
test_wget() { | |
command -v wget 2>&1 >/dev/null | |
if [ 0 -eq $? ]; then | |
if [ -x `command -v wget` ]; then | |
return 0 | |
fi | |
fi | |
return 1 | |
} | |
curl_upload() { | |
curl -s -H "serverid: $SERVER_ID" -F reportfile=@"$DEST" $UPLOAD_URL | |
} | |
wget_upload() { | |
echo -e "--FILEUPLOAD\r\n" > $DEST.wget | |
echo -e "--FILEUPLOAD\r\n" > $DEST.wget | |
echo -e "Content-Disposition: form-data; name=\"reportfile\"; filename=\"$DEST\"\r\n" >> $DEST.wget | |
echo -e "Content-Type: application/octet-stream\r\n" >> $DEST.wget | |
echo -e "Media Type: application/octet-stream\r\n\r\n" >> $DEST.wget | |
cat $DEST >> $DEST.wget | |
echo -e "--FILEUPLOAD--\r\n" >> $DEST.wget | |
wget -O - -qq -t 1 --header="serverid: $SERVER_ID" --header="Content-type: multipart/form-data; boundary=FILEUPLOAD" --post-file $DEST.wget $UPLOAD_URL | |
} | |
upload() { | |
if test_curl | |
then | |
curl_upload | |
else | |
wget_upload | |
fi | |
echo | |
} | |
mecho(){ | |
echo $1 >> $DEST | |
} | |
start(){ | |
if ! test_wget; then | |
if ! test_curl; then | |
echo "Cannot find wget or curl" | |
fi | |
#echo "Using curl" | |
fi | |
echo "------ CL INFO ---" > $DEST | |
} | |
sep(){ | |
echo "------ $1 ---" >> $DEST | |
} | |
run(){ | |
sep "$1" | |
sh -c "$1" >> $DEST 2>&1 | |
} | |
dump() { | |
sep "cat $1" | |
$CAT $1 >> $DEST 2>&1 | |
} | |
get_server_id() { | |
if [ -f /etc/sysconfig/rhn/systemid ]; then | |
SERVER_ID=`grep '<value><string>ID-' /etc/sysconfig/rhn/systemid |sed -n 's:.*<string>ID-\(.*\)</string>.*:\1:p'` | |
else | |
SERVER_ID='NA' | |
fi | |
sep "SERVER ID" | |
mecho "serverid: $SERVER_ID" | |
} | |
detect_cp() { | |
CP_VERSION="Unknown" | |
SOFTACULOUS=0 | |
if [ -d "/usr/local/psa/admin/" ]; then | |
CP="Plesk" | |
CP_VERSION=`cat /usr/local/psa/version` | |
if [ -e "/usr/local/softaculous" ]; then SOFTACULOUS=1; fi | |
fi | |
if [ -d "/usr/local/cpanel/whostmgr/docroot/" ]; then | |
CP="cPanel" | |
CP_VERSION=`/usr/local/cpanel/cpanel -V` | |
if [ -e "/usr/local/cpanel/whostmgr/cgi/softaculous" ]; then SOFTACULOUS=1; fi | |
fi | |
if [ -d "/usr/local/interworx/" ]; then | |
CP="InterWorx" | |
CP_VERSION=`cat /usr/local/interworx/iworx.ini|grep version` | |
if [ -e "/usr/local/softaculous" ]; then SOFTACULOUS=1; fi | |
fi | |
if [ -d "/usr/local/ispmgr/" ]; then | |
CP="ISPmanager" | |
CP_VERSION=`/usr/local/ispmgr/bin/ispmgr -v` | |
if [ -e "/usr/local/softaculous" ]; then SOFTACULOUS=1; fi | |
fi | |
if [ -d "/usr/local/directadmin/plugins/" ]; then | |
CP="DirectAdmin" | |
CP_VERSION=`/usr/local/directadmin/custombuild/build versions|sed -n 2p|cut -d":" -f2` | |
if [ -e "/usr/local/directadmin/plugins/softaculous" ]; then SOFTACULOUS=1; fi | |
fi | |
if [ -d "/usr/local/hostingcontroller/" ]; then | |
CP="Hosting Controller" | |
if [ -e "/usr/local/softaculous" ]; then SOFTACULOUS=1; fi | |
fi | |
if [ -d "/hsphere/shared" ]; then | |
CP="H-Sphere" | |
fi | |
sep "Control Panel" | |
mecho "CP: $CP" | |
mecho "VERSION: $CP_VERSION" | |
mecho "SOFTACULOUS: $SOFTACULOUS" | |
} | |
apache_info() { | |
sep "Apache Info" | |
if [ $CP == "cPanel" ]; then | |
/usr/sbin/httpd -V >> $DEST 2>&1 | |
elif [ $CP == 'H-Sphere' ]; then | |
ps ax | grep httpd | grep hsphere | grep -v cpanel | head -1 | awk '{ print $5" -V"}' | sh >> $DEST 2>&1 | |
else | |
apachectl -V >> $DEST 2>&1 | |
fi | |
} | |
apache_modules() { | |
sep "Apache Modules" | |
if [ $CP == "cPanel" ]; then | |
/usr/sbin/httpd -M >> $DEST 2>&1 | |
elif [ $CP == 'H-Sphere' ]; then | |
ps ax | grep httpd | grep hsphere | grep -v cpanel | head -1 | awk '{ print $5" -M"}' | sh >> $DEST 2>&1 | |
else | |
apachectl -M >> $DEST 2>&1 | |
fi | |
} | |
apache_status() { | |
sep "Apache Status" | |
if [ $CP == "cPanel" ]; then | |
/usr/sbin/httpd status >> $DEST 2>&1 | |
elif [ $CP == 'H-Sphere' ]; then | |
ps ax | grep httpd | grep hsphere | grep -v cpanel | head -1 | awk '{ print $5" status"}' | sh >> $DEST 2>&1 | |
else | |
apachectl status >> $DEST 2>&1 | |
fi | |
} | |
apache_fullstatus() { | |
sep "Apache Full Status" | |
if [ $CP == "cPanel" ]; then | |
/usr/sbin/httpd fullstatus >> $DEST 2>&1 | |
elif [ $CP == 'H-Sphere' ]; then | |
ps ax | grep httpd | grep hsphere | grep -v cpanel | head -1 | awk '{ print $5" fullstatus"}' | sh >> $DEST 2>&1 | |
else | |
apachectl fullstatus >> $DEST 2>&1 | |
fi | |
} | |
cPanel_forkbomb() { | |
if [ $CP == 'cPanel' ]; then | |
sep "cPanel Fork Bomb Protectoin" | |
grep "#cPanel Added Limit Protections" /etc/bashrc >> $DEST 2>/dev/null | |
grep "#cPanel Added Limit Protections" /etc/profile >> $DEST 2>/dev/null | |
if [ -e /etc/profile.d/limits.sh ]; then | |
echo /etc/profile.d/limits.sh exists >> $DEST | |
fi | |
if [ -e /etc/profile.d/limits.csh ]; then | |
echo /etc/profile.d/limits.csh exists >> $DEST | |
fi | |
fi | |
} | |
get_main_ip() { | |
sep "Main IP" | |
if test_curl | |
then | |
curl -4 -s -L http://cloudlinux.com/showip.php >>$DEST 2>&1 | |
else | |
wget -qq --inet4-only -O - http://cloudlinux.com/showip.php >>$DEST 2>&1 | |
fi | |
echo >>$DEST | |
} | |
litespeed_arch() { | |
sep "LiteSpeed Arch" | |
file `readlink -f /usr/local/lsws/bin/lshttpd` >> $DEST 2>&1 | |
} | |
start | |
echo -n "Generating report..." | |
get_server_id | |
run "date" | |
run "$CAT /proc/cpuinfo" | |
run "$UNAME -a" | |
run "$UNAME -r" | |
run "$UNAME -m" | |
run "$UNAME -p" | |
run "$UNAME -o" | |
dump "/etc/redhat-release" | |
run 'rpm -q -a --queryformat="%{N}|%{V}-%{R}|%{arch}\n"' | |
dump "/etc/sysconfig/kernel" | |
dump "/proc/uptime" | |
dump "/proc/loadavg" | |
dump "/proc/vmstat" | |
dump "/proc/devices" | |
dump "/proc/diskstats" | |
dump "/proc/cmdline" | |
dump "/proc/mdstat" | |
dump "/proc/meminfo" | |
dump "/proc/swaps" | |
dump "/proc/filesystems" | |
dump "/proc/mounts" | |
dump "/proc/self/mountinfo" | |
dump "/proc/interrupts" | |
dump "/boot/grub/grub.conf" | |
run "grep DEFAULT /etc/default/grub" | |
run "grep vmlinuz /boot/grub2/grub.cfg| sed 's/root=.*//'" | |
dump "/boot/grub2/grub.cfg" | |
dump "/proc/zoneinfo" | |
run "ls -la /etc/grub.conf /boot/grub/grub.conf /boot/grub/menu.lst" | |
run "ls -l /boot" | |
run "ls -l /var/lve/" | |
run "export" | |
dump "/etc/sysconfig/i18n" | |
litespeed_arch | |
run "lvectl list" | |
run "lvectl list-user" | |
run "lveinfo -d --period=1d --by-fault=any" | |
run "php -i" | |
run "lspci" | |
run "ps auxwH" | |
dump "/sys/block/[xsh]*d*/queue/scheduler" | |
run "echo /sys/block/[shx]*d*" | |
run "mount" | |
dump "/etc/fstab" | |
run "iostat" | |
run "vmstat 1 3" | |
run "ifconfig|grep 'inet addr'|wc -l" | |
run "netstat -n" | |
run "top -b -n1" | |
run "iotop -b -n1" | |
run "df -h" | |
run "df -i" | |
run "echo /etc/yum.repos.d/*" | |
run "grep Port /etc/ssh/sshd_config" | |
dump "/etc/yum.conf" | |
run "yum repolist" | |
run "grep -n enabled /etc/yum/pluginconf.d/*" | |
dump "/proc/lve/list" | |
dump "/proc/user_beancounters" | |
run "dmidecode" | |
run "virt-what" | |
run "ipcs -m|sed -e s/-/=/g" | |
run "strings /opt/suphp/sbin/suphp|grep lve" | |
run "strings /usr/local/apache/bin/suexec|grep lve" | |
run "strings /usr/sbin/suexec|grep lve" | |
run "/usr/local/cpanel/bin/rebuild_phpconf --current" | |
run "cagefsctl --display-user-mode" | |
run "cagefsctl --cagefs-status" | |
run "cagefsctl --sanity-check" | |
run "cat /etc/cagefs/cagefs.mp" | |
run "grep pam_lve /etc/pam.d/*" | |
run "mysql -V" | |
run "lsmod" | |
run "locale" | |
run "grep -i rlimit /etc/httpd/conf/*.conf /etc/httpd/conf/*/*.conf /etc/httpd/conf.d/*.conf" | |
run "sysctl -a" | |
dump "/etc/sysctl.conf" | |
run "lveps -p" | |
dump "/etc/container/ve.cfg" | |
dump "/etc/sysconfig/lvestats" | |
dump "/etc/sysconfig/lvestats2" | |
dump "/etc/sysconfig/lvestats2.readonly" | |
run "ls -l /etc/cpanel/ea4" | |
dump /etc/cpanel/ea4/php.conf | |
dump /etc/cpanel/ea4/paths.conf | |
dump /etc/mdadm.conf | |
run "sar -W -f /var/log/sa/sa$(date +%d)" | |
run "sar -W -f /var/log/sa/sa$(date +%d -d yesterday)" | |
run "sar -q -f /var/log/sa/sa$(date +%d)" | |
run "sar -q -f /var/log/sa/sa$(date +%d -d yesterday)" | |
run "sar -u -f /var/log/sa/sa$(date +%d)" | |
run "sar -u -f /var/log/sa/sa$(date +%d -d yesterday)" | |
run "ls -l /usr/share/cagefs/.cpanel.multiphp/opt/cpanel/ea-php*/root/usr/bin/*php*" | |
run "ls -l /usr/share/cagefs/.cpanel.multiphp/opt/cpanel/ea-php*/root/etc/php.ini*" | |
run "ls -l /opt/cpanel/ea-php*/root/usr/bin/*php*" | |
run "ls -l /opt/cpanel/ea-php*/root/etc/php.ini*" | |
run "find /etc/cl.php.d -ls" | |
for file in `ls /etc/sysconfig/lvestats.config/*.cfg 2>/dev/null`; do | |
dump $file | |
done | |
run "tail -n 100 /var/log/lve-stats.log" | |
run "tail -n 500 /var/log/up2date" | |
run '/opt/alt/python27/bin/python -c "from lvestats.lib.ustate import get_lveps; print get_lveps()"' | |
run "ls -la /etc/cl.selector" | |
dump "/etc/cl.selector/defaults.cfg" | |
dump "/etc/cl.selector/selector.conf" | |
dump "/etc/container/mysql-governor.xml" | |
run 'tail -n20 /var/log/dbgovernor-error.log' | |
run 'tail -n500 /var/log/yum.log' | |
run 'getent group linksafe' | |
run 'repquota -a' | |
dump '/etc/container/cl-quotas.dat' | |
run 'cldiag --all' | |
get_main_ip | |
detect_cp | |
apache_info | |
apache_modules | |
apache_status | |
apache_fullstatus | |
cPanel_forkbomb | |
echo "Uploading..." | |
echo -n "Key: " | |
upload | |
cleanup | |
echo "Please, provide above mentioned key to CloudLinux Support Team" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment