安全 FTP/SCP 在传输过程中“破坏”现有文件

安全 FTP/SCP 在传输过程中“破坏”现有文件

通常,我会通过安全 FTP 将更新的文件/脚本上传到我的服务器,以便在进行更改时替换这些文件的现有副本。但这会带来直接写入这些文件的不良行为。这意味着在文件上传期间,对于在此期间加载网站的任何人而言,这些文件/脚本都会被破坏(由于不完整)。我该如何修复此问题?

我假设安全 FTP/SSH 守护程序足够智能,可以将正在进行的下载保存在临时位置(如 /tmp)直到传输完成,然后快速将文件复制到目标位置。有没有简单的方法可以让它做这样的事情?

谢谢!

答案1

在每个文件的基础上,rsync 都有这种行为,所以我建议使用它(出于各种其他原因)。如果您需要自动交换整个网站,那么 Josh 的答案就是您的最佳选择。

答案2

将所有内容 (S)FTP 到临时目录。完成后,重命名目标目录并重命名临时目录以取代它。

例如,假设您要将所有内容上传至public_html

  1. 通过 SFTP 创建一个public_html_new与以下目录同级的新目录public_html

  2. 上传所有内容至public_html_new

  3. 上传完成后,重命名public_htmlpublic_html_old,并将文件重命名public_html_newpublic_html

相关内容