zoukankan      html  css  js  c++  java
  • linux自动定时备份web程序和mysql数据库

      前些天受朋友说linux定时备份不知道怎么搞,叫帮忙处理一下。由于这段时间正闲着,所以也就欣然答应。由于朋友对linux不懂也希望我将操作的过程记录下来,也就是越详细越好。所以写得比较$%^&*。本以为半个小时或者一个小时可以搞好,谁不知整整搞了一天。原因在哪呢?这里也顺便吐槽一下,首先问web存放在什么地方?不知,给了个ftp。然后进去一看,各种压缩包,各种目录备份,混乱不堪,为了防止磁盘被撑爆,所以一个个目录确认,哪些目录是要的哪些是不要的,然后一个个删掉。还有mysql数据库,问用的哪个?不知,又是一通的等,一遍遍地确认。好吧,这也都算了。等我搞好了,然后说每天检查一下。谁不知,程序猿最怕发生的事情义无意外地发生了。目录搞错,这不等于万恶的改需求吗?脑子瞬间都是各种@!#$%^&*(!@#$%^^&*()。好吧,不接都已经接了认了吧。好了吐槽至此,不废话入正题。

    需求:

      1、每天定时备份web程序和mysql数据库

      2、web程序、web日志和mysql数据库备份均保留7天

    说明:

      web目录:/chinasofti/www/bbswebdir

      web日志目录:/chinasofti/www/bbswebdir/httplogs

      日志文件名格式:myweb.com-access_log_YYYYMMDD,myweb.com-error_log_YYYYMMDD,如myweb.com-access_log_20150508,myweb.com-error_log_20150508

      备份脚本存放目录:/chinasofti/wwwbakscript/

      备份文件存放目录:/chinasofti/wwwbakdir/

      web备份文件名格式:bbs.myweb.com_YYYYMMDD,如bbs.myweb.com_20150508.tar.gz

      mysql备份文件格式:数据库名_$(date +%Y%m%d).sql.gz

    写在前面:务必注意各个目录的说明,运用是注意修改。完全不改是用不了的。注意各个目录和文件的对应关系。

    淡绿色底的为linux命令,淡黄色底的为shell脚本内容,其他的为备注说明。

    操作步骤

    root用户登陆后
    1、切换目录
      cd /chinasofti/wwwbakscript
    2、创建备份脚本
      vi mywebbak.sh

    按i然后输入以下内容

      #!/bin/bash
      #backup /chinasofti/www/bbswebdir and database

      ###################切换到web目录#################
      cd /chinasofti/www/bbswebdir

      ###################删除web日志#################
      rm -f ./httplogs/myweb.com-access_log_$(date +%Y%m%d --date='7 days ago')
      rm -f ./httplogs/myweb.com-error_log_$(date +%Y%m%d --date='7 days ago')

      ###################删除备份文件#################
      rm -f /chinasofti/wwwbakdir/bbs.myweb.com_$(date +%Y%m%d --date='7 days ago').tar.gz

      ###################备份web程序#################
      tar -zcf /chinasofti/wwwbakdir/bbs.myweb.com_$(date +%Y%m%d).tar.gz ./* ./.[!.]*

      ###################删除备份数据库####################
      rm -f /chinasofti/wwwbakdir/数据库名_$(date +%Y%m%d --date='7 days ago').sql.gz
      ###################备份数据库####################
      mysqldump -u数据库账号 -p"数据库密码" 数据库 | gzip >/chinasofti/wwwbakdir/数据库名_$(date +%Y%m%d).sql.gz

      #################导出单个表数据和结构############

      #mysqldump -u账号 -p 数据库名 表名 > /root/XXXX.sql

    添加完成后,按键盘右上角的“esc”键,然后输入英文的冒号加x(:x),回车完成。

    注意:红色字体部分为路径(注意修改),品红色部分为文件名(注意修改)。

    4、添加可执行权限
      chmod +x mywebbak.sh

    5、定时执行
      crontab -e
    按i编辑,添加运行的脚本和时间。如:
      0 1 * * * /chinasofti/wwwbakscript/mywebbak.sh
    则为每天凌晨1点执行,/chinasofti/wwwbakscript/mywebbak.sh这个shell脚本。
    修改完成后,按键盘右上角的“esc”键,然后输入英文的冒号加x(:x),回车完成。

    6、每天检查脚本是否正常运行。

    其它相关文章:

    windows下如何对mysql进行整裤备份

    mysql导入和导出数据

  • 相关阅读:
    庄家试盘的K线形态
    股票基本知识入门提纲
    我与猫
    夜雨不眠时
    快速排序
    由float转std::string的方法
    BugFree + EasyPHP在Windows平台搭建步骤详解
    安装VS2008的时候Windows Mobile 5.0 SDK R2 for pocket pc错误解决方案
    收集WCF文章
    linq to ef(相当于sql中in的用法)查询语句
  • 原文地址:https://www.cnblogs.com/rwxwsblog/p/4488610.html
Copyright © 2011-2022 走看看