阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux服务器数据备份

137次阅读
没有评论

共计 3699 个字符,预计需要花费 10 分钟才能阅读完成。

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

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

#!/bin/sh
#############################################
#  crond 定时备份 MYSQL 数据库
#  @date  2015/09/25 星期五
#  @author linuxidc
#############################################
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 mysqldump@localhost identified by ‘123456’;
 …
 …
 …

使用 mysqldump 导出数据库  http://www.linuxidc.com/Linux/2014-10/108192.htm

基于 mysqldump 快速搭建从库  http://www.linuxidc.com/Linux/2015-04/116170.htm

恢复 mysqldump 创建的备份集  http://www.linuxidc.com/Linux/2015-02/113631.htm

使用 mysqldump 命令行工具创建逻辑备份  http://www.linuxidc.com/Linux/2015-02/113629.htm

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

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

    这里我介绍一种方法,那就是使用 rsync 进行文件同步,之前已经写了一篇文章关于怎么搭建 rsync 服务器:rsync 服务器搭建 http://www.linuxidc.com/Linux/2015-10/123841.htm

    这里提供下配置文件:
 
  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 = linuxidc
secrets file = /etc/rsync.d/rsyncd.secrets
comment = mysql backup!!!
 
# 同步代码
[www_linuxidc]
path = /data/www/linuxidc/upload
list = no
ignore errors
auth users = linuxidc
secrets file = /etc/rsync.d/rsyncd.secrets
comment = www/linuxidc backup!!!
 

    配置文件 rsync.secrets

linuxidc:123456
 
 
  2. 客户端配置:

  shell 脚本 rsync.sh

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

  密码配置文件 rsyncd.secrets

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

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

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

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

    …

RSync 实现文件备份同步详解   http://www.linuxidc.com/Linux/2014-09/106967.htm

利用 inotifywait 监控主机文件和目录 http://www.linuxidc.com/Linux/2013-03/81075.htm

利用 inotify+rsync 实现 Linux 文件批量更新 http://www.linuxidc.com/Linux/2012-01/52132.htm

inotify-tools+rsync 实时同步文件安装和配置 http://www.linuxidc.com/Linux/2012-06/63624.htm

rsync 同步完整配置 http://www.linuxidc.com/Linux/2013-06/85781.htm

CentOS 6.5 下 Rsync 远程同步 http://www.linuxidc.com/Linux/2014-05/101084.htm

Rsync 的详细介绍 :请点这里
Rsync 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2015-10/123846.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3699字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中