码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Linux下备份文件到其他服务器


    最近遇到需求,需要定时将文件备份到其他服务器,于是记录一下。
    本文旨在描述如何通过rsync插件实现服务器之间的文件备份。

    以下统一将备份文件所在服务器称为:源服务器,接收备份文件的服务器为:目标服务器

    目录

    • 一、为什么用rsync
    • 二、安装rsync
    • 三、配置目标服务器
      • 3.1 同步配置文件
      • 3.2 同步密码文件
      • 3.3 启动rsync线程
      • 3.4 开放rsync端口
    • 四、配置源服务器
      • 4.1 配置目标密码文件
      • 4.2 文件备份脚本
      • 4.3 定时任务

    一、为什么用rsync

    在之前,我其实了解到还有scp可以实现文件传输,而选择用rsyc的原因是

    • scp:每一次把所有文件都传输过去
    • rsyc:同步文件,只对新增或修改的文件进行同步

    二、安装rsync

    通过yum在线安装,输入以下指令:

    yum -y install rsync
    
    • 1

    如果安装失败,则使用本地安装,先下载安装包

    http://mirror.centos.org/centos/7/os/x86_64/Packages/rsync-3.1.2-10.el7.x86_64.rpm

    拷贝至服务器,输入以下命令安装

    yum -y install /opt/rsync-3.1.2-10.el7.x86_64.rpm(对应安装目录)
    
    • 1

    三、配置目标服务器

    创建对应的文件目录用来存放备份过来的文件

    mkdir /opt/backup
    
    • 1

    3.1 同步配置文件

    在etc目录下,创建rsyncd.conf,作为同步的配置文件,内容如下:

    [backup] 
    path = /opt/backup/
    ignore errors = true
    read only = no
    write only = no
    host allow = 允许访问的服务器ip/子网掩码
    host deny = *
    list = false
    uid = root
    gid = root
    auth users = root
    secrets file = /etc/rsync.passwd
    pid file = /var/run/rsyncd.pid
    lock file = /var/run/rsync.lock
    log file = /var/log/rsyncd.log
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    重点描述如下:

    1. [backup]:任务名称
    2. path:存放文件的路径
    3. allow:允许访问的ip
    4. auth users :该任务可执行的用户
    5. secret file:对应执行用户的密码文件

    3.2 同步密码文件

    在etc目录下,创建rsync.passwd,通过key-value存放用户和密码内容如下:

    root:123456
    
    • 1

    创建完毕,赋予文件权限

    chomd 600 /etc/rsync.passwd
    
    • 1

    3.3 启动rsync线程

    rsync --daemon
    
    • 1

    3.4 开放rsync端口

    默认端口:873,如何开放防火墙端口见
    访问虚拟机端口服务

    四、配置源服务器

    4.1 配置目标密码文件

    为了能够免密连接上目标服务器,将目标服务器的密码存放至配置文件中。

    在etc目录下,创建rsyncd.pas,存放目标服务器对应用户的密码

    123456
    
    • 1

    创建完毕,赋予文件权限

    chomd 600 /etc/rsyncd.pas
    
    • 1

    4.2 文件备份脚本

    创建脚本文件:/etc/backup.sh

    rsync -avz --delete --password-file=/etc/rsyncd.pas(密码文件) /etc/backup.sh(要备份的文件目录) root(用户名)@目标服务器ip::backup(任务名称)
    
    • 1

    赋予脚本权限

    chmod +x /etc/backup.sh
    
    • 1

    4.3 定时任务

    详情见Linux之定时任务

  • 相关阅读:
    C. Non-coprime Split Codeforces Round 895 (Div. 3)
    云原生系列三:K8s应用安全加固技术
    linux 安装gitkraken
    基于FPGA的图像直方图统计实现,包括tb测试文件和MATLAB辅助验证
    vite 使用本地 ip + localhost 访问服务
    【JS如何实现继承?】
    # Go学习-Day10
    docker 安装 RabbitMQ & 安装 rabbitmq_delayed_message_exchange插件
    追求技术之美:云计算开发者的自我修养
    抽象一个通用的配置冲突解决方案
  • 原文地址:https://blog.csdn.net/jc_hook/article/details/126351788
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号