Обычно я загружаю обновленные файлы / сценарии через защищенный FTP на свой сервер, чтобы заменить существующие копии этих файлов по мере внесения изменений. Но у этого есть неприятное поведение записи непосредственно в эти файлы. Это означает, что пока файлы загружаются, эти файлы / скрипты будут повреждены (из-за того, что они неполные) для всех, кто загружает веб-сайт в это время. Как я могу это исправить?
Я предположил, что безопасный демон FTP / SSH будет достаточно умен, чтобы хранить текущие загрузки во временном месте (например, / tmp) до завершения передачи, а затем быстро копировать файлы в предполагаемое место. Есть ли простой способ заставить его делать что-то подобное?
Спасибо!
Для каждого файла rsync имеет такое поведение, поэтому я бы рекомендовал его использовать (также по множеству других причин). Если вам нужно атомарно заменить весь сайт, то ответ Джоша - это то, что вам нужно.
(S) FTP все во временный каталог. По завершении переименуйте целевой каталог и переименуйте временный каталог, чтобы занять его место.
Например, вы загружаете все в public_html
:
Через SFTP создайте новый каталог public_html_new
на том же уровне, что и public_html
Загрузить все в public_html_new
Когда загрузка завершится, переименуйте public_html
к public_html_old
, и переименование public_html_new
к public_html