mirror of
https://github.com/myvesta/vesta
synced 2025-08-14 02:28:05 -07:00
install: added backup procedure
This commit is contained in:
parent
7b19b4c616
commit
92e56e8c09
1 changed files with 99 additions and 14 deletions
|
@ -2,7 +2,6 @@
|
|||
# Vesta installer
|
||||
|
||||
# Define Variables
|
||||
email=$1
|
||||
RHOST='r.vestacp.com'
|
||||
CHOST='c.vestacp.com'
|
||||
|
||||
|
@ -36,8 +35,39 @@ if [ $os != 'CentOS' ] && [ $os != 'Red' ]; then
|
|||
fi
|
||||
release=$(grep -o "[0-9]" /etc/redhat-release |head -n1)
|
||||
|
||||
help() {
|
||||
echo "usage: $0 [OPTIONS]
|
||||
-e, --email Define email address
|
||||
-h, --help Print this help and exit
|
||||
-f, --force Force installation"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Translating argument to --gnu-long-options
|
||||
for arg; do
|
||||
delim=""
|
||||
case "$arg" in
|
||||
--help) args="${args}-h " ;;
|
||||
--force) args="${args}-f " ;;
|
||||
--email) args="${args}-e " ;;
|
||||
*) [[ "${arg:0:1}" == "-" ]] || delim="\""
|
||||
args="${args}${delim}${arg}${delim} ";;
|
||||
esac
|
||||
done
|
||||
eval set -- "$args"
|
||||
|
||||
# Getopt
|
||||
while getopts "hfe:" Option; do
|
||||
case $Option in
|
||||
h) help ;; # Help
|
||||
e) email=$OPTARG ;; # Contact email
|
||||
f) force=yes ;; # Force install
|
||||
*) help ;; # Default
|
||||
esac
|
||||
done
|
||||
|
||||
# Are you sure ?
|
||||
if [ -z $1 ]; then
|
||||
if [ -z $email ]; then
|
||||
echo
|
||||
echo
|
||||
echo
|
||||
|
@ -120,24 +150,21 @@ for rpm in $rpms; do
|
|||
done
|
||||
rm -f $tmpfile
|
||||
|
||||
if [ ! -z "$conflicts" ]; then
|
||||
if [ ! -z "$conflicts" ] && [ -z "$force" ]; then
|
||||
echo
|
||||
echo '!!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!!'
|
||||
echo
|
||||
echo 'Following rpm packages aleady installed:'
|
||||
echo "$conflicts"
|
||||
echo
|
||||
echo 'It is highly recommended to remove them before proceeding.'
|
||||
echo
|
||||
echo 'If you want to force installation run this script with -f option:'
|
||||
echo "Example: bash $0 --force"
|
||||
echo
|
||||
echo 'It is recommended to remove them before proceeding.'
|
||||
echo '!!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!!'
|
||||
echo
|
||||
read -n 1 -p 'Do you really want to continue? [y/n]: ' answer
|
||||
if [ "$answer" != 'y' ] && [ "$answer" != 'Y' ]; then
|
||||
exit 1
|
||||
fi
|
||||
echo
|
||||
echo "Ok, let's try..."
|
||||
sleep 1
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Password generator
|
||||
|
@ -289,8 +316,24 @@ mkdir -p $VESTA/data
|
|||
mkdir -p $VESTA/ssl
|
||||
chmod 770 $VESTA/conf
|
||||
|
||||
# Make backup directory
|
||||
vst_backups="/root/vst_install_backups/$(date +%s)"
|
||||
mkdir -p $vst_backups
|
||||
mkdir -p $vst_backups/nginx
|
||||
mkdir -p $vst_backups/httpd
|
||||
mkdir -p $vst_backups/mysql
|
||||
mkdir -p $vst_backups/exim
|
||||
mkdir -p $vst_backups/dovecot
|
||||
mkdir -p $vst_backups/clamd
|
||||
mkdir -p $vst_backups/vsftpd
|
||||
mkdir -p $vst_backups/named
|
||||
|
||||
wget $RHOST/$REPO/vesta.conf -O $VESTA/conf/vesta.conf
|
||||
if [ -e '/etc/sudoers' ]; then
|
||||
mv /etc/sudoers $vst_backups/
|
||||
fi
|
||||
wget $CHOST/$VERSION/sudoers.conf -O /etc/sudoers
|
||||
chmod 0440 /etc/sudoers
|
||||
wget $CHOST/$VERSION/vesta.log -O /etc/logrotate.d/vesta
|
||||
|
||||
sed -i "s/umask 022/umask 002/g" /etc/profile
|
||||
|
@ -342,6 +385,15 @@ fi
|
|||
$VESTA/bin/v-change-user-shell admin bash
|
||||
|
||||
# Apache
|
||||
if [ -e '/etc/httpd/conf/httpd.conf' ]; then
|
||||
mv /etc/httpd/conf/httpd.conf $vst_backups/httpd/
|
||||
fi
|
||||
if [ -e '/etc/httpd/conf.d/ssl.conf' ]; then
|
||||
mv /etc/httpd/conf.d/ssl.conf $vst_backups/httpd/
|
||||
fi
|
||||
if [ -e '/etc/httpd/conf.d/proxy_ajp.conf' ]; then
|
||||
mv /etc/httpd/conf.d/proxy_ajp.conf $vst_backups/httpd/
|
||||
fi
|
||||
wget $CHOST/$VERSION/httpd.conf -O /etc/httpd/conf/httpd.conf
|
||||
wget $CHOST/$VERSION/httpd-status.conf -O /etc/httpd/conf.d/status.conf
|
||||
wget $CHOST/$VERSION/httpd-ssl.conf -O /etc/httpd/conf.d/ssl.conf
|
||||
|
@ -360,17 +412,35 @@ chmod 640 /var/log/httpd/suexec.log
|
|||
chmod 751 /var/log/httpd/domains
|
||||
|
||||
# Nginx
|
||||
if [ -e '/etc/nginx/nginx.conf' ]; then
|
||||
mv /etc/nginx/nginx.conf $vst_backups/nginx/
|
||||
fi
|
||||
if [ -f '/etc/nginx/conf.d/default.conf' ]; then
|
||||
mv /etc/nginx/conf.d/default.conf $vst_backups/nginx/
|
||||
fi
|
||||
if [ -e '/etc/nginx/conf.d/example_ssl.conf' ]; then
|
||||
mv /etc/nginx/conf.d/example_ssl.conf $vst_backups/nginx/
|
||||
fi
|
||||
|
||||
wget $CHOST/$VERSION/nginx.conf -O /etc/nginx/nginx.conf
|
||||
wget $CHOST/$VERSION/nginx-status.conf -O /etc/nginx/conf.d/status.conf
|
||||
rm -f /etc/nginx/conf.d/default.conf
|
||||
rm -f /etc/nginx/conf.d/example_ssl.conf
|
||||
touch /etc/nginx/conf.d/vesta_ip.conf
|
||||
touch /etc/nginx/conf.d/vesta_users.conf
|
||||
|
||||
# VsFTP
|
||||
if [ -e '/etc/vsftpd/vsftpd.conf' ]; then
|
||||
mv /etc/vsftpd/vsftpd.conf $vst_backups/vsftpd/
|
||||
fi
|
||||
wget $CHOST/$VERSION/vsftpd.conf -O /etc/vsftpd/vsftpd.conf
|
||||
|
||||
# MySQL
|
||||
if [ -e '/etc/my.cnf' ]; then
|
||||
mv /etc/my.cnf $vst_backups/mysql/
|
||||
fi
|
||||
|
||||
if [ -e '/root/.my.cnf' ]; then
|
||||
mv /root/.my.cnf $vst_backups/mysql/
|
||||
fi
|
||||
mpass=$(gen_pass)
|
||||
wget $CHOST/$VERSION/mysql.cnf -O /etc/my.cnf
|
||||
service mysqld start
|
||||
|
@ -380,11 +450,20 @@ $VESTA/bin/v-add-database-server mysql localhost 3306 root $mpass
|
|||
$VESTA/bin/v-add-database admin default default $(gen_pass) mysql
|
||||
|
||||
# Bind
|
||||
if [ -e '/etc/named.conf' ]; then
|
||||
mv /etc/named.conf $vst_backups/named/
|
||||
fi
|
||||
wget $CHOST/$VERSION/named.conf -O /etc/named.conf
|
||||
chown root:named /etc/named.conf
|
||||
chmod 640 /etc/named.conf
|
||||
|
||||
# Exim
|
||||
if [ -e '/etc/exim/exim.conf' ]; then
|
||||
mv /etc/exim/exim.conf $vst_backups/exim/
|
||||
fi
|
||||
if [ -e '/etc/clamd.conf' ]; then
|
||||
mv /etc/clamd.conf $vst_backups/clamd/
|
||||
fi
|
||||
wget $CHOST/$VERSION/exim.conf -O /etc/exim/exim.conf
|
||||
wget $CHOST/$VERSION/dnsbl.conf -O /etc/exim/dnsbl.conf
|
||||
wget $CHOST/$VERSION/spam-blocks.conf -O /etc/exim/spam-blocks.conf
|
||||
|
@ -399,10 +478,16 @@ gpasswd -a dovecot mail
|
|||
|
||||
# Dovecot config
|
||||
if [ "$release" -eq '5' ]; then
|
||||
if -e [ '/etc/dovecot.conf' ]; then
|
||||
mv /etc/dovecot.conf $vst_backups/dovecot/
|
||||
fi
|
||||
wget $CHOST/$VERSION/dovecot.conf -O /etc/dovecot.conf
|
||||
|
||||
else
|
||||
if [ -e '/etc/dovecot' ]; then
|
||||
mv /etc/dovecot/* $vst_backups/dovecot/
|
||||
fi
|
||||
wget $CHOST/$VERSION/dovecot.tar.gz -O /etc/dovecot.tar.gz
|
||||
rm -rf /etc/dovecot
|
||||
cd /etc/
|
||||
tar -xzf dovecot.tar.gz
|
||||
rm -f dovecot.tar.gz
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue