• 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导入和导出数据

  • 相关阅读:
    设置通过数字证书方式登录远程连接Linux服务器,禁止root账户远程密码方式远程连接服务器
    Windows server 2003 粘滞键后门+提权
    CVE-2017-7494复现 Samba远程代码执行
    SQL盲注学习-时间型
    SQL盲注学习-布尔型
    关于绿盟RSAS使用时遇到的问题
    SQL注入学习
    CentOS7,zabbix3.4通过,zabbix-Java-gateway监控Tomcat
    (转)输入pipt提示:AttributeError: 'module' object has no attribute 'HTTPSConnection'
    pip安装cx_Oracle报错:error code 1 in /tmp/pip-build-root/cx-Oracle
  • 原文地址:https://www.cnblogs.com/rwxwsblog/p/4488610.html
Copyright © 2020-2023  润新知