rsync вызывает ошибки после синхронизации

Когда я запускаю команду rsync чтобы подталкивать мои файлы к производству, иногда – не всегда, и это очень редко – после завершения синхронизации мы получаем ошибки в нашей производственной среде.

Команда rsync :

 rsync -avzO --exclude=*.git --exclude=*.log /var/www/html/ver_1/api root@production.local:/var/www/html/ver_1 

Я подтвердил следующее:

  • Настройки производительности и тестовой среды (PHP и Apache) зеркально отражают друг друга
  • Проблема должна заключаться в команде rsync потому что когда я вручную копирую файлы (используя WinSCP ), проблем нет – так что это не ошибка кода.
  • Мы синхронизируем с компьютера CentOS на компьютере CentOS (если это имеет значение)

Вопросов

  • Что может быть причиной проблемы?
    • Почему это случается только иногда (2/3 раза из 25-иш)
  • Как я могу ее разрешить или минимизировать возникновение?

редактировать

PHP Fatal error: require_once(): Cannot redeclare class api\lib\classapitools\apitools in /var/www/html/ver_1/api/index.php on line 42

  • Я скопировал файл index.php из теста в производство, но он не исправил его.
  • Повторно запустил команду rsync и не исправил ее.
  • Затем я скопировал все файлы вручную, и это сработало. Я отлаживал все приложение, но он не возвращал ничего прогностического в отношении ошибки (я знаю, почему ошибка там (в общем смысле), но rsync казалось, имел FUBAR'd все приложение до ручной синхронизации)

  • Отменить и возобновить резервное копирование дубликатов
  • Разрешить ограниченный скрипт rsync (rrsync) для произвольных каталогов с авторизованными ключами
  • Rsync устанавливает новое соединение ssh каждый раз для нескольких файлов или использует одно и то же соединение?
  • rsync remove-source-files, как он возобновляется?
  • Оцените время или работу, оставшуюся до конца для rsync?
  • rsync через ssh из linux в windows sbs 2003 несоответствие протокола
  • «Ошибка совпадающего шифрования» в `rsync`
  • rsync + переименование скопированных файлов
  • One Solution collect form web for “rsync вызывает ошибки после синхронизации”

    Проблема, скорее всего, заключается в использовании флага -a на rsync. Это эквивалентно набору других опций, включая -t , который сохраняет время модификации файлов.

    Поскольку вы не перезапускаете приложение на целевом компьютере, вы теперь зависите от того, что машина перечитывает некоторые или все эти файлы или нет, в зависимости от приложения и отслеживаются ли эти файлы как измененные.

    Вы пытаетесь использовать -rlpgoD вместо -a . «Неправильная» временная метка файлов, переданных в предыдущем rsync (но не в текущем), не должна вызывать каких-либо проблем, rsync достаточно умен, чтобы заметить, что контент тот же, даже если метки времени отсутствуют.

    Если вы использовали опцию « --in-place вы, вероятно, столкнетесь с большими проблемами.

    Linux и Unix - лучшая ОС в мире.