专栏首页BypassLinux文件自动备份方案

Linux文件自动备份方案

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

面对这样一个需求,我们可能面临如下一些问题。

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

2、应考虑文件类型、大小、数量、增长速率等因素,对技术实现方式的影响。

3、技术实现:如何从一台服务器自动备份到另一台服务器呢?哪一个技术方案相对更安全可靠?这里涉及的是文件备份,且实时性要求不高,最笨拙的方式就是人工备份,由相关管理人员通过主动的方式手工备份文件到本地服务器。但这是懒人的时代,机器能做的,干嘛用手来呢,我们来一起看看自动备份实现的方案。

方案一:SCP

最简单的方式,就是利用SCP来实现自动远程备份。

1、公私钥免密连接

2、crontab+scp:

0 0 * * 0 scp -r root@192.168.204.130:/tmp/  /tmp

但这种方式,需要放开SSH运维端口,即使设置白名单,在强管控的安全策略之下,依然面临挑战,难道没有其他更好的方案吗?

方案二: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

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

本文分享自微信公众号 - Bypass(Bypass--),作者:Bypass

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【权限维持】Window下的几种隐藏技术

    攻击者在获取服务器权限后,通常会用一些后门来维持权限。如果你想让你的后门保持的更久些,那么请隐藏好它,使之不易被管理员发现。

    Bypass
  • 删库跑路的背后,是企业对数据安全的反思

    这几天,一直在关注微盟删库事件的进展,在3月1日晚上,微盟发布最新公告称数据已经全面找回。而此时,距离事故发生的2月23日晚,过了有足足七天七夜,也就是7*24...

    Bypass
  • 如何在百万行代码中发现隐藏的后门

    试想一下,如果你的网站被入侵,攻击者留下隐藏的后门,你真的都可以找出来嘛?面对一个大中型的应用系统,数以百万级的代码行,是不可能做到每个文件每段代码进行手工检查...

    Bypass
  • Jupyter notebook 快速入门

    在浏览器中输入http://localhost:8888,就出现了notebook的页面。

    用户2936342
  • Python之psycopg2操作PostgreSQL

    1)使用psycopg2-2.4.2.win-amd64-py2.7-pg9.0.4-release.exe安装,下载地址:http://vdisk.weibo...

    周小董
  • 机器学习第8天:IPyhon与Jupyter notebook

    ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许...

    明天依旧可好
  • 难道有环形队列串口发送数据就万事大吉了吗

    咱做程序的时候经常碰到各个地方都需要发送串口的数据,但是如果两个发送函数一个先发送完,另一个紧接着就发送了.......

    杨奉武
  • nginx动静分离后个别静态文件代理至后端 原

       网站通过nginx进行动静分离,但是个别静态文件开发在tomcat端配置的虚拟路径,此路径对nginx来说是不存在的,需要将这部分路径过滤并反向代理至后端...

    拓荒者
  • 剑指Offer-把字符串转换成整数

    package String; /** * 把字符串转换成整数 * 题目描述 * 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值...

    武培轩
  • 【网络协议】专题总结以及网络协议高频面试题汇总(8篇)

    初次接触,可能对所谓三次握手四次挥手理解过于抽象?没关系,来看动态图版本的文章,让你从抽象到具象:

    java进阶架构师

扫码关注云+社区

领取腾讯云代金券