vesta/upd/upgrade-centos-v16-to-v17.sh

100 lines
3.2 KiB
Bash
Executable File

#!/bin/bash
RHOST='r.vestacp.com'
CHOST='c.vestacp.com'
REPO='cmmnt'
VERSION='rhel'
VESTA='/usr/local/vesta'
os=$(cut -f 1 -d ' ' /etc/redhat-release)
release=$(grep -o "[0-9]" /etc/redhat-release |head -n1)
codename="${os}_$release"
vestacp="http://$CHOST/$VERSION/$release"
servername=$(hostname -f)
# PATH fix
if [ ! -f "/etc/profile.d/vesta.sh" ]; then
echo "export VESTA='$VESTA'" > /etc/profile.d/vesta.sh
fi
if [ $( grep -ic "vesta" /root/.bash_profile ) -eq 0 ]; then
echo 'PATH=$PATH:'$VESTA'/bin' >> /root/.bash_profile
fi
# Linking /var/log/vesta
if [ ! -L "/var/log/vesta" ]; then
ln -s $VESTA/log /var/log/vesta
fi
# Added default install "expect" to work for backup sftp
yum -y install expect > /dev/null 2>&1
# Roundcube Vesta password driver - changing password_vesta_host (in config) to server hostname
if [ -f "/usr/share/roundcubemail/plugins/password/config.inc.php" ]; then
sed -i "s/localhost/$servername/g" /usr/share/roundcubemail/plugins/password/config.inc.php
fi
# Workaround for OpenVZ/Virtuozzo
if [ "$release" -eq '7' ] && [ -e "/proc/vz/veinfo" ]; then
if [ $( grep -ic "Vesta: workraround for networkmanager" /etc/rc.local ) -eq 0 ]; then
if [ -f "/etc/nginx/nginx.conf" ] ; then
echo "#Vesta: workraround for networkmanager" >> /etc/rc.local
echo "sleep 3 && service nginx restart" >> /etc/rc.local
fi
if [ -f "/etc/httpd/conf/httpd.conf" ] ; then
echo "#Vesta: workraround for networkmanager" >> /etc/rc.local
echo "sleep 2 && service httpd restart" >> /etc/rc.local
fi
fi
fi
# Fix for Spamassassin user_prefs
if [ -f "/etc/mail/spamassassin/local.cf" ] ; then
if [ ! -d "/var/lib/spamassassin" ] ; then
if [ "$release" -eq '7' ]; then
groupadd -g 1001 spamd
useradd -u 1001 -g spamd -s /sbin/nologin -d \
/var/lib/spamassassin spamd
mkdir /var/lib/spamassassin
chown spamd:spamd /var/lib/spamassassin
fi
fi
fi
# Fix for clamav: /var/run ownership and foreground option
if [ -f "/etc/clamd.conf" ] ; then
if [ ! -d "/var/run/clamav" ]; then
mkdir /var/run/clamav
fi
chown -R clam:clam /var/run/clamav
chown -R clam:clam /var/log/clamav
if [ "$release" -eq '7' ]; then
sed -i "s/nofork/foreground/" /usr/lib/systemd/system/clamd.service
file="/usr/lib/systemd/system/clamd.service"
if [ $( grep -ic "mkdir" $file ) -eq 0 ]; then
sed -i "s/Type = simple/Type = simple\nExecStartPre = \/usr\/bin\/mkdir -p \/var\/run\/clamav\nExecStartPre = \/usr\/bin\/chown -R clam:clam \/var\/run\/clamav/g" $file
fi
systemctl daemon-reload
/bin/systemctl restart clamd.service
fi
fi
# Fixing empty NAT ip
ip=$(ip addr|grep 'inet '|grep global|head -n1|awk '{print $2}'|cut -f1 -d/)
pub_ip=$(curl -s vestacp.com/what-is-my-ip/)
file="$VESTA/data/ips/$ip"
if [ -f "$file" ] && [ $( grep -ic "NAT=''" $file ) -eq 1 ]; then
if [ ! -z "$pub_ip" ] && [ "$pub_ip" != "$ip" ]; then
v-change-sys-ip-nat $ip $pub_ip
fi
fi
# Dovecot logrorate script
wget $vestacp/logrotate/dovecot -O /etc/logrotate.d/dovecot