zoukankan      html  css  js  c++  java
  • 如何将云上的Linux文件自动备份到本地服务器

    需求场景: 将云上一台Linux服务器文件备份到本地服务器,一周一备即可。

    面对这样一个需求,我们可能面临下列几个问题,

    备份方式:是云服务器推文件到本地服务器写入,还是本地服务器从云服务器拉文件?这个问题涉及就是谁作为服务端,服务端需映射公网服务端口,客户端则不需要。这里我们将云服务器作为服务端,同时设置白名单只允许本地服务器出口IP才允许访问。

    技术实现:如何从一台服务器自动备份到另一台服务器呢?哪一个技术方案相对更安全可靠?

    这里涉及的是文件备份,且实时性要求不高,最简单的方式就是人工备份,由相关管理人员通过主动的方式手工备份文件到本地服务器。但这是懒人的时代,机器能做的,干嘛用手来呢,我们来一起看看自动备份方案。

    方案一:FTP

    说起文件传输备份,首先想到就是FTP,FTP是用于网络上进行文件传输的一套标准协议,但使它声名狼藉的问题是它以明文方式传输密码和文件内容,只要在网络中对FTP连接进行监控就能被窃取。

    FTP协议存在一些难以改善的缺点,它将走向终点。很显然,这并不是一个好的技术方案。

    方案二:SFTP

    SFTP协议是在FTP的基础上对数据进行加密,使得传输的数据相对来说更安全。但是这种安全是以牺牲效率为代价的,也就是说SFTP的传输效率比FTP要低。不过现实使用中,文件量并没有那么大,这种差别并不明显。

    实施方案:

    云服务器作为服务端开启SFTP,提供连接地址、用户名、密码,白名单限制访问来源IP。

    客户端可根据操作系统类型,采用不同的技术措施定期下载备份。

    A、下载到Window服务器:

    定时任务+WinSCP

    winscp.exe /console /command "option batch continue" "option confirm off" "open sftp://username:password@192.168.204.130:22" "option transfer binary" "get /tmp D:data" "exit" /log=log_file.txt

    B、下载到Linux服务器:

    crontab+lftp

    lftp -u username,password sftp://192.168.204.130 << EOF cd /tmp mget *.* bye EOF

    方案三:rsync

    rsync是linux系统下的数据镜像备份工具,rsync的增量传输功能,十分强大。

    假设待传输文件为A,如果目标路径下没有文件A,则rsync会直接传输文件A,如果目标路径下已存在文件A,则发送端视情况决定是否要传输文件A。rsync默认使用"quick check"算法,它会比较源文件和目标文件(如果存在)的文件大小和修改时间mtime,如果两端文件的大小或mtime不同,则发送端会传输该文件,否则将忽略该文件。

    实施方案:

    1、云服务器搭建rsync服务端,设置账户密码,白名单限制访问来源IP。

    2、本地服务器安装rsync客户端,编写shell脚本,结合crontab实现定时增量备份。

    rsync -avz --password-file=/root/passwd root@192.168.204.130::common /tmp >/dev/null 2>&1

    以上,借助于一些常用的运维工具,来构建的解决方案,可以满足这个需求场景下的文件自动备份需求。

  • 相关阅读:
    CodeForces 659F Polycarp and Hay
    CodeForces 713C Sonya and Problem Wihtout a Legend
    CodeForces 712D Memory and Scores
    CodeForces 689E Mike and Geometry Problem
    CodeForces 675D Tree Construction
    CodeForces 671A Recycling Bottles
    CodeForces 667C Reberland Linguistics
    CodeForces 672D Robin Hood
    CodeForces 675E Trains and Statistic
    CodeForces 676D Theseus and labyrinth
  • 原文地址:https://www.cnblogs.com/xiaozi/p/11047243.html
Copyright © 2011-2022 走看看