http://fly.b3log.org/articles/2011/10/25/1319505473928.html

MySql数据库备份:

说明:我这里要把MySql数据库存放目录/var/lib/mysql下面的pw85数据库备份到/home/mysql_data里面
并且保存为mysqldata_bak_2011_09_05.tar.gz的压缩文件格式(2011_09_05是指备份执行时当天的日期)
然后只保留最近7天的备份
再把备份文件通过ftp服务器上传到指定空间,只保留最近7天的数据

实现步骤:

1、创建保存备份文件的路径:/home/mysql_data
cd /home
mkdir mysql_data
2、创建备份脚本文件:/home/mysql_data/mysql_databak.sh
cd /home
cd mysql_data
touch mysql_databak.sh
vim mysql_databak.sh
输入以下内容:
#######################################################################################################
#!/bin/sh
DUMP=/usr/bin/mysqldump #mysqldump备份文件执行路径
OUT_DIR=/home/mysql_data #备份存放路径
LINUX_USER=root #系统用户名
DB_NAME=pw85 #要备份的数据库名字
DB_USER=root #数据库账号 注意:非root用户要用备份参数 --skip-lock-tables,否则可能会报错
DB_PASS=123456 #数据库密码
DAYS=7 #DAYS=7代表删除7天前的备份,即只保留最近7天的备份
cd $OUT_DIR #进入备份存放目录
DATE=`date +%Y_%m_%d` #获取当前系统时间
OUT_SQL="$DATE.sql" #备份数据库的文件名
TAR_SQL="mysqldata_bak_$DATE.tar.gz" #最终保存的数据库备份文件名
$DUMP -u$DB_USER -p$DB_PASS $DB_NAME --default-character-set=utf8 --opt -Q -R --skip-lock-tables> $OUT_SQL #备份
tar -czf $TAR_SQL ./$OUT_SQL #压缩为.tar.gz格式
rm $OUT_SQL #删除.sql格式的备份文件
chown $LINUX_USER:$LINUX_USER $OUT_DIR/$TAR_SQL #更改备份数据库文件的所有者
find $OUT_DIR -name "mysqldata_bak*" -type f -mtime +$DAYS -exec rm {} \; #删除7天前的备份文件

deldate=` date -d -7day +%Y_%m_%d ` #删除ftp服务器空间7天前的备份
ftp -n<<!
open 10.0.0.168 21 #打开ftp服务器。21为ftp端口
user admin 123456 #用户名、密码
binary #设置二进制传输
cd mysqlbak #进入ftp目录
lcd /home/mysql_data #列出本地目录
prompt
mput mysqldata_bak_$DATE.tar.gz mysqldata_bak_$DATE.tar.gz #上传目录中的文件
mdelete mysqldata_bak_$deldate.tar.gz mysqldata_bak_$deldate.tar.gz #删除ftp空间7天前的备份
close
bye !

#######################################################################################################

3、修改文件属性,使其可执行

chmod +x /home/mysql_data/mysql_databak.sh

4、修改/etc/crontab
vi /etc/crontab
在下面添加

35 13 * * * root /home/mysql_data/mysql_databak.sh
表示每天13点35钟执行备份

5、重新启动crond使设置生效
/etc/rc.d/init.d/crond restart
chkconfig crond on #设为开机启动
service crond start #启动

每天你在/home/mysql_data目录下面可以看到类似mysqldata_bak_2011_09_05.tar.gz这样的压缩文件
如果需要恢复文件的时候,只需要把这个文件解压即可
解压缩tar -zxvf mysqldata_bak_2011_09_05.tar.gz

最新文章

  1. 软件测试基本理论-IBM模式
  2. Effective Java 76 Write readObject methods defensively
  3. LMAO?
  4. AsyncTask实现异步线程通信
  5. OpenJudge计算概论-细菌的战争
  6. 5个SQL核心
  7. VBA 将 ANSI 转换为 UTF-8文件
  8. 区域生长算法的一种C++实现
  9. Ketama Consisent Hash
  10. Google 视频编码格式 VP9 究竟厉害在哪里
  11. Bigger-Mai 养成计划,subprocess模块
  12. C#调用cmd命令
  13. vue教程1-09 交互 vue实现百度下拉列表
  14. 【转】EntityFramework动态组合Lambda表达式作为数据筛选条件,代替拼接SQL语句
  15. laravel mapSpread 例子
  16. Centos7配置vsftpd3.0.2
  17. day5模块学习--sys模块
  18. Linux 基础——关机重启命令shutdown、reboot等
  19. BroadcastReceiver学习
  20. 【BZOJ】1724 [Usaco2006 Nov]Fence Repair 切割木板

热门文章

  1. elasticsearch-查询的基本语法
  2. MySQL - 定时备份
  3. 【Valid Number】cpp
  4. Microsoft SQL Server 存储过程举例
  5. 【BZOJ】【1017】【JSOI2008】魔兽地图Dotr
  6. JAVA非空条件三元运算符
  7. Map:比较新增加日期的和需要删除的日期 使用方法
  8. DirectShow学习笔记
  9. 充分发挥异步在 ASP.NET 中的强大优势
  10. PC端模拟手机浏览网页