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 << EOFcd /tmpmget *.*byeEOF 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
以上,借助于一些常用的运维工具,来构建的技术解决方案,可以满足这个需求场景下的文件自动备份需求。

陕西省渭南市 1F
SCP方案确实最简单,但安全性确实是个问题
浙江省 2F
感觉rsync方案最实用,增量备份对大文件特别友好。
贵州省贵阳市 3F
用lftp那个脚本试了下,报权限错误,有人遇到过吗
山西省太原市 B1
@ 磨坊主董 我遇到过,同样是因为lftp没有读取本地凭证文件的权限,改成chmod 600后就好了。
新喀里多尼亚 4F
rsync增量备份确实香,省时省力
辽宁省抚顺市 5F
FTP现在还有人用?早该淘汰了
广东省广州市 6F
之前用scp传小文件还行,大文件容易断
新疆昌吉州 7F
WinSCP的批处理模式挺方便的,适合Windows服务器
福建省福州市平潭县 8F
SFTP虽然慢点,但安全第一啊
广东省广州市 B1
@ 孤傲的狼 安全确实重要,不过小文件用SFTP那点速度损失可以忽略不计。
湖北省武汉市 B1
@ 孤傲的狼 安全确实重要,慢一点也能接受,尤其是关键数据的备份。
山东省青岛市即墨市 9F
这个白名单设置具体怎么操作?求详细步骤
山东省青岛市 10F
备份策略还得考虑文件增长量,别撑爆磁盘
越南 11F
rsync的–password-file参数要注意权限设置,不然会报错
辽宁省朝阳市 B1
@ 黑脸刚直 确实,密码文件最好只给root读写,防止权限问题导致备份失败。
陕西省商洛市 12F
rsync方案真的省事,挺好用的。
四川省自贡市 13F
SCP需要开放22端口,这样安全么?
印度尼西亚 14F
我之前也用rsync做过增量备份,省了不少流量。
浙江省台州市 15F
FTP真的不敢用了,明文太不安全。
北京市 B1
@ 星焰之光 用lftp脚本报错的话,检查下sftp账户有没有目录的读取权限。
福建省泉州市 16F
看到大家争SCP还是SFTP,现场氛围有点热闹。
日本 17F
如果担心SSH被暴力破解,可以考虑在服务器上加fail2ban,再配合白名单更稳。👍
山东省济宁市 18F
那如果本地服务器是Windows,能直接用rsync吗?有没有推荐的工具?
贵州省铜仁市 19F
其实SFTP的传输速度并不会慢太多,主要是网络带宽限制。
陕西省西安市 20F
前几天用rsync同步日志,遇到权限错误,原来是passwd文件权限不对。
北京市 21F
整体来看,用rsync配合crontab是最省事的方案,既能增量备份又能控制带宽,关键是记得把密码文件设成600权限,防止泄露。
重庆市 B1
@ 节奏跳动 权限设600这个细节太关键了,上次我就栽在这上面。
日本 22F
sftp比ftp慢吗?没太感觉到。
韩国 23F
rsync增量备份确实省心,我这边每天同步几个G的日志文件,带宽占用也不大。
黑龙江省哈尔滨市 24F
WinSCP批处理模式在Windows下确实好用,配合计划任务就能自动跑。
北京市 25F
要我说,这几个方案里SCP最简单粗暴,适合临时传点小文件。
广东省深圳市 26F
有人试过把rsync和zabbix监控结合吗?想搞个备份失败自动告警。
日本 27F
白名单设置就是在防火墙里加条规则吧?具体是iptables还是firewalld?
菲律宾 28F
FTP早该进博物馆了,现在还用纯明文传输心也太大了。
北京市 29F
备份策略还得考虑保留周期吧?总不能一直堆着不清理。