博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux服务器数据备份
阅读量:5949 次
发布时间:2019-06-19

本文共 3123 字,大约阅读时间需要 10 分钟。

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[@]}; 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 1done

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

[mysqldump]user=mysqldumppassword=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服务器: 

    这里提供下配置文件:

  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.pidport = 873address = xxx.xxx.xxx.xxx  # 更换成自己的ipuid = wwwgid = wwwuse chroot = yesread only = yes#limit access to private LANshosts allow=*hosts deny=*max connections = 5motd 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 = yeslog format = %t %a %m %f %bsyslog facility = local3timeout = 300# 同步数据库文件[mysql_backup]path = /data/mysql/backuplist = noignore errorsauth users = yearnfarsecrets file = /etc/rsync.d/rsyncd.secretscomment = mysql backup!!!# 同步代码[www_51open]path = /data/www/51open/uploadlist = noignore errorsauth users = yearnfarsecrets file = /etc/rsync.d/rsyncd.secretscomment = 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

你可能感兴趣的文章
linux的日志服务器关于屏蔽一些关键字的方法
查看>>
事情的两面性
查看>>
只要会营销,shi都能卖出去?
查看>>
sed单行处理命令奇偶行输出
查看>>
走向DBA[MSSQL篇] 从SQL语句的角度 提高数据库的访问性能
查看>>
VC++深入详解学习笔记1
查看>>
安装配置discuz
查看>>
CentOS7 64位小型操作系统的安装
查看>>
线程互互斥锁
查看>>
KVM虚拟机&openVSwitch杂记(1)
查看>>
win7下ActiveX注册错误0x80040200解决参考
查看>>
《.NET应用架构设计:原则、模式与实践》新书博客--试读-1.1-正确认识软件架构...
查看>>
网址收藏
查看>>
2013 Linux领域年终盘点
查看>>
linux学习之查看程序端口占用情况
查看>>
相逢在栀枝花开的季节
查看>>
linux下git自动补全命令
查看>>
Ubuntu14.04LTS更新源
查看>>
Linux报“Unknown HZ value! (288) Assume 100”错误
查看>>
mysql多实例实例化数据库
查看>>