Linux服务器数据备份

服务器上的数据是如此重要,以至于我们定期要对其进行备份!这里讲一下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[@]}; do
    mkdir -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 [email protected] 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 [email protected]::mysql_backup /home/yearnfar/data/rsync/mysql_backup
# 其他文件同步
rsync -avzP --delete --password-file=/home/yearnfar/etc/rsyncd.secrets [email protected]::www_51open /home/yearnfar/data/www/51open

密码配置文件 rsyncd.secrets

123456

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

3.这样就可以了?

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

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

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

...

时间: 2024-10-23 20:45:08

Linux服务器数据备份的相关文章

Linux -- 服务器数据备份恢复策略

一.Linux 备份恢复基础 1.什么是备份 最简单的讲,备份数据的过程就是拷贝重要的数据到其他的介质之上(通常是可移动的),以保证在原始数据丢失的情况下可以恢复数据.一次备份可能是简单的 cp命令,将一个文件复制到其他目录下,也可能是使用特定的程序将数据流写进一个特定的设备中的复杂过程.很多情况下是将要备份的数据写入到磁带机中,但有些情况也不是这样的.在Linux环境下,或其他Unix系统,备份可以是将文件拷贝到已存在的文件系统,可替换的文件系统,磁带机,远程文件系统,甚至是远程系统的上的磁带

linux 服务器数据备份

目的:每天定时将A服务器和B服务器上的数据压缩后备份到C服务器 1.选择免密码登陆 1.1分别在A,B服务器上的根目录下执行: ssh-keygen -t rsa --然后一直回车键.最后在~目录会生成 .ssh文件,里面有三个文件, authorized_keys id_rsa id_rsa.pub authorized_keys:存放远程免密登录的公钥,主要通过这个文件记录多台机器的公钥 id_rsa : 生成的私钥文件 id_rsa.pub : 生成的公钥文件 know_hosts : 已

linux服务器数据迁移—全网备份

项目需求说明: 1) 所有服务器的备份目录必须都为/backup. 2) 要备份的系统配置文件包括但不限于: a.定时任务服务的配置文件(/var/spool/cron/root)(适合 web 和 nfs 服务器). b.开机自启动的配置文件(/etc/rc.local)(适合 web 和 nfs 服务器). c.日常脚本的目录 (/server/scripts). d.防火墙 iptables 的配置文件(/etc/sysconfig/iptables). e.自己思考下还有什么需要备份呢?

全网服务器数据备份方案(模拟生产环境)+邮件告知

使用rsync实现全网数据备份(模拟生产环境)+邮件告知 项目要求来源于网络:http://oldboy.blog.51cto.com/2561410/1856048 假定3台服务器主机名分别为web01.backup.nfs01,主机信息如下表: 服务器说明 内网IP 主机名 nginx web服务器 192.168.1.222 WEB-01 NFS存储服务器 192.168.1.233 NFS-01 rsync备份服务器 192.168.1.244 BACKUP 要求:每天晚上00点整在We

rsync实现Linux服务器数据同步到windows机器上

rsync实现Linux服务器上的数据同步到windows上 一.windows上安装配置cwrsyncserver软件 1.下载rsyncserver软件包,傻瓜式安装,当出现account和密码界面时,可以设置自己的用户名和密码. 2.配置rsyncd.conf文件 pid file = rsyncd.pid port = 2878 use chroot = false strict modes = false hosts allow = * log file = rsyncd.log ui

服务器数据备份/恢复(灾备云特点、功能)

IDC彭帅UCACHE灾备云是一种能帮您轻松实现服务器定时备份的云服务,他能满足您要求的所有应用场景,满足公有云.虚拟环境.物理环境以及私有云和混合云状态下的所有数据定时备份.恢复的任务.避免人为误操作故障导致数据丢失.UCache灾备云推出[灾备云免费普及计划]100G免费使用云灾备的特点:?基础设施单位个体投入减小,TCO更低?按需扩容.按使用计费?具有高度的灵活性?快速迭代的复制与恢复技术?企业迁移成本低?企业级云灾备安全特性?帮助企业管理规范化运营?时实高效.操作简单服务器定时备份/恢复

服务器数据备份对于数据中心意义何在?

作为信息安全的一个重要内容数据备份的重要性却往往被人们所忽视.只要发生数据传输.数据存储和数据交换,就有可能产生系统失效.数据丢失或遭到破坏.如 果没有采取数据备份和数据恢复手段与措施,就会导致数据丢失或损毁,给数据中心造成的损失是无法弥补与估量的. 数据故障的原因可划分为系统故障.事务故障和介质故障三大类. 造成数据丢失和毁坏的原因 1.数据处理和访问软件平台故障. 2.操作系统的设计漏洞或设计者出于不可告人的目的而人为预置的"黑洞". 3.系统的硬件故障. 4.人为的操作失误. 5

linux服务器的备份rsync

因工作要求,要对服务器(Linux)的文件(单位:T)和数据库(MYSQL)进行备份和还原.最初,通过代码实现了完全备份和还原.这样做的优点在于 可以对整个备份和还原的过程进行控制,能确保数据安全.但缺点也是显而易见的:效率低,操作时间长,服务器内存储的文件量很大时(可能达到6-7T),简 直就没法备份.随着更多的业务需求的提出以及对这一功能的更加完善,要将完全备份改为双机增量备份.通过对网上资料的学习,了解了更好的技术:数据库的同 步可利用mysql自带的同步功能能做到实时同步:而利用rsyn

使用rsync实现服务器数据备份

知识点: 实战1: 备份/var/www/html 目录 实战2: 使用ssh密钥实现无交互备份 实战3: 配置rsync 服务器及需要备份的目录,不使用系统用户 实战4: rsync + inotify实现实时同步 简述 rsync (remote synchronize) 是一个远程数据同步工具,可通过网络快速同步多台主机间的文件. 基于 rsync算法 rsync的基本特点: 1,可以镜像保存整个目录树和文件系统: 2,较高的数据传输效率: 3,可以很容易做保持原来文件的属性.权限.时间.