前些天受朋友说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自动定时备份web程序和mysql数据库的更多相关文章

  1. Linux VPS自动定时备份网站文件和MYSQL数据库到FTP空间(LNMP)

    如果我们网站更新不是很频繁,我们可以定期手动进行备份网站文件和MYSQL数据库导出.如果我们网站数据更新频繁,且数据尤为重要,建议要采用定期自动 备份,至少需要多备份数据,无论我们选择何种优秀的VPS ...

  2. 黄聪:VPS实现自动定时备份网站数据以及Mysql数据库到百度云同步盘

    建站多了,备份成了头疼的问题,因为你不知道你的VPS什么时候会宕机或者服务商跑路,一旦网站数据丢失,那么相当于前功尽弃了,所以自己研究出了一套自动备份的方法. 需要的东西: 1.一个VPS(虚拟空间没 ...

  3. Crontab定时备份网站脚本及mysql数据库

    1)shell脚本 #!/bin/bash #你要修改的地方从这里开始 MYSQL_USER="root" #mysql用户名 MYSQL_PASS="123456&qu ...

  4. centos使用shell脚本定时备份docker中的mysql数据库

    shell脚本 #!/bin/bash #容器ID container_id="6b1faea2b4d7" #登录用户名 mysql_user="root" # ...

  5. [转]mysql自动定时备份数据库的最佳方法-支持windows系统

    网上有很多关于window下Mysql自动备份的方法,可是真的能用的也没有几个,有些说的还非常的复杂,难以操作. 我们都知道mssql本身就自带了计划任务可以用来自动备份,可是mysql咱们要怎么样自 ...

  6. windows系统——mysql自动定时备份数据库的最佳方法

    网上有很多关于window下Mysql自动备份的方法,可是真的能用的也没有几个,有些说的还非常的复杂,难以操作. 我们都知道mssql本身就自带了计划任务可以用来自动备份,可是mysql咱们要怎么样自 ...

  7. Linux下定时备份MySQL数据库的Shell脚本

    Linux下定时备份MySQL数据库的Shell脚本   对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间 ...

  8. Mysql数据库自动定时备份软件推荐--MySqlBackupFTP(免费,亲测可用,附使用图示)

    MySqlBackupFTP是一款Mysql数据库自动定时备份软件,免费版本就基本上可以满足我们的需求,不需要什么破解版,可直接官网下载安装使用. 先看结果(日志): 软件界面: 可以设定计划任务,每 ...

  9. SQL2008实现数据库自动定时备份——维护计划

    在SQL Server中出于数据安全的考虑,所以需要定期的备份数据库.而备份数据库一般又是在凌晨时间基本没有数据库操作的时候进行,所以我们不可能要求管理员 每天守到晚上1点去备份数据库.要实现数据库的 ...

随机推荐

  1. 10个基础的linux网络和监控命令

    配置zookeeper集群时,需要查看本机ip,输入命令 hostname -i   就会只显示主机ip, 下边搜了一篇常用的    命令,闲的时候多敲敲命令,以便用的时候再找! 我下面列出来的10个 ...

  2. Google Protocol Buffer 简单介绍

    以下内容主要整理自官方文档. 为什么使用 Protocol Buffers .proto文件 Protocol Buffers 语法 编译.proto文件 Protocol Buffers API 枚 ...

  3. 点击验证码刷新(tp3.1)--超简单

    省略js点击刷新验证码,虽然看不懂 <img src='http://localhost/app/index.php/Index/verify/'  onclick='this.src=this ...

  4. QT共享库的创建与调用(初级)(附:UI界面不能被改变的其中一个原因)

    背景: 最近在做的一个项目其中一部分既是实现PC与下位机的USB通信.windows平台下已经完成,现需移植到linux平台下. 在linux系统中,通过一段时间的工作,设备已被配置成hid类(后续再 ...

  5. Android4.4 往短信收件箱中插入自定义短信(伪造短信)

    这段时间稍微有点空闲,把前一段学习Android做过的一些小项目整理整理.虽然没有什么工程量很大的项目,但是对于一个新手,解决这些问题还是花了一段时间.感觉还是非常有记录的意义呢~~~么么哒*—* 今 ...

  6. 第四天 rxcocoa

    HackerNewsReaderDemo HackerNewsAPI.sharedApi.newStories() .observeOn(ConcurrentDispatchQueueSchedule ...

  7. 15天学会jquery

    第二章 15 Days of jQuery 比window.onload 更快一些的载入 window.onload()是传统javascript 里一个能吃苦耐劳的家伙.它长久以来一直 被程序员们作 ...

  8. js网页中调用本地应用程序

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta http-equiv="Con ...

  9. webpack 教程 那些事儿06-gulp+webpack多页

    本篇主要讲述用gulp+webpack构建多页应用 折腾到现在,项目还必须要进行,.vue文件必须要加载,也就是webpack必须引入.时间不多了,抛弃上个方案之后,只能牺牲热加载性能,用gulp+w ...

  10. utils部分--一些通用的工具类封装

    1.简介 utils部分是对一些常用的工具类进行简单的封装,使用起来比较方便.这里列举常用的一些. 2.ContextUtils使用 主要封装了网络判断.一些方法解释如下: ? 1 2 3 4 5 6 ...