2019-03-18笔记—数据备份-rsync

数据备份对象:

  • 系统、服务文件(配置文件、脚本、日志、上传的附件等)—工具(tar、cp、scp、rsync)
  • 数据库文件(关系型数据库(MySQL/MariaDB等)、非关系型数据库(Redis、MongoDB等))—工具(mysqldump、xtrabackup)

备份原则:根据业务的实际情况(业务重要性、业务量、磁盘空间、网络状况等因素),定好备份的频率,备份文件保存的位置(本地、异地),备份文件保存的周期

rsync命令使用说明

格式:

  • rsync [OPTION] … SRC DEST #从本地到远端,两边做了密钥认证免登录
  • rsync [OPTION] … SRC [user@]host:DEST #从本地到远端
  • rsync [OPTION] … [user@]host:SRC DEST #从远端到本地
  • rsync [OPTION] … SRC [user@]host::DEST #“::” 表示通过ip/port的方式拷贝同步
  • rsync [OPTION] … [user@]host::SRC DEST

主要参数:

参数 说明
-a 包含-rtplgoD
-r 同步目录时要加上,类似cp时的-r选项
-v 同步时显示一些信息,让我们知道同步的过程
-l 保留软连接
-L 加上该选项后,同步软链接时会把源文件给同步
-p 保持文件的权限属性
-o 保持文件的属主
-g 保持文件的属组
-D 保持设备文件信息
-t 保持文件的时间属性
-P 显示同步过程,比如速率,比-v更加详细
-u 加上该选项后,如果DEST中的文件比SRC新,则不同步
-z 传输时压缩
–delete 删除DEST中SRC没有的文件
–exclude 过滤指定文件,如–exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步,要过滤多个目标需要使用多个–exclude

常用搭配:

rsync数据同步的两种方式

  • 通过ssh方式同步
  • 通过服务的方式同步

rsyncd.conf 配置文件配置

port=873
log file=/var/log/rsync.log
pid file=/var/run/rsyncd.pid
address=192.168.85.129
[test]
path=/tmp/rsync
use chroot=true
max connections=4
read only=no
list=true
uid=root
gid=root
auth users=test
secrets file=/etc/rsyncd.passwd
hosts allow=192.168.85.129

rsyncd.conf 配置文件说明

#port:指定在哪个端口启动rsyncd服务,默认是873端口。
#log file:指定日志文件。
#pid file:指定pid文件,这个文件的作用涉及服务的启动、停止等进程管理操作。
#address:指定启动rsyncd服务的IP。假如你的机器有多个IP,就可以指定由其中一个启动rsyncd服务,如果不指定该参数,默认是在全部IP上启动。
#[]:指定模块名,里面内容自定义。
#path:指定数据存放的路径。
#use chroot true|false:表示在传输文件前首先chroot到path参数所指定的目录下。这样做的原因是实现额外的安全防护,但缺点是需要以root权限,并且不能备份指向外部的符号连接所指向的目录文件。默认情况下chroot值为true,如果你的数据当中有软连接文件,建议设置成false。
#max connections:指定最大的连接数,默认是0,即没有限制。
#read only ture|false:如果为true,则不能上传到该模块指定的路径下。
#list:表示当用户查询该服务器上的可用模块时,该模块是否被列出,设定为true则列出,false则隐藏。
#uid/gid:指定传输文件时以哪个用户/组的身份传输。
#auth users:指定传输时要使用的用户名。
#secrets file:指定密码文件,该参数连同上面的参数如果不指定,则不使用密码验证。注意该密码文件的权限一定要是600。
格式:用户名:密码
#hosts allow:表示被允许连接该模块的主机,可以是IP或者网段,如果是多个,中间用空格隔开。当设置了authusers和secretsfile后,客户端连服务端也需要用用户名密码了,若想在命令行中带上密码,可以设定一个密码文件

rsync -avL /root/shell/ [email protected]::test --password-file=/etc/rsync.passwd 
其中/etc/pass内容就是一个密码,权限要改为600

PS:stat命令

[root@linux2019 shell]# stat test.txt 
  File: 'test.txt'
  Size: 237       	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 20722002    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-03-13 14:52:11.484991389 +0800
Modify: 2019-03-12 14:48:44.420158927 +0800
Change: 2019-03-12 14:48:44.420158927 +0800
 Birth: -
  • atime:最近一次查看、访问文件的时间
  • mtime:最近一次修改文件内容的时间
  • ctime:最近一次修改文件本身属性的时间(inode信息:文件的大小、属主、属组、权限)

猜你喜欢

转载自blog.csdn.net/ai_benwoniu/article/details/88650789