Secure FTP / SCP会在传输过程中“中断”现有文件

通常,我通过安全FTP将更新的文件/脚本上传到我的服务器,以便在更改时replace这些文件的现有副本。 但这有直接写入这些文件的讨厌的行为。 这意味着,在file upload时,这些文件/脚本将在这段时间内被加载网站的任何人破坏(由于不完整)。 我怎样才能解决这个问题?

我认为安全的FTP / SSH守护进程将足够聪明,可以在临时位置(如/ tmp)中保持正在进行的下载,直到传输完成,然后将文件快速复制到目标位置。 有没有一种简单的方法来做到这一点?

谢谢!

在每个文件的基础上,rsync有这种行为,所以我build议使用(也出于各种其他原因)。 如果你需要primefacesreplace你的整个网站,那么乔希的答案是要走的路。

(S)FTP一切到一个临时目录。 完成后,重命名目标目录并重命名临时目录以取代它。

例如,假设您正在将所有内容上传到public_html

  1. 通过SFTP创build一个与public_html同级别的新目录public_html

  2. 将所有内容上传到public_html_new

  3. 当upoad完成后,将public_html重命名为public_html_old ,将public_html_new重命名为public_html