From 45614bc9f0afa74fee98d6e1468cf96b0e88fe51 Mon Sep 17 00:00:00 2001 From: icez network Date: Mon, 30 Jun 2014 12:01:40 +0700 Subject: [PATCH] add change ip script for server migration/ip change provided by kke@ThaiHostTalk http://www.thaihosttalk.com/showthread.php/77282 --- bin/v-change-server-ip | 127 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100755 bin/v-change-server-ip diff --git a/bin/v-change-server-ip b/bin/v-change-server-ip new file mode 100755 index 000000000..0129c10c3 --- /dev/null +++ b/bin/v-change-server-ip @@ -0,0 +1,127 @@ +#!/bin/sh + +#script to change ips on a VestaCP server. +#usage: +# $0 + +LOG=/var/log/vesta/system.log + +MYUID=`/usr/bin/id -u` +if [ "$MYUID" != 0 ]; then + echo "You require Root Access to run this script"; + exit 0; +fi + +if [ $# != 2 ] && [ $# != 3 ]; then + echo "Usage:"; + echo "$0 []"; + echo "you gave #$#: $0 $1 $2 $3"; + exit 0; +fi + +OLD_IP=$1 +NEW_IP=$2 + +HAVE_HTTPD=1 +HAVE_NGINX=1 + +DATE=`date '+%F %X'` +BIN=`echo $0 | awk -F/ '{print $NF}'` + +log() +{ + echo -e "$1"; + echo -e "$1" >> $LOG; +} + +swapfile() +{ + if [ ! -e $1 ]; then + log "Cannot Find $1 to change the IPs. Skipping..."; + return; + fi + + TEMP="perl -pi -e 's/${OLD_IP}/${NEW_IP}/g' $1" + eval $TEMP; + + log "$DATE $BIN $1\t: $OLD_IP -> $NEW_IP"; +} + +if [ $# = 3 ]; then + swapfile $3; + exit 0; +fi + + +IPFILE_OLD=/usr/local/vesta/data/ips/$OLD_IP +IPFILE_NEW=/usr/local/vesta/data/ips/$NEW_IP +if [ ! -e $IPFILE_OLD ]; then + echo -n "$IPFILE_OLD does not exist. Do you want to continue anyway? (y/n) : "; + read YESNO; + if [ "$YESNO" != "y" ]; then + exit 0; + fi +else + mv -f $IPFILE_OLD $IPFILE_NEW + log "$DATE $0 $IPFILE_OLD\t: $OLD_IP -> $NEW_IP"; +fi + +if [ "${HAVE_HTTPD}" -eq 1 ]; then + if [ -e /etc/httpd/conf.d/${OLD_IP}.conf ]; then + swapfile /etc/httpd/conf.d/${OLD_IP}.conf + mv -f /etc/httpd/conf.d/$OLD_IP.conf /etc/httpd/conf.d/${NEW_IP}.conf + fi + swapfile /etc/httpd/conf.d/mod_extract_forwarded.conf +fi + +if [ "${HAVE_NGINX}" -eq 1 ]; then + if [ -e /etc/nginx/conf.d/${OLD_IP}.conf ]; then + swapfile /etc/nginx/conf.d/${OLD_IP}.conf + mv -f /etc/nginx/conf.d/$OLD_IP.conf /etc/nginx/conf.d/${NEW_IP}.conf + fi +fi + +swapfile /etc/hosts + +ULDDU=/usr/local/vesta/data/users + +for i in `ls $ULDDU`; do +{ + + if [ ! -d $ULDDU/$i ]; then + continue; + fi + + swapfile $ULDDU/$i/web.conf + swapfile $ULDDU/$i/dns.conf + for j in `ls $ULDDU/$i/dns/*.conf`; do + { + swapfile $j + }; + done; + + if [ "${HAVE_HTTPD}" -eq 1 ]; then + swapfile /home/$i/conf/web/httpd.conf + fi + if [ "${HAVE_NGINX}" -eq 1 ]; then + swapfile /home/$i/conf/web/nginx.conf + fi + + for j in `ls /home/$i/conf/dns/*.db`; do + { + swapfile $j + }; + done; + +}; +done; + +#this is needed to update the serial in the db files. +if [ "${HAVE_HTTPD}" -eq 1 ]; then + service httpd restart +fi +if [ "${HAVE_NGINX}" -eq 1 ]; then + service nginx restart +fi + +echo "*** Done swapping $OLD_IP to $NEW_IP ***";