VPN访问网络共享时跨文件夹复制文件的技术疑问
VPN访问网络共享时跨文件夹复制文件的技术疑问
嘿,我来一步步帮你理清这些问题:
1. 这和本地机器内的复制一样吗?
完全不一样哦!本地复制是在你自己电脑的存储设备之间直接传输,速度快且不受网络影响。但你现在是通过VPN访问网络共享,用本地的复制粘贴(包括TeraCopy)时,数据得先经过VPN链路传到你的电脑,再传回去到目标文件夹——这就是为啥速度只有2-7KB/s,大概率是VPN的带宽限制、网络延迟,或者共享服务器本身的性能瓶颈导致的。
2. 文件是直接从A文件夹到B文件夹,还是会经过我的计算机?
默认情况下一定会经过你的电脑!你现在用的本地复制工具(不管是系统自带的还是TeraCopy),都是先把共享A里的文件下载到你本地的临时缓存,再上传到共享B。只有当共享存储本身支持服务器端复制(比如企业级NAS的内部复制功能、Windows域环境下的DFS复制,或者共享服务器本身允许直接在内部移动文件),才会让文件在服务器内部完成传输,不经过你的电脑。
3. 怎么在目标机器终端启动复制,并且断开/关闭终端后还能继续运行?
这得分两种情况,看目标机器是Windows还是Linux:
如果是Linux目标机器:
- 首先你得能通过SSH远程登录到目标机器(确保VPN环境下能连通,且有足够权限)。
- 方法一:用
nohup命令让进程在后台运行,即使断开SSH也不会终止。比如:
这里nohup cp -r /path/to/folderA /path/to/folderB &-r是复制文件夹的参数,&是让命令在后台执行,nohup会把输出写到当前目录的nohup.out文件里,你之后登录还能查看。 - 方法二:用
screen或tmux这类会话管理工具,创建一个后台会话,启动复制后断开会话,之后再重新连接就能看到进度。比如用screen:- 登录后输入
screen创建会话 - 在会话里执行复制命令,比如
rsync -av /path/A /path/B(rsync比cp更适合大文件,还能断点续传) - 按
Ctrl+A再按Ddetach会话,此时关闭SSH也不会终止复制 - 之后重新登录,输入
screen -r就能回到之前的会话查看状态
- 登录后输入
如果是Windows目标机器:
- 可以用PowerShell远程(需要目标机器开启远程管理),或者用远程桌面连接到目标机器操作。
- 方法一:用
robocopy命令,加上后台运行的参数:
执行后如果要让它在关闭终端后继续运行,可以用robocopy \\server\share\A \\server\share\B /Estart /b前缀:start /b robocopy \\server\share\A \\server\share\B /E,/E是复制所有子目录(包括空目录)。 - 方法二:用Windows任务计划程序创建一个任务,指定复制命令(比如robocopy),设置为“不管用户是否登录都运行”,这样即使你断开远程连接,任务也会在后台执行。
备注:内容来源于stack exchange,提问作者Daviid
相关产品推荐
相关产品推荐

