vps也有一阵了,但是谁也不知道哪天vps就会跑路了,也说不定;无论现在做什么,都要先学会未雨绸缪.

其实,关于网上的有很多种方法备份vps的mysql和数据.但是往往都不是很理想.

首先我觉得备份数据一定要满足一下几点:

支持低成本备份mysql:网站数据其实并不会经常改动,经常要备份的主要是mysql,所谓的低成本就是自动化,而且可以发送到免费的邮箱.

mysql必须是分卷备份的:不要把N个数据库合并成一个sql文件,那样我不会恢复.

如果你网站很大图片很多,那么还得随时可以备份到ftp.

不过终于在Cat上找到了这个备份的方法,还是相当靠谱的..贴出代码先~

首先安装mutt: yum install sendmail mutt

vi AutoBackupToFtp.sh #!/bin/bash

#你要修改的地方从这里开始

MYSQL_USER=root

#mysql用户名

MYSQL_PASS=123456

#mysql密码

MAIL_TO=cat@hostloc.com

#数据库发送到的邮箱

FTP_USER=cat

#ftp用户名

FTP_PASS=123456

#ftp密码

FTP_IP=imcat.in

#ftp地址

FTP_backup=backup

#ftp上存放备份文件的目录,这个要自己得ftp上面建的WEB_DATA=/home/www

#要备份的网站数据#如果不需要ftp功能请注释掉FTP_USER,FTP_IP.ftp.backup

#你要修改的地方从这里结束

#定义数据库的名字和旧数据库的名字

DataBakName=Data_$(date +"%Y%m%d").tar.gz

WebBakName=Web_$(date +%Y%m%d).tar.gz

OldData=Data_$(date -d -5day +"%Y%m%d").tar.gz

OldWeb=Web_$(date -d -5day +"%Y%m%d").tar.gz

#删除本地3天前的数据

rm -rf /home/backup/Data_$(date -d -3day +"%Y%m%d").tar.gz /home/backup/Web_$(date -d -3day +"%Y%m%d").tar.gzcd /home/backup

#导出数据库,一个数据库一个压缩文件

for db in `/usr/local/mysql/bin/mysql -u$MYSQL_USER -p$MYSQL_PASS -B -N -e 'SHOW DATABASES' | xargs`;

do    (/usr/local/mysql/bin/mysqldump -u$MYSQL_USER -p$MYSQL_PASS ${db} | gzip -9 - > ${db}.sql.gz)

done

#压缩数据库文件为一个文件

tar zcf /home/backup/$DataBakName /home/backup/*.sql.gzrm -rf /home/backup/*.sql.gz

#发送数据库到Email,如果数据库压缩后太大,请注释这行echo "主题:数据库备份" | mutt -a /home/backup/$DataBakName -s "内容:数据库备份" $MAIL_TO#压缩网站数据tar zcf /home/backup/$WebBakName $WEB_DATA

#上传到FTP空间,删除FTP空间5天前的数据

ftp -v -n $FTP_IP << ENDuser $FTP_USER $FTP_PASStype binarycd $FTP_backupdelete $OldDatadelete $OldWebput $DataBakNameput $WebBakNamebyeEND

chmod +x AutoBackupToFtp.sh

利用crontab 实现每天00:00自动备份网站文件和数据库上传到FTP空间 crontab -e

00 00 * * * /home/AutoBackupToFtp.sh

一切都很顺利,但是也遇到了一点小麻烦,在cat博客里面也有人问道.

执行

./AutoBackupToFtp.sh

以后却出现

mysqldump: Got error: 1044: Access denied for user 'root'@'localhost' to database 'information_schema' when using LOCK TABLES

在csdn找到解决办法是因为没有LOCK TABLES的权限,于是查看mysqldump的帮助,加上参数–skip-lock-tables

mysqldump --opt -h192. 168.0 . 156  -uUsername -pPassword --skip-lock-tables databaseName>database.sql

还有就是会提示:

tar: Removing leading `/' from member names

其实大家不用在意这个,根据鸟哥的说法:

『tar: Removing leading `/’ from member names(移除了檔名開頭的 `/’ )』所告知的情況!

那為什麼要拿掉根目錄呢?主要是為了安全!我們使用 tar 備份的資料可能會需要解壓縮回來使用, 在 tar 所記錄的檔名 (就是我們剛剛使用 tar -jtvf 所察看到的檔名) 那就是解壓縮後的實際檔名。 如果拿掉了根目錄,假設你將備份資料在 /tmp 解開,那麼解壓縮的檔名就會變成『/tmp/etc/xxx』。 但『如果沒有拿掉根目錄,解壓縮後的檔名就會是絕對路徑, 亦即解壓縮後的資料一定會被放置到 /etc/xxx 去!』如此一來,你的原本的 /etc/ 底下的資料, 就會被備份資料所覆蓋過去了!

mysql备份到邮箱,备份网站mysql数据到邮箱/ftp相关推荐

  1. outlook邮箱怎么删除服务器数据,outlook邮箱怎么修改默认删除服务器邮件?

    outlook 软件默认绑定邮件后,默认是删除服务器上的邮件的,在outlook2007中默认保存10天的,在outlook 2010 2013中默认保存14天,但是保存短暂的十几天就把,这样对我们的 ...

  2. mysql怎么加载bak文件_bak是什么文件格式,bak文件怎么打开? mysql 在服务器里备份(直接拷贝数据文件)-宝商在线...

    .bak是备份文件,为文件格式扩展名,这类文件一般在.bak前面加上应该有原来的扩展名比如windows.dll.bak,或是windows_dll.bak,有的则是由原文件的后缀名和bak混合而成, ...

  3. 把本地mysql备份到服务器innodb_使用mysql备份工具innobackupex将本地数据 直接恢复 到远端服务器数据目录操作实例...

    innobackupex 支持所有mysql引擎数据备份恢复安装配置方法及原理介绍,访问下面链接 http://michaelkang.blog.51cto.com/1553154/1216826 测 ...

  4. mysql 高效备份_Mysql高性能备份方案解决数据不间断访问(LVM快照方式备份)

    Mysql高性能备份方案解决数据不间断访问(LVM快照方式备份) mysql LVM快照备份特点: 1.在大多数情况下,这种方式几乎算得上是热备.它无需关闭服务,只需要设置只读或者类似这样的限制. 2 ...

  5. mysql dump 增量_mysql mysqldump数据备份和增量备份

    本篇文章主要讲如何使用shell实现MysqL全量,增量备份.增量备份在周一-周六凌晨3点,会复制MysqL-bin.00000*到指定目录:而全量备份则使用MysqLdump将所有的数据库导出,每周 ...

  6. Mysql大数据备份和增量备份及还原

    目前主流的有两个工具可以实现物理热备:ibbackup和xtrabackup ;ibbackup是需要授权价格昂贵,而xtrabackup功能比ibbackup强大而且是开源的 Xtrabackup提 ...

  7. Mysql数据库的简单备份与还原_史上最简单的MySQL数据备份与还原教程

    本文主要为大家详细介绍了史上最简单的MySQL数据备份与还原教程第一篇,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能帮助到大家. 数据备份与还原第一篇分享给大家,具体内容如下 基础概念: ...

  8. mysql数据库表复制备份_mysql数据库的备份以及表格数据之间的复制

    #####-------------mysql数据备份以及表间数据的复制-------------------##### ##----------------我的mysql学习(二)--------- ...

  9. mysql web备份软件_GitHub - toolzone/mysql_web_backup: mysql数据库自动备份,web网站自动备份shell脚本...

    注意: Mysql_backup.sh 为 mysql 自动备份 脚本,配合 crontab命令 用来管理需要周期性执行任务 Web_backup.sh 为 web文件 自动备份 脚本,配合 cron ...

最新文章

  1. 编程软件python下载-python 2.7官方版
  2. 关于2021年 美赛论文 提交失败的解决方法
  3. 用python批量创建docker_「docker实战篇」python的docker-docker镜像的创建使用dockerfile(3...
  4. Linux主流架构运维工作简单剖析
  5. linux tomcat环境变量配置_Tomcat
  6. M0最高优先级的中断设计
  7. matlab信息量估计法估计嵌入率,LSB密写分析-信息量估计法
  8. Java从入门到精通 第0章Java学习指南
  9. 抽象工厂模式类图及代码示例
  10. FASTBOOT教程
  11. windows环境命令行创建虚拟环境
  12. 如何发表一篇计算机领域的顶会论文
  13. ChucK初步(12)
  14. Idea 报错: Variable used in lambda expression should be final or effectively final
  15. 【网易】网易2018实习生招聘笔试题-测试开发实习生
  16. 【计算机毕业设计】324企业人事信息管理系统设计与实现
  17. vivado ROM IP核简单使用
  18. Mandelbrot 并行实现
  19. Win7下基于Anaconda安装TensorFlow
  20. 湖畔大学教育长曾鸣,给00后的建议

热门文章

  1. 我试了试用 SQL查 Linux日志,好用到飞起
  2. 受邀参加了一场只有副总裁、CTO参加的技术会议!
  3. 一上来,就问原理,问上亿(MySQL)大表的索引优化,我的天...
  4. 最近和前字节跳动大佬聊了聊今年春招面试的变化
  5. 原创 | 2020年Java程序员应该学习的10大技术
  6. “开发一个静态 HTML 页面,我要价 18000 美元,有错吗?”
  7. 亿级流量请求,多级缓存解救
  8. Spring Cloud入门,看这篇就够了!
  9. JeecgBoot 2.4.3版本发布,企业级低代码平台
  10. EasyUi之datagrid常见使用