Linux服务器数据备份

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

    服务器上的数据是如此重要,以至于我们定期要对其进行备份!这里讲一下mysql的备份和使用rsync同步服务器上的文件,从而实现多台linux服务器之间的文件的备份。

一 Mysql备份

    mysql的备份比较简单,用mysqldump导出需要备份的数据库即可,这里提供一个shell脚本给大家参考,大家修改一下就可以用做自己的数据库备份了

#!/bin/sh
#############################################
#  crond定时备份MYSQL数据库
#  @date  2015/09/25 星期五
#  @author yearnfar
#############################################
DB_NAMES=("db1" "db2" "db3" "db4" "db5")BIN_DIR="/usr/local/mysql/bin"   # mysql执行文件目录
BCK_DIR="/data/mysql/backup/"    # 备份文件保存目录DATE_MONTH=`date +%Y%m`
MONTH_DAY=`date +%m%d`
DATE_FORMAT=`date +%Y%m%d`# 执行备份命令
for DB_NAME in ${DB_NAMES[@]}; domkdir -p $BCK_DIR/$DATE_MONTH/$MONTH_DAY$BIN_DIR/mysqldump --opt $DB_NAME | gzip > $BCK_DIR/$DATE_MONTH/$MONTH_DAY/$DB_NAME\_$DATE_FORMAT.sql.gz  # 使用了gzip进行压缩,减少硬盘使用量,因为用定时器跑每天如果都进行备份的话,很占硬盘sleep 1
done

    大家会发现这里mysqldump的时候没有提供账号和密码,因为在my.cnf里面做了配置

[mysqldump]
user=mysqldump
password=123456

    如果不在my.cnf里面做配置的话就要加上用户名和密码

$BIN_DIR/mysqldump --opt -umysqldump -p123456 $DB_NAME | gzip > $BCK_DIR/$DATE_MONTH/$MONTH_DAY/$DB_NAME\_$DATE_FORMAT.sql.gz

    但是这样会有下面这个提示,所以还是建议在my.cnf里面添加导数据的账号和密码!

Warning: Using a password on the command line interface can be insecure.

    PS:

        1.导数据的账号建议只授予select和lock tables权限,命令如下:

grant SELECT,LOCK TABLES on db1.* to mysqldump@localhost identified by '123456';.........

二 多台服务器进行文件备份

    备份好数据库就可以了么,这样就安全了么?肯定不是的,如果服务器上的磁盘损坏了呢?那这些数据还是会丢失!而且我们要进行备份可能不止数据库文件,有些服务器上生成的文件或者用户上传的重要文件也要进行备份,这个时候就不止要在一台机子上备份了,而是要在多台机子就行备份!

    这里我介绍一种方法,那就是使用rsync进行文件同步,之前已经写了一篇文章关于怎么搭建rsync服务器: rsync服务器搭建

    这里提供下配置文件:

  1.服务端配置:

    配置文件 rsync.conf

# Distributed under the terms of the GNU General Public License v2
# Minimal configuration file for rsync daemon
# See rsync(1) and rsyncd.conf(5) man pages for help
# This line is required by the /etc/init.d/rsyncd script
# pid file = /var/run/rsyncd.pid
port = 873
address = xxx.xxx.xxx.xxx  # 更换成自己的ip
uid = www
gid = www
use chroot = yes
read only = yes
#limit access to private LANs
hosts allow=*
hosts deny=*
max connections = 5
motd file = /etc/rsync.d/rsyncd.motd
#This will give you a separate log file
#log file = /var/log/rsync.log
#This will log every file transferred - up to 85,000+ per user, per sync
#transfer logging = yes
log format = %t %a %m %f %b
syslog facility = local3
timeout = 300# 同步数据库文件
[mysql_backup]
path = /data/mysql/backup
list = no
ignore errors
auth users = yearnfar
secrets file = /etc/rsync.d/rsyncd.secrets
comment = mysql backup!!!# 同步代码
[www_51open]
path = /data/www/51open/upload
list = no
ignore errors
auth users = yearnfar
secrets file = /etc/rsync.d/rsyncd.secrets
comment = www/51open backup!!!

    配置文件 rsync.secrets

yearnfar:123456

  2.客户端配置:

   shell脚本 rsync.sh

#!/bin/sh
# 数据库文件同步
rsync -avzP --delete --password-file=/home/yearnfar/etc/rsyncd.secrets yearnfar@xxx.xxx.xxx.xxx::mysql_backup /home/yearnfar/data/rsync/mysql_backup
# 其他文件同步
rsync -avzP --delete --password-file=/home/yearnfar/etc/rsyncd.secrets yearnfar@xxx.xxx.xxx.xxx::www_51open /home/yearnfar/data/www/51open

   密码配置文件 rsyncd.secrets

123456

  执行rsync.sh就可以实现把服务端的文件同步到客户机了!!

  3.这样就可以了?

    这样就可以了吗?不可以!

    像 /home/yearnfar/data/www/51open目录只是实现了文件的同步,并没有实现备份!如果要备份的话,还要写脚本把这个目录按天进行打包!

    这样就可以了吗?不可以!

    ...


转载于:https://my.oschina.net/yearnfar/blog/511268

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296342.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Serilog 日志框架如何自动删除超过 N 天的日志 ?

咨询区 JohnB:我的程序使用的日志框架是 Serilog,我是按天分割日志文件的,由于每日文件都比较大,我经常手工删除,但这样做很傻,请问日志框架有没有自动帮我删除 N 天之间的日志呢?回答区 someth…

linux进程通讯-纯文本文件

三)强制性加锁的实现1)对文件加锁有两种方式:劝告性锁和强制性锁.2)劝告性锁工作时,每个进程都要对文件进行读或写之前调用lockf对文件加锁,如果一个进程忘记调用lockf,那么锁协议将会被忽视3)强制性锁工作时,它将使任何一个想要访问已被加锁的文件的进程都堵塞在读或写队列上.…

java 数组长度 可变_java基础之集合长度可变的实现原理

首先我们要明白java中的集合Collection,List,ArrayList之间的关系:ArrayList是具体的实现类,实现了List接口List是接口,继承了Collection接口List继承了Collection接口 但是List是可以重复的并且有序的集合 Collection是不可重复且无序的这里我们先讲一下List集合:List接口不…

与毒”共舞30年!清华美女研究生为何放弃高薪,选择特招入伍?背后的原因令人泪崩......

全世界只有3.14 % 的人关注了爆炸吧知识从武汉新冠疫情爆发到如今,陈薇没有一天休息。短短半年间,54岁的她头发从黑到白,也哭了好几次。刚去武汉-现在陈薇的母亲也在电视上看到了女儿的变化:“她变老了,都有白头发了。…

Windows7 IIS7.5 HTTP Error 503 The service is unavailable 另类解决方案

这篇文章是在你看了别的解决方案仍然解决不了之后才有用。 所以再未用别的解决方案之前,用了该解决方案依然无效的话,请自己看着办。 原创: .net2.0和.net3.5的应用程序池请在开始菜单打开VS2005或者VS2008的目录下的Visual Studio Tools文件…

总是想得太简单?试试我的方法

这里是Z哥的个人公众号每周五11:45 按时送达当然了,也会时不时加个餐~我的第「213」篇原创敬上大家好,我是Z哥。你是不是有时候遇到一些问题,脑子会很蒙,没有任何头绪?但是觉得身边的那些高手们…

Centos-启动network报错RTNETLINK answers: File exists解决方法

背景:今天在Vcenter上,用模板克隆了一个虚拟机,启动之后,网卡启动不了,报错如下:RTNETLINK answers: File exists说明: 环境 Centos6.6_X64 ; 网卡两个原因: 由于用模板…

《信息存储与管理》读书笔记7 存储虚拟化

1、内存虚拟化 2、网络虚拟化 3、服务器虚拟化 4、存储虚拟化 1)块级存储虚拟化 2)文件级虚拟化 PS:详细内容请看虚拟化一板块转载于:https://blog.51cto.com/nppstudy/725855

java ready_Java PushbackReader ready()用法及代码示例

Java中的PushbackReader类的ready()方法用于检查此PushbackReader是否准备就绪。它返回一个布尔值,该值指示阅读器是否准备就绪。用法:public void ready()参数:此方法不接受任何参数返回值:此方法返回一个布尔值,该值指示此Pushb…

php Collection类的设计

用。net开发已经很多年了,最近接触到php,发现php也很好玩。不过发现它里面没有集合Collection类,只有数组,并且数组很强。这里我用数组来包装成一个集合Collection,代码如下: class Collection{private $_m…

不当败家子的原因......

1 实在是太真实!▼2 有钱就是可以为所欲为(素材来源网络,侵删)▼3 在哪都要有仪式感!▼4 送自己去孤儿院......▼5 万万没想到...(图源网络,侵删)▼6 这都能催的?▼…

如何将 Linq 的查询结果转为 HashSet ?

咨询区 Jamie&#xff1a;我的类中有一个 ISet 类型的属性&#xff0c;我想将 linq 查询的结果赋给它&#xff0c;因为是 ISet 类型&#xff0c;所以我不知道是否有高效的方法将 linq 查询结果给之&#xff1f;简单来说&#xff0c;就像下面这样&#xff1a;ISet<T> foo …

ecs使用脚本安装oracle

ECS最低配置&#xff1a;CPU: 2核 内存&#xff1a;2G 数据盘&#xff1a;20G安装脚本分为 oracle11g 4个小版本&#xff0c;下载地址&#xff1a; http://zy-res.oss-cn-hangzhou-internal.aliyuncs.com/oracle/oracle11201.shhttp://zy-res.oss-cn-hangzhou-internal.aliyun…

我不信奉Scrum,我信奉敏捷

Scrum一直以来争论不断。虽然创始人Ken在演讲中曾说过即使是白痴也可以用Scrum&#xff0c;但是依然有很多人认为Scrum对团队成员的素质要求非常高。另据统计&#xff0c;75%以上的Scrum都可以称得上失败。 去年十月&#xff0c;有幸参加了Outsofting鲍央舟老师的Scrum培训。培…

仿京东商城源码java_Java+SSM实现类似京东的3C电子商城系统

需求分析基于Spring, SpringMVC, Mybatis 实现一个类似仿京东商城的3C电子商城系统, 能够实现商品管理与展示, 加入购物车, 支付购买等功能, 项目采用java技术进行开发。运行环境java, jdk1.8,tomcat8.5,mysql5.6,EclispseEE项目技术java, spring springmvc, mybatis, bootstra…

跨浏览器开发:CSS代码的金科玉律

作为Web设计师&#xff0c;你的网站在各种浏览器中有完全一样的表现是很多人的目标&#xff0c;然而这是一个永远无法真正实现的目标&#xff0c;很多人认为&#xff0c;完美的跨浏览器兼容并不必要&#xff0c;这样说虽然没错&#xff0c;但在很多情形&#xff0c;一种近似的兼…

Refit结合Polly访问ASP.NET Core Web API

前言在.NET Core应用中访问ASP.NET Core Web API接口&#xff0c;常用的方式是使用IHttpClientFactory生成HttpClient实例&#xff0c;并通过结合Polly策略&#xff0c;以实现重试&#xff0c;熔断等机制。在本文中&#xff0c;我们将介绍如何使用Refit&#xff0c;结合Polly访…

10个经典的爆炸化学反应,个个都是你惹不起的“暴脾气”

全世界只有3.14 % 的人关注了爆炸吧知识没有放过火&#xff0c;没有爆炸过&#xff0c;就不算真正学化学的。还有谁能比化学狗们的胆子更大、回忆更深刻吗&#xff1f;化学狗们能活到现在简直是个奇迹&#xff5e;&#xff5e;&#xff5e;懂的就默默转了吧&#xff01;小编整理…

根目录下各文件夹的作用

"/"目录下有好多文件&#xff0c;究竟有什么作用&#xff1f;整理综合了网上的一些资料&#xff0c;以RHEL6为标准。 一、管理类文件夹&#xff1a; /boot&#xff1a;包括内核和其它系统启动时使用的文件。 /initrd&#xff08;RHEL6中没有&#xff09;&#xff1a;…

java result元素_Java JDBC 中获取 ResultSet 的大小

当我们执行完一条Sql语句&#xff0c;获取到一个 ResultSet 对象后&#xff0c;有时我们需要立即知道到底返回了多少个元素&#xff0c;但是 ResultSet 并没有提供一个 size() 方法 or length 的属性&#xff0c;我们可以一个一个调用 next() 去累加计算&#xff0c;但是我们还…