123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- #!/bin/bash
- # Author: yeho <lj2007331 AT gmail.com>
- # BLOG: https://blog.linuxeye.com
- #
- # Notes: OneinStack for CentOS/RadHat 5+ Debian 6+ and Ubuntu 12+
- #
- # Project home page:
- # https://oneinstack.com
- # https://github.com/lj2007331/oneinstack
- # Check if user is root
- [ $(id -u) != "0" ] && { echo "${CFAILURE}Error: You must be root to run this script${CEND}"; exit 1; }
- pushd tools > /dev/null
- . ../options.conf
- DB_Local_BK() {
- for D in `echo $db_name | tr ',' ' '`
- do
- ./db_bk.sh $D
- done
- }
- DB_Remote_BK() {
- for D in `echo $db_name | tr ',' ' '`
- do
- ./db_bk.sh $D
- DB_GREP="DB_${D}_`date +%Y`"
- DB_FILE=`ls -lrt $backup_dir | grep ${DB_GREP} | tail -1 | awk '{print $NF}'`
- echo "file:::$backup_dir/$DB_FILE $backup_dir push" >> config_bakcup.txt
- echo "com:::[ -e "$backup_dir/$DB_FILE" ] && rm -rf $backup_dir/DB_${D}_$(date +%Y%m%d --date="$expired_days days ago")_*.tgz" >> config_bakcup.txt
- done
- }
- DB_COS_BK() {
- for D in `echo $db_name | tr ',' ' '`
- do
- ./db_bk.sh $D
- DB_GREP="DB_${D}_`date +%Y`"
- DB_FILE=`ls -lrt $backup_dir | grep ${DB_GREP} | tail -1 | awk '{print $NF}'`
- ${python_install_dir}/bin/python ./coscmd put $backup_dir/$DB_FILE /`date +%F`/$DB_FILE
- [ $? -eq 0 ] && ${python_install_dir}/bin/python ./coscmd rm /`date +%F --date="$expired_days days ago"`/ > /dev/null 2>&1
- done
- }
- WEB_Local_BK() {
- for W in `echo $website_name | tr ',' ' '`
- do
- ./website_bk.sh $W
- done
- }
- WEB_Remote_BK() {
- for W in `echo $website_name | tr ',' ' '`
- do
- if [ `du -sm "$wwwroot_dir/$WebSite" | awk '{print $1}'` -lt 1024 ];then
- ./website_bk.sh $W
- Web_GREP="Web_${W}_`date +%Y`"
- Web_FILE=`ls -lrt $backup_dir | grep ${Web_GREP} | tail -1 | awk '{print $NF}'`
- echo "file:::$backup_dir/$Web_FILE $backup_dir push" >> config_bakcup.txt
- echo "com:::[ -e "$backup_dir/$Web_FILE" ] && rm -rf $backup_dir/Web_${W}_$(date +%Y%m%d --date="$expired_days days ago")_*.tgz" >> config_bakcup.txt
- else
- echo "file:::$wwwroot_dir/$W $backup_dir push" >> config_bakcup.txt
- fi
- done
- }
- WEB_COS_BK() {
- for W in `echo $website_name | tr ',' ' '`
- do
- [ ! -e "$wwwroot_dir/$WebSite" ] && { echo "[$wwwroot_dir/$WebSite] not exist"; break; }
- Web_FILE="Web_${W}_$(date +%Y%m%d_%H).tgz"
- if [ ! -e "$backup_dir/$Web_FILE" ];then
- pushd $wwwroot_dir
- tar czf $Web_FILE ./$W
- popd
- PUSH_FILE="$wwwroot_dir/$Web_FILE"
- else
- PUSH_FILE="$backup_dir/$Web_FILE"
- fi
- ${python_install_dir}/bin/python ./coscmd put $PUSH_FILE /`date +%F`/$Web_FILE
- [ $? -eq 0 ] && { [ -e "$wwwroot_dir/$Web_FILE" ] && rm -rf $wwwroot_dir/$Web_FILE; ${python_install_dir}/bin/python ./coscmd rm /`date +%F --date="$expired_days days ago"`/ > /dev/null 2>&1; }
- done
- }
- if [ "$backup_destination" == 'local' ];then
- [ -n "`echo $backup_content | grep -ow db`" ] && DB_Local_BK
- [ -n "`echo $backup_content | grep -ow web`" ] && WEB_Local_BK
- elif [ "$backup_destination" == 'remote' ];then
- echo "com:::[ ! -e "$backup_dir" ] && mkdir -p $backup_dir" > config_bakcup.txt
- [ -n "`echo $backup_content | grep -ow db`" ] && DB_Remote_BK
- [ -n "`echo $backup_content | grep -ow web`" ] && WEB_Remote_BK
- ./mabs.sh -c config_bakcup.txt -T -1 | tee mabs.log
- elif [ "$backup_destination" == 'cos' ];then
- [ -n "`echo $backup_content | grep -ow db`" ] && DB_COS_BK
- [ -n "`echo $backup_content | grep -ow web`" ] && WEB_COS_BK
- elif [ "$backup_destination" == 'local,remote' ];then
- echo "com:::[ ! -e "$backup_dir" ] && mkdir -p $backup_dir" > config_bakcup.txt
- [ -n "`echo $backup_content | grep -ow db`" ] && DB_Local_BK
- [ -n "`echo $backup_content | grep -ow web`" ] && WEB_Local_BK
- [ -n "`echo $backup_content | grep -ow db`" ] && DB_Remote_BK
- [ -n "`echo $backup_content | grep -ow web`" ] && WEB_Remote_BK
- ./mabs.sh -c config_bakcup.txt -T -1 | tee mabs.log
- elif [ "$backup_destination" == 'local,cos' ];then
- [ -n "`echo $backup_content | grep -ow db`" ] && DB_Local_BK
- [ -n "`echo $backup_content | grep -ow db`" ] && DB_COS_BK
- [ -n "`echo $backup_content | grep -ow web`" ] && WEB_Local_BK
- [ -n "`echo $backup_content | grep -ow web`" ] && WEB_COS_BK
- elif [ "$backup_destination" == 'remote,cos' ];then
- echo "com:::[ ! -e "$backup_dir" ] && mkdir -p $backup_dir" > config_bakcup.txt
- [ -n "`echo $backup_content | grep -ow db`" ] && DB_Remote_BK
- [ -n "`echo $backup_content | grep -ow db`" ] && DB_COS_BK
- [ -n "`echo $backup_content | grep -ow web`" ] && WEB_Remote_BK
- [ -n "`echo $backup_content | grep -ow web`" ] && WEB_COS_BK
- ./mabs.sh -c config_bakcup.txt -T -1 | tee mabs.log
- fi
|