需求场景: 将云上一台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

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

如何将云上的Linux文件自动备份到本地服务器的更多相关文章

  1. Linux下自动备份MySQL数据库并上传到远程FTP服务器

    Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明:  1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...

  2. Linux 每天自动备份mysql数据库的方法

    Linux 每天自动备份mysql数据库的方法 作者: 字体:[增加 减小] 类型:转载   linux下为了安全有时候需要自动备份mysql数据库,下面是具体的实现步骤.   /usr/bin为my ...

  3. Linux下自动备份Oracle数据库并删除指定天数前的备份

    说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用 ...

  4. RMAN兼容性、控制文件自动备份、保存时间、备份策略、备份脚本(二)

    RMAN 程序的兼容性 RMAN 环境由以下5部分组成:(1) RMAN executable(2) Recovery catalog database(3) Recovery catalog sch ...

  5. 为什么 RMAN 控制文件自动备份的名称格式没有遵循 %F 规则

    在 Oracle 中越是简单的问题,往往越难找到答案,举个例子: 你是否留意观察过在 RMAN 进行备份的时候,自动生成的控制文件名称是否是按照 %F 规则来生成的? 关于控制文件自动备份路径格式,在 ...

  6. 关于 RMAN 控制文件自动备份路径中指定的 %F 说明

    默认情况下,RMAN备份的属性配置一共 14 行( show all; )来自博客园AskScuti CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVIC ...

  7. 文件自动备份和同步bypy和syncthing

    http://blog.csdn.net/pipisorry/article/details/52464402 Linux定时备份数据到百度云盘 sudo pip3 install requestss ...

  8. Linux 系统自动备份数据库及定时任务的设置

    首先想到数据库的自动备份,由于涉及业务原因需要在每天固定的时间去调用方法执行备份.如果不考虑业务要求,只考虑实现的话可以通过Linux系统提供的定时任务去完成备份操作. 本文讲的就是利用Linux系统 ...

  9. Aix/Linux下自动备份oracle数据库

    曾经有个同事,来回操作开发和生产的数据库,结果误删了生产的数据库,那种心情我想不是一般人能理解的,虽然说oracle可以有方法还原,但并不是彻底的. 所以,在工作中,不管是开发还是维护,备份数据库是非 ...

随机推荐

  1. MES系统如何帮助烟草行业管理生产流程

    与很多其他行业一样,烟草MES系统可以帮助卷烟企业实现智能生产.精益制造.快速实现烟草企业数字化车间的创建,助力企业实现改造升级,从而提升企业生产效率,降低生产成产.烟草行业得MES者得天下. 烟草行 ...

  2. Android 拖动条/滑动条控件、星级评分控件

    ProgressBar有2个子控件: SeekBar   拖动条控件 RatingBar   星级评分控件 1.拖动条控件 <SeekBar android:layout_width=" ...

  3. MQTT实战1 - 使用Apache Apollo代理服务器实现mqtt通信

    MQTT实战1 - 使用Apache Apollo代理服务器实现mqtt通信 MQTT实战2 - 使用MQTTnet实现mqtt通信 源码下载 -> 提取码  QQ:505645074 MQTT ...

  4. Mysql中的sql是如何执行的 --- 极客时间学习笔记

    MySQL中的SQL是如何执行的 MySQL是典型的C/S架构,也就是Client/Server架构,服务器端程序使用的mysqld.整体的MySQL流程如下图所示: MySQL是有三层组成: 连接层 ...

  5. 【Java】理解ClassNotFoundException与NoClassDefFoundError的区别

    一.概念上的认识 1)Exception与Error的区别 1.Exception的出现不会导致程序结束,用户程序可以捕获该异常 2.Error的出现会导致程序结束,用户程序无法捕获Error错误 2 ...

  6. Redsi缓存问题(穿透,击穿,雪崩)以及解决办法(分布式锁)【高并发问题】

    Redsi常见问题 缓存在高平发和安全压力下的一些问题 缓存击穿 是某一个热点key在高并发访问的情况下,突然失效,导致大量的并发大金mysql数据库的情况 缓存穿透 是利用redis和mysql的机 ...

  7. C# 在不同编译下的不同表现

    这是我在2018年的时候发在Unity Forums上的帖子, 至今无人回复, 之前是想用TypedReference做DataTable的相关功能的, 可是结果不正确. tiancaiwrk, Oc ...

  8. 今晚,玩一玩linux上的DNS

    老哥遇到的问题, 我先按正规方式操作一波. 一,安装dns服务 yum install bind bind-utils -y 二,修改/etc/named.conf文件 options { liste ...

  9. 201871010136-赵艳强《面向对象程序设计(java)》第六,七周学习总结

            201871010136-赵艳强<面向对象程序设计(java)>第六七周学习总结 项目 内容 这个作业属于哪个课程 <任课教师博客主页链接> https://w ...

  10. 201871020225-牟星源《面向对象程序设计(java)》第十六周学习总结

    201871020225-牟星源<面向对象程序设计(java)>第十六周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...