Назад | Перейти на главную страницу

Безопасный FTP / SCP «ломает» существующие файлы во время их передачи

Обычно я загружаю обновленные файлы / сценарии через защищенный FTP на свой сервер, чтобы заменить существующие копии этих файлов по мере внесения изменений. Но у этого есть неприятное поведение записи непосредственно в эти файлы. Это означает, что пока файлы загружаются, эти файлы / скрипты будут повреждены (из-за того, что они неполные) для всех, кто загружает веб-сайт в это время. Как я могу это исправить?

Я предположил, что безопасный демон FTP / SSH будет достаточно умен, чтобы хранить текущие загрузки во временном месте (например, / tmp) до завершения передачи, а затем быстро копировать файлы в предполагаемое место. Есть ли простой способ заставить его делать что-то подобное?

Спасибо!

Для каждого файла rsync имеет такое поведение, поэтому я бы рекомендовал его использовать (также по множеству других причин). Если вам нужно атомарно заменить весь сайт, то ответ Джоша - это то, что вам нужно.

(S) FTP все во временный каталог. По завершении переименуйте целевой каталог и переименуйте временный каталог, чтобы занять его место.

Например, вы загружаете все в public_html:

  1. Через SFTP создайте новый каталог public_html_new на том же уровне, что и public_html

  2. Загрузить все в public_html_new

  3. Когда загрузка завершится, переименуйте public_html к public_html_old, и переименование public_html_new к public_html