1

Я работаю над CI Runner в GitLab, который должен передавать измененные файлы через FTP в среду разработки.

Похоже, что lftp является хорошим решением для этого, поскольку он прост в использовании и не слишком сложен.

Я использую это для передачи файлов:

lftp -c "set ftp:ssl-allow no; open -u $USERNAME_DEV,$PASSWORD_DEV $HOST_DEV; mirror -Rvpn -O $PATH_DEV --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/"

Проблемной частью является набор параметров -Rvpn , а именно -n . Это должно отражать только новые файлы, которые, скорее всего, будут работать, проверяя время изменения файла.

Теперь мой репозиторий использует правильное время, но мой сервер на один час вперед (GMT+2 вместо +1), что приведет к ложному при проверке новых файлов.

Я мог бы удалить -n но тогда клонировался весь репозиторий, а не только измененные (и, следовательно, более новые) файлы.

Есть ли способ определить смещение по времени для lftp , поэтому он добавляет +1 час к дате изменения файла или что-то подобное? Я проверил руководство, но не нашел ничего подобного.

1 ответ1

2

Если вы посмотрите на руководство, которое вы связали, у lftp есть опция, которая позволяет вам определить часовой пояс для удаленного сайта. Возможно, стоит попытаться установить его и посмотреть, когда lftp корректно компенсирует это.

ftp: часовой пояс (строка)

Предположим этот часовой пояс для времени в списках, возвращаемых командой LIST. Эта настройка может быть смещением по Гринвичу [+| -] HH [: MM [: SS]] или любым допустимым значением TZ (например, Европа / Москва или MSK-3MSD, M3.5.0, M10.5.0 / 3). По умолчанию используется GMT. Установите пустое значение, чтобы принять местный часовой пояс, заданный переменной окружения TZ.

Кроме того, он имеет переключатель для игнорирования времени (--ignore-time что может позволить вам сделать так, чтобы оно зависело только от размера файла, а некоторые ключи (--newer-than и --older-than) определяют время ", которое" имеет значение », поэтому вы можете настроить его так, чтобы не все файлы передавались.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .