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

时间: 2024-07-28 17:00:39

linux自动定时备份web程序和mysql数据库的相关文章

php中实现mysql数据库备份与linux自动定时备份代码

把下面php代码保存成backdata.class.php文件  代码如下 复制代码 <?php /* * *简单的一个Mysql备份数据类 * */ class backupData{     private    $mysql_link;//链接标识     private    $dbName;    //数据库名     private    $dataDir;     //数据所要存放的目录     private    $tableNames;//表名     public func

Linux VPS备份教程 数据库/网站文件自动定时备份_Linux

几天写过两篇使用VPS的安全性设置的博文,其实不管我们如何设置安全,及时的备份VPS数据才是最为重要的.因为VPS与主机不同,主机可能很多时候服务商代为我们备份,VPS的操作和安全性大部分都需要我们自己来负责,即便很多VPS上提供每日备份服务,但是不可确定因素实在太多.比如商家跑路.母机硬盘损坏.不可控因素等. 关于VPS备份教程方法可用的方法也很多,比如我们常规的备份直接通过FTP下载,MYSQL数据库导出也是可以操作的,但是这些都比较麻烦,而且还需要人为去执行.这篇文章老左分享目前大家比较常

mysql自动定时备份数据库的最佳方法(windows服务器)_Mysql

网上有很多关于window下Mysql自动备份的方法,可是真的能用的也没有几个,有些说的还非常的复杂,难以操作. 我们都知道mssql本身就自带了计划任务可以用来自动备份,可是mysql咱们要怎么样自动有备份呢? 教大家一个最简单的方法. 这个方法是用bat批处理来完成的. 假想环境:MySQL 安装位置:D:\Program Files\MySQL\MySQL Server 5.0\data 如图:   数据库名称为:952game数据库备份目的地:d:\db_bak\ (你想把数据库备份到哪

关于数据库自动定时备份,但每次备份用不同的名称

备份|定时|数据|数据库 关于数据库自动定时备份,但每次备份用不同的名称 这个方法也许很久以前就实现了,希望哪些高手也不要介意,=:) 言归正传,数据库自动定时备份,但每次备份用不同的名称的实现如下: 1:在SQL SERVER上建立一个Job,这样可以让它自动定时运行: 2:建立一个步骤,用如下代码:declare @path nvarchar(100)declare @name nvarchar(100)declare @devicename nvarchar(50) --'F:\backu

在Linux下配置最新APache Web服务器和MySql数据库服务器

问题描述 在Linux下配置最新APacheWeb服务器和MySql数据库服务器.要求:1.将配置过程详细记录2.用配置好的系统编写一个java给予MySql数据库的程序

导入Web日志到MySQL数据库

访问分析是SEO的一项重要工作,但统计.分析工具毕竟功能是针对大众的,很多时候SEO需要一些特定的数据,是http://www.aliyun.com/zixun/aggregation/10341.html">统计分析软件.程序所不能提供的.这样,直接的Web日志分析就是最合适的了,日志中会记录每一个访问情况,只要按自己的意愿提取.组合,就能得到想要的数据. 就这个问题与星箭聊了挺长时间,最后一致认为将日志导入到SQL数据库(MySQL & SQL Server)中,使用SQL语句

java-用InstallAnywhere打包Java程序包含MySQL数据库,详细的截图及步骤

问题描述 用InstallAnywhere打包Java程序包含MySQL数据库,详细的截图及步骤 用InstallAnywhere打包Java程序包含MySQL数据库,详细的截图及步骤 解决方案 详细流程参考:http://www.cnblogs.com/S-E-P/archive/2010/01/10/2045078.html 把你的标题输入百度搜索,很容易找到答案的,为什么还大费周章来此提问呢.

mysql-Android想通过web service连接MySQL数据库

问题描述 Android想通过web service连接MySQL数据库 之前采取的是直接连接的方式,发现这种连接连不上,说直接连接不安全,现在想改为通过哦web service 接口连接,因为现在还是新手,不知道要怎么弄,请各位大神支支招! 解决方案 不能直接链接,需要做一个web服务,你通过http接口提交请求到服务,服务再去访问数据库 解决方案二: 你应该是去访问服务器的接口,让这个接口去访问MYSQL数据库,然后返回数据给你. 解决方案三: 访问服务器接口,服务器返回数据给你 解决方案四

Linux VPS自动定时备份MySQL数据库发送至邮箱实现脚本

如今,我们在选择主机建站或者部署项目的时候,越发觉得VPS.服务器性价比会高很多,比如我们经常有看到年付十几美金.二十几美金的VPS服务器.相比较传统的虚拟主机是便宜很多,不过老蒋一直强调,如果我们是普通的个人博客.个人网站,如果虚拟主机能够满足需求的,建议还是要使用虚拟主机.因为虚拟主机站长维护成本较低,而且稳定性和安全性比VPS.服务器强一些. 因为,大部分VPS服务器都是无管理型的,所有的环境配置.网站部署.数据安全都需要我们自己来运维.尤其对于很多Linux服务器新手用户,老蒋遇到很多选