#!/bin/bash PROJECT_DIR=$(dirname $(dirname $(readlink -f "$0"))) echo "0 3 * * * /bin/sh ${PROJECT_DIR}/shell/back.sh 1" NGINX_CONF_DIR=/www/wdlinux/nginx/conf echo -e "sed -i 's@^USERNAME=.*@USERNAME='xxxxx'@' back.sh\n"; echo -e "sed -i 's@^PASSWORD=.*@PASSWORD='xxxxx'@' back.sh\n"; echo -e "sed -i 's@^DBNAMESDK.*@DBNAMESDK='db_sdk'@' back.sh\n"; echo -e "sed -i 's@^HOST=.*@HOST='127.0.0.1'@' back.sh\n"; #数据库用户名 USERNAME="gyrjukcv" #数据库密码 PASSWORD='5r1&!Xg1GOujdzgW' #备份的数据库 DBNAMESDK="db_sdk_ads db_sdk_ads_dw db_sdk_ads_log" #数据库HOST HOST="127.0.0.1" DATE=`/bin/date +%Y%m%d` BACK_DIR=${PROJECT_DIR}/back sql_back(){ #output file OUTDIR=${PROJECT_DIR}/data/sql if [ ! -d ${OUTDIR} ];then mkdir -p ${OUTDIR} fi OUTFILE="ip_bindass".$DATE."sql.gz" #working directory # MySQL Backup mysqldump -h $HOST -u $USERNAME -p$PASSWORD --databases $DBNAMESDK --set-gtid-purged=off | /usr/bin/gzip -9 > $OUTDIR/$OUTFILE #删除历史备份文件 (12h前的备份文件) find ${OUTDIR}/ -name "ip_bindass*" -type f -mmin 720 -exec rm {} \; } nginx_conf_back(){ #output file NGINX_DIR=${PROJECT_DIR}/data/nginx/conf if [ ! -d ${NGINX_DIR} ];then mkdir -p ${NGINX_DIR} fi #拷贝所有nginx配置文件到文件夹下 \cp -rf ${NGINX_CONF_DIR}/* ${NGINX_DIR}/ } if [ ! -d ${BACK_DIR} ];then mkdir -p ${BACK_DIR} fi if [ -z $1 ]; then pushd ${BACK_DIR}/ tar czhPf ${DATE}.tar.gz ${PROJECT_DIR}/* --exclude=runtime/* --exclude=upload/* --exclude=*.jpg --exclude=*.png --exclude=*.dat --exclude=*.ttf --exclude=*.otf --exclude=*.sql --exclude=*.apk --exclude=*.tar.gz --exclude=*.zip --exclude=*.sql.gz popd echo -e '\n'; echo -e '\n'; echo -e '\n'; echo "sz ${BACK_DIR}/${DATE}.tar.gz"; else sql_back echo -e 'sql back ok!\n' nginx_conf_back echo -e 'nginx_conf back ok!\n' pushd ${BACK_DIR}/ tar czhPf ${DATE}_all.tar.gz ${PROJECT_DIR}/* --exclude=back/*.tar.gz --exclude=shell/*.tar.gz --exclude=runtime/* #只保留一天以内的备份文件 find ${BACK_DIR}/ -name "*.tar.gz" -type f -mtime +1 -exec rm {} \; popd echo -e '\n'; echo -e '\n'; echo -e '\n'; echo "sz ${BACK_DIR}/${DATE}_all.tar.gz"; fi