pscp是否可以转移到临时文件并在完成后重命名



我有一个很大的文件,必须传输到远程服务器。

在远程服务器上,有一个作业每5分钟激活,一旦看到以正确前缀开头的文件名,就会对其进行处理。

如果工作";唤醒";在转移过程中?在这种情况下,它将处理损坏的文件。

pscp是否创建了一个.temp文件并相应地重命名它以说明这一点?还是我必须手动处理?

Nopscp不通过临时文件传输文件。

如果将pscp用作SFTP客户端,则必须使用另一个SFTP客户端。pscp默认为SFTP,但如果SFTP不可用,则返回SCP。如果您需要使用SCP(这是罕见的(,您不能这样做,因为SCP协议不支持文件重命名。


至少支持文件重命名的SFTP客户端-显式上传到临时文件名,然后重命名。为此,您可以使用PuTTY包中的psftp及其putmv命令:

open user@hostname
put C:sourcepathfile.zip /destination/path/file.tmp
mv /destination/path/file.tmp /destination/path/file.zip
exit

或者使用可以通过临时文件自动上传文件的SFTP客户端。例如,WinSCP可以做到这一点。默认情况下,它只适用于超过100KB的文件。如果文件较小,则可以使用-resumesupport开关将其配置为对所有文件执行此操作。

通过临时文件强制上传文件的示例批处理文件:

"C:Program Files (x86)WinSCPWinSCP.com" ^
/log="C:writablepathtologWinSCP.log" /ini=nul ^
/command ^
"open sftp://username:password@example.com/ -hostkey=""ssh-ed25519 255 ...=""" ^
"put -resumesupport=on C:sourcepathfile.zip /destination/path/" ^
"exit"

该代码由WinSCP GUI生成;转移到临时文件名"选项设置为"em>";所有文件"。

另请参阅WinSCP文章"上传/上传到临时文件名时锁定文件"。

(我是WinSCP的作者(


相关问题:SFTP文件锁定机制。

最新更新