传文件这事,一天两天不觉得,等到每周都要往服务器上扔一批静态文件,选什么工具就开始折磨人了。ftp服务器工具看着都差不多——填地址、账号、密码,连上,拖过去,完事。可真到批量传、断点续传、还得让同事接手的时候,图形界面和命令行的差别一下就冒出来了。我两边都用过不少年,下面说的都是自己的取舍,不是什么标准答案,也不见得适合你手上的活儿。

ftp服务器工具大致分三类,别急着站队
纯图形客户端、纯命令行、还有两头都沾的混合型。混合型现在挺常见,WinSCP 这种既能双栏拖拽、也能开个终端敲命令,FileZilla 也能带参数拉起来跑批处理。多数人纠结的其实是两头——到底要不要花时间学命令。我的看法比较土:看你一年要传多少次。一个月传两三次的,学命令行是浪费时间;每天都要同步目录的,用图形界面才是浪费生命。中间那档,工具随便挑,反正都能凑合。
图形界面赢在看得见
左边本地、右边远程,拖过去,进度条走完。传错了立刻能看出来,放错目录也能一眼发现。给设计、运营这类偶尔上传的人用,培训成本几乎为零,我说一遍他们就会操作。缺点也明显:任务一多就废。几十个文件手点,点到后面自己都不记得哪个传了、哪个没传。另外图形客户端传大文件时偶尔会假死,你分不清是卡住了还是在走,只能干看着。
命令行不是装酷,批量活儿才显出它
我最早用命令行纯粹是因为那台机器没装桌面环境,只能敲。后来发现真正的好处在于能写进脚本。比如每天凌晨把本地生成的静态页面推上去,定时任务里挂一条 lftp 的 mirror 就完事,不用人守。再比如几十个站点结构一模一样,改一个循环变量批量跑,喝杯水的功夫就完。这种事情图形工具做不来,或者说做起来特别别扭。
还有一点是弱网下的可控性。超时、重试次数、限速,参数都在那儿摆着,调一调就能跑通。图形工具给你一个重试按钮,点多少次全凭心情,碰上时好时坏的线路能耗一下午。
ftp服务器工具选型时,我盯这几处
编码。中文文件名乱码是老大难,客户端和服务端一边 UTF-8 一边 GBK,名字就变成一堆问号。两头都得看,别只改客户端就以为万事大吉。
被动模式。现在服务端基本都躲在防火墙后面,主动模式连不上是常态。PASV 得开着,服务端还要放行一段端口,具体端口段怎么设,照服务商说明或 vsftpd 官方文档来,别自己猜着填。
二进制模式和断点续传。传压缩包、镜像这类文件,二进制模式没切过去,大小对得上但内容已经坏了,这种坑非常隐蔽,解压报错的时候你未必想得到是传输环节出的问题。
日志。出问题的时候,谁在什么时候传了什么,有日志能省半天扯皮。
权限和加密,别等出事再补
匿名登录第一时间关掉,不少人装完服务端就忘了这茬。每个站点单独一个系统账号,家目录锁死进去,别让人上传之后顺着目录爬到系统配置那边去。密码这条更直白:明文 FTP 在网络上是裸奔的,能上 FTPS 就别省这一步,或者干脆走 SFTP,跑在 SSH 的 22 端口,配置还省事。
权限位也别乱给。上传目录图省事给到最大权限,回头被人塞个脚本上去执行,哭都来不及。读、写、执行这三样,能给小的就别给大的。
几条常用动作,记住就够跑起来
系统自带的 ftp 客户端交互式敲:open 连主机,binary 切二进制,prompt off 关掉批量确认,mput 批量上传,bye 退出。lftp 更顺手,mirror -R 是本地推到远端,mirror 反过来拉。curl -T 文件 ftp://地址/ 适合塞进脚本一行搞定。sftp 用法跟 ssh 差不多,get 和 put 两个词走天下。
命令记不全没关系,手册页一直在那儿。真正要记住的是另一件事:这条命令能不能重复执行,失败了会不会自己重跑。别写出一个每次跑都覆盖全站的脚本,那种东西迟早要出事。
什么信号说明该换工具了
每次传完都要手点一遍核对文件数;同一个目录反复传错版本;负责上传的同事一请假,你就不知道文件该怎么上去;脚本里开始出现一堆 sleep 在那儿等它传完。中了上面两条以上,基本就是工具和活儿不匹配了,不是手速的问题。
我的建议就一句:手上常备一个图形客户端应急,主力活儿尽量脚本化。图形界面负责看一眼、改一下、救个急;命令行负责重复、批量、无人值守。两边都装,不打架也不占多少地方。至于用哪个牌子、哪个协议,把编码和加密这两件事定下来,剩下的顺手就行。
【版权声明】:本站内容若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!