back.sh 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/bin/bash
  2. PROJECT_DIR=$(dirname $(dirname $(readlink -f "$0")))
  3. echo "0 3 * * * /bin/sh ${PROJECT_DIR}/shell/back.sh 1"
  4. NGINX_CONF_DIR=/www/wdlinux/nginx/conf
  5. echo -e "sed -i 's@^USERNAME=.*@USERNAME='xxxxx'@' back.sh\n";
  6. echo -e "sed -i 's@^PASSWORD=.*@PASSWORD='xxxxx'@' back.sh\n";
  7. echo -e "sed -i 's@^DBNAMESDK.*@DBNAMESDK='db_sdk'@' back.sh\n";
  8. echo -e "sed -i 's@^HOST=.*@HOST='127.0.0.1'@' back.sh\n";
  9. #数据库用户名
  10. USERNAME="gyrjukcv"
  11. #数据库密码
  12. PASSWORD='5r1&!Xg1GOujdzgW'
  13. #备份的数据库
  14. DBNAMESDK="db_sdk_ads db_sdk_ads_dw db_sdk_ads_log"
  15. #数据库HOST
  16. HOST="127.0.0.1"
  17. DATE=`/bin/date +%Y%m%d`
  18. BACK_DIR=${PROJECT_DIR}/back
  19. sql_back(){
  20. #output file
  21. OUTDIR=${PROJECT_DIR}/data/sql
  22. if [ ! -d ${OUTDIR} ];then
  23. mkdir -p ${OUTDIR}
  24. fi
  25. OUTFILE="ip_bindass".$DATE."sql.gz"
  26. #working directory
  27. # MySQL Backup
  28. mysqldump -h $HOST -u $USERNAME -p$PASSWORD --databases $DBNAMESDK --set-gtid-purged=off | /usr/bin/gzip -9 > $OUTDIR/$OUTFILE
  29. #删除历史备份文件 (12h前的备份文件)
  30. find ${OUTDIR}/ -name "ip_bindass*" -type f -mmin 720 -exec rm {} \;
  31. }
  32. nginx_conf_back(){
  33. #output file
  34. NGINX_DIR=${PROJECT_DIR}/data/nginx/conf
  35. if [ ! -d ${NGINX_DIR} ];then
  36. mkdir -p ${NGINX_DIR}
  37. fi
  38. #拷贝所有nginx配置文件到文件夹下
  39. \cp -rf ${NGINX_CONF_DIR}/* ${NGINX_DIR}/
  40. }
  41. if [ ! -d ${BACK_DIR} ];then
  42. mkdir -p ${BACK_DIR}
  43. fi
  44. if [ -z $1 ]; then
  45. pushd ${BACK_DIR}/
  46. 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
  47. popd
  48. echo -e '\n';
  49. echo -e '\n';
  50. echo -e '\n';
  51. echo "sz ${BACK_DIR}/${DATE}.tar.gz";
  52. else
  53. sql_back
  54. echo -e 'sql back ok!\n'
  55. nginx_conf_back
  56. echo -e 'nginx_conf back ok!\n'
  57. pushd ${BACK_DIR}/
  58. tar czhPf ${DATE}_all.tar.gz ${PROJECT_DIR}/* --exclude=back/*.tar.gz --exclude=shell/*.tar.gz --exclude=runtime/*
  59. #只保留一天以内的备份文件
  60. find ${BACK_DIR}/ -name "*.tar.gz" -type f -mtime +1 -exec rm {} \;
  61. popd
  62. echo -e '\n';
  63. echo -e '\n';
  64. echo -e '\n';
  65. echo "sz ${BACK_DIR}/${DATE}_all.tar.gz";
  66. fi