Scripts
From My Wiki
Revision as of 09:07, 14 March 2017 by Meadmin (talk | contribs) (Created page with " == Flying replication == rsync -avz 192.168.1.122:/usr/local/apache/conf/ /usr/local/apache/conf/ --delete rsync -avz 192.168.1.122:/var/named/ /var/named/ --delete rsync...")
Contents
Flying replication
rsync -avz 192.168.1.122:/usr/local/apache/conf/ /usr/local/apache/conf/ --delete rsync -avz 192.168.1.122:/var/named/ /var/named/ --delete rsync -avz 192.168.1.122:/usr/local/cpanel/ /usr/local/cpanel/ --delete rsync -avz 192.168.1.122:/var/cpanel/ /var/cpanel --delete for x in `cat /etc/trueuserowners|grep -v "#"|cut -d: -f1`;do /usr/local/cpanel/bin/setsiteip -u $x `hostname -i` ;done; /scripts/rebuildhttpdconf
WHM replication to clean server
#!/bin/bash rsync -avz 172.18.0.2:/etc/apache2/conf/ /etc/httpd/conf/ rsync -avz 172.18.0.2:/var/cpanel/ssl/installed/ /etc/ssl/certs/ rsync -avz 172.18.0.2:/etc/apache2/conf.d/includes/ /etc/httpd/conf.d/includes/ rsync -avz 172.18.0.2:/var/cpanel/ssl/cpanel/ /etc/ssl/certs/cpanel/ sed -i "s/172.18.0.2/`hostname -i`/g" /etc/httpd/conf/httpd.conf sed -i "s/\/var\/cpanel\/ssl\/installed\//\/etc\/ssl\/certs\//g" /etc/httpd/conf/httpd.conf sed -i "s/\/etc\/apache2\//\/etc\/httpd\//g" /etc/httpd/conf/httpd.conf sed -i "s/RewriteMap LeechProtect/\#RewriteMap LeechProtect/g" /etc/httpd/conf/httpd.conf sed -i "s/Mutex file:\/run\/apache2/\#Mutex file:\/run\/apache2/g" /etc/httpd/conf/httpd.conf sed -i "s/apache2/httpd/g" /etc/httpd/conf/httpd.conf sed -i "s/\/var\/cpanel\/ssl\/cpanel\//\/etc\/ssl\/certs\/cpanel\//g" /etc/httpd/conf/httpd.conf
WHM replicate suphp to clean server
scp /usr/lib64/httpd/modules/mod_suphp.so 172.18.0.6:/usr/lib64/httpd/modules/ scp /etc/httpd/conf.modules.d/90-suphp.conf 172.18.0.6:/etc/httpd/conf.modules.d/ scp /usr/lib64/httpd/modules/mod_suphp.so 172.18.0.6:/usr/lib64/httpd/modules/ scp /usr/sbin/suphp 172.18.0.6:/usr/sbin/ scp /etc/suphp.conf 172.18.0.6:/etc/ scp /etc/httpd/conf.d/php.conf 172.18.0.6:/etc/httpd/conf.d/ scp /etc/httpd/conf.modules.d/10-php.conf 172.18.0.6:/etc/httpd/conf.modules.d/ chown root.nobody /usr/sbin/suphp chmod 4750 /usr/sbin/suphp
Sync nginx conf
- !/bin/bash
servs=(192.168.0.11 192.168.0.12 192.168.0.15 192.168.0.16 192.168.0.17 192.168.0.19 192.168.0.20 192.168.0.21 192.168.0.22 192.168.0.23 192.168.0.24 192.168.0.26 192.168.0.115 192.168.0.116 192.168.0.117 192.168.0.118 192.168.0.29 192.168.0.30)
for i in "${servs[@]}"
do
echo $i
scp nginx_conf/nginx.conf $i:/etc/nginx/
scp nginx_conf/.htpasswd $i:/etc/nginx/
scp -r nginx_conf/conf.d $i:/etc/nginx/
ssh $i 'sed -i "s/Lxxx/`echo L\`hostname|cut -d "-" -f1|sed "s/web//"\``/g" /etc/nginx/conf.d/* && service nginx restart'
done
Manage CWM auto start and stop server
#!/bin/bash
. keys.sh
minservs=4
maxservs=8
locon=2500
hicon=8000
servs=($serv_01 $serv_02 $serv_03 $serv_04 $serv_05 $serv_06 $serv_07 $serv_08)
onservs=0
conns=0
#echo ${servs[@]}
for i in "${servs[@]}"
do
readarray -t values < <(curl -s -H "AuthClientId: ${clientId}" -H "AuthSecret: ${secret}" "https://console.cloudwm.com/service/server/${i}"|/root/api/jq -r '(map(values))[]') # | egrep "power|ip"
#echo ${values[6]} ##power
#echo ${values[14]} |sed 's/\"//g' ##ips
if [ ${values[6]} == 'on' ]; then
#onservs=$((onservs+1))
((onservs++))
ip=$(echo ${values[14]} |tr -d \"\'\",\") ##ips
curcon=$(ssh $ip "netstat -ant | grep :80 | wc -l")
#echo $ip , $curcon
conns=$((conns+curcon))
fi
#declare -p values
done
#echo "On servers: " $onservs
#echo "Connections: " $conns
mid=$((conns/onservs))
#echo "mid: " $mid
if [[ $mid > $hicon ]] && [[ $onservs < $maxservs ]]; then ## power on +1
#echo "hi"
srv=${servs[onservs]}
#echo $srv
curl -s -H "AuthClientId: ${clientId}" -H "AuthSecret: ${secret}" -X PUT -d "power=on" "https://console.cloudwm.com/service/server/${srv}/power"
elif [[ $mid < $locon ]] && [[ $onservs > $minservs ]]; then ## power off -1
#echo "lo" $onservs
srv=${servs[onservs-1]}
#echo $srv
curl -s -H "AuthClientId: ${clientId}" -H "AuthSecret: ${secret}" -X PUT -d "power=off" "https://console.cloudwm.com/service/server/${srv}/power"
fi
SQL dump
#!/bin/bash
retain=7 ## days to keep
logdir="/var/www/html/sqlbackups/" ## dumps folder
prename="db_Backup" ## name prefix
postname=".sql.gz" ## name suffix
mailaddr="eitani@gmail.com"
dumpcmd="mysqldump --all-databases"
date=`date +"%d%b%y"`
tmst='date +%Y%m%d-%H%M%S.%N'
outstr="[`$tmst`]: Dump started\n"
fullname=$logdir$prename"_"$date$postname
if [ -z "$logdir" ]; then
outstr=$outstr"[`$tmst`]: Log directory not set\n"
out=1
else
outstr=$outstr"[`$tmst`]: Running dump $dumpcmd | gzip -c > $fullname\n"
$dumpcmd | gzip -c > $fullname
out=$?
fi
if $out = 0 ; then
outstr=$outstr"[`$tmst`]: Dump done, file: $fullname\n"
outstr=$outstr"[`$tmst`]: Deleting old backups (older than $retain days) from folder: $logdir\n"
outstr=$outstr"[`$tmst`]: Files to be deleted: `find $logdir -type f -mtime +$retain `\n"
`find $logdir -type f -mtime +$retain -exec rm {} \;`
else
outstr=$outstr"[`$tmst`]: Dump failed\n"
fi
outstr=$outstr"[`$tmst`]: Script done\n"
#echo -e $outstr
mailtxt="Subject: SQLdump on webbit server\nFrom: script@webbit.web\nTo: $mailaddr\n\n$outstr"
echo -e $mailtxt | sendmail -t