linux备份

备份的概念

  备份就是把重要的数据或者文件复制一份保存到另一个地方,实现不同主机之间的数据同步1

备份方式

  1.cp

    cp就是linux的复制命令,可用于本机内的备份

  2.scp

    Linux scp 命令用于 Linux 之间复制文件和目录。
    scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
    scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。

  3.rsync

    rsync英文称为remote synchronizetion,从软件的名称就可以看出来,rsync具有可使本地和远程两台主机之间的数据快速复制同步镜像、远程备份的功能,这个功能类似于ssh带的scp命令,但是又优于scp命令的功能,scp每次都是全量拷贝,而rsync可以增量拷贝。

 

scp传输方式

  scp分为推和拉两种方式

  推:指从本地上传到远程服务器

    格式:

      scp [文件路径] root@[ip] : [路径]

 

 

 

   拉:指从远程服务器下载到本地

    格式:

      scp root@[ip] : [文件路径] [本地路径]

 

 

 

rsync服务

  rsync的特性

    支持拷贝特殊文件,如连接文件、设备等。
    可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。
    可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变 –p。
    可以实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar-N)。
    可以使用rcp、rsh、ssh等方式来配合传输文件(rsync本身不对数据加密)。
    可以通过socket(进程方式)传输文件和数据(服务端和客户端)*****。
    支持匿名的活认证(无需系统用户)的进程模式传输,可以实现方便安全的进行数据备份和镜像。

  rsync传输模式

    1.本地方式(类似于cp,不支持推送和拉取,只是单纯的复制)
    2.远程方式(类似于scp,又不同于scp),scp只支持全量备份,rsync支持增量备份和差异备份
    3.守护进程方式(客户端和服务端)

  rsync使用

    命令格式:

      rsync [参数] [文件路径] root@[ip] : [目标路径]

    参数:

       -t:保持文件时间信息

      -o:保持文件属组信息

      -g:保持文件属组信息

      -p:保持文件权限

       -l:保留软链接

      -D:保持设备文件信息

      -r:递归传输目录及子目录

      -a:归档模式传输,等于-tropgDl

      -v:详细模式输出,打印速率,文件数量等

      -z:传输时进行压缩以提高效率

      -P:保持文件的权限

      --append:指定文件断点续传

      --append-verify:断点续传后对文件进行验证,如果文件有不同则修复

      --exclude=[文件名]:指定文件名排除不需要传输的文件

      --exclude-from=[文件名]:根据文件的内容排除不需要传输的文件

      --bwlimit=n:限制传输速率,单位MB/s

      --delete:让目标目录和源目录数据保持一致

      --password-file=[文件名]:使用密码文件

      --port:指定端口传输

    案例:

      案例1:将a目录下的文件全部备份。

      案例2:将a目录下的文件备份并显示备份时的信息。

 

 

       通过此案例可知在备份文件时常用的参数是azvP(当不需要输出时只用az)。

      案例3:当a目录备份中断后断点续传。

 

 

       断点续传时传输文件的百分比不太准确是正常的。

      案例4:备份a目录除了2.txt,并且将速率限制在10MB/s

 

 

       限制网速的不能完全限制,只能限制一个近似的值

  rsync守护进程模式

    守护进程模式的主要目的是为了能实现自动备份。

    需要在服务端配置文件方便客户端的备份。

    服务端

      1.安装rsync

 

 

       2.修改配置文件

      安装完成后需要修改rsync的配置文件/etc/rsyncd.conf 

复制代码
uid = rsync
gid = rsync
port = 873
fake super = yes
use chroot = no
max connections = 200
timeout = 600
ignore errors
read only = false
list = false
auth users = rsync_backup
secrets file = /etc/rsync.passwd
log file = /var/log/rsyncd.log
#####################################
[backup]
comment = welcome to backup!
path = /backup
[linux]
comment = welcome to linux!
path=/tmp/linux
配置文件内容
复制代码

      3.创建系统用户

        按照配置文件中设定的用户名和组名创建系统用户

 

 

 

 

      4.创建密码文件

        按照配置文件中的密码文件目录创建密码文件。

 

 

 

      5.为密码文件授权

        密码文件的权限必须为600

 

 

 

      6.创建备份目录

        按照配置文件中的模块创建备份目录(一个模块就是一个目录)

 

 

 

      7.目录授权

        创建后的目录用户和属组都是root,需要将其改为rsync

 

 

 

      8.关闭防火墙和seLinux

 

 

 

      9.启动rsyncd服务

 

 

 

    客户端

      配置完服务端之后就可以在客户端尝试使用。

      可以用三种方式来使用

      方式一:直接输入密码

 

 

 

      方式二:设置密码文件在运行时读取

        先创建密码文件,并授权

 

 

 

        使用密码文件备份时无需输入密码

 

 

 

      方式三:添加环境变量

        将密码添加到环境变量也可以无需输入密码进行备份,但是每次重启后需要重新添加。

 

 

 

  rsync实时同步

    rsync本身并不支持实时同步功能,为了实现这一功能需要其他软件的配合。通常我们使用inotify这个软件来实时的监控软件的变化,当发现软件变化后就使用rsync来将文件进行备份。

    intify参数介绍:

      -m:持续监控

      -r:递归

      -q:静默,仅打印时间信息

      --timefmt:指定输入时间格式

      --format:指定事件输出格式

        %Xe:事件

        %W:目录

        %f:文件

      -e:指定监控的事件

        access:访问

        modify:内容修改

        attrib:属性修改

        close_write 修改真实文件内容

        open:打开

        create:创建

        delete:删除

        umount:卸载

    inotify使用方式:

      1.安装inotify

 

       2.使用inotify来监控文件变化

        命令格式:

          inotifywait [参数] 文件目录

 

 

      3.实时监控并同步

 

 

inotifywait  -mrq  --format '%Xe  %w  %f' -e create,modify,delete,attrib,close_write  /root/a | while read line;do     
 cd /root/a
 rsync -azvP --delete --password-file=/etc/rsync.passwd ./* rsync_backup@172.16.1.41::backup
 done

 

posted @   临江沂水  阅读(1012)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示