Last active
February 9, 2024 17:08
-
-
Save maagmirror/271ca991fdd6ac94d910a206c0ec3c72 to your computer and use it in GitHub Desktop.
update the dns of vestacp
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/sh | |
#script to change ips on a VestaCP server. | |
#usage: | |
# $0 <oldip> <newip> | |
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 <oldip> <newip> [<file>]"; | |
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 ***"; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment