Chinaunix首页 | 论坛 | 博客
  • 博客访问: 166249
  • 博文数量: 47
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 466
  • 用 户 组: 普通用户
  • 注册时间: 2012-10-31 23:12
个人简介

知乎:http://www.zhihu.com/people/chanpinjinglizhilu

文章分类

全部博文(47)

分类: LINUX

2014-12-01 15:53:22

这两天想给网站文件以及数据库做备份,特写了段SHEll。

1.备份脚本

点击(此处)折叠或打开

  1. #--------------------------------------------
  2. # 描述:这是数据备份脚本,请不要轻易删除
  3. # 作者:magic ysjheeqg#163.com
  4. # 日期:2014-11-29 15:12 Apple 亚洲 (time.asia.apple.com.)
  5. #------------------------------------------
  6. #!/bin/bash
  7. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
  8. #====COMMAND
  9. alias date='/bin/date'
  10. alias find='/usr/bin/find'
  11. alias tar='/bin/tar'
  12. alias rm='/bin/rm'
  13. alias mount='/bin/mount'
  14. alias cp='/bin/cp'
  15. alias cat='/bin/cat'
  16. alias echo='/bin/echo'
  17. alias umount='/bin/umount'






  18. #======================================备份网站=============================================


  19. old_time=`date +%s`
  20. year=`date +%Y`
  21. last_year=${year}


  22. month=$((`date +%_m`/1))
  23. last_mon="`date +%_m`-1"


  24. if [ $((${last_mon})) = 0 ];then
  25.    last_year=$((${year}-1))
  26.    last_mon=12
  27. else
  28.    last_mon=$((${last_mon}))
  29. fi
  30.               
  31. day=$((`date +%_d`/1))
  32. time_com="date +%D_%T"
  33. times=`date +%X`
  34. #当前日期
  35. date=$(date -d '+0 days' +%Y%m%d)


  36. #===================DIRECTORY
  37. #备份源 网站文件 数据库目录
  38. locat_dir=/var/www/html
  39. local_db_dir=/
  40.     
  41. #备份到 目录
  42. tar_root_dir=/var/www/file/${year}年/${month}月
  43. tar_dir=${tar_root_dir}/all
  44. tar_html_dir=${tar_dir}/html
  45. tar_db_dir=${tar_dir}/db


  46. #日志文件
  47. log_dir=/backup/log
  48. log_file=${log_dir}/all.log
  49. #备份完成之后打包
  50. pkg_dir=/var/www/file/${year}年/${month}月/all
  51. pkg_file=web_${date}_${HOSTNAME}.zip


  52. #zip打包密码
  53. zippasswd="zskc007"
  54. bak_db_name="db_"$date"_${HOSTNAME}.zip"




  55. #如果 备份到 目录 不存在,则新建一个
  56. if [ ! -d ${tar_db_dir} ];then /bin/mkdir -p ${tar_db_dir};fi


  57. #删除上一个月备份数据




  58. #发送提醒
  59. #/bin/mail


  60. #备份网站tar -czvf ${pkg_dir}/${pkg_file} ${locat_dir} > /dev/null 2>&1
  61. tar -zcPpf ${tar_dir}/$pkg_file --directory / $locat_dir


  62. #======================================备份数据库=============================================
  63. mysql_host=127.0.0.1
  64. mysql_user="root"
  65. mysql_passwd="4rfvGY&"


  66. #备份的数据库数组
  67. db_arr=$(echo "show databases;" | mysql -u$mysql_user -p$mysql_passwd -h$mysql_host)
  68. #不需要备份的单例数据库
  69. nodeldb="test"


  70. #进入到备份目录
  71. cd ${tar_db_dir}




  72. #循环备份
  73. for dbname in ${db_arr}
  74. do
  75.     if [ $dbname != $nodeldb ]; then
  76.         sqlfile=$dbname-$date".sql"
  77.         mysqldump -u$mysql_user -p$mysql_passwd --event --skip-lock-tables -h$mysql_host $dbname >$sqlfile
  78.     fi
  79. done




  80. #tar打包所有的sql文件
  81. tar -zcPpf ${tar_dir}/$bak_db_name --directory / $tar_db_dir

2.执行后结果


3.设置定时备份
阅读(1367) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~