Добавить смещение времени для зеркалирования через lftp

496
flomei

Я работаю над 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
Если вы посмотрите на конфигурацию, вы можете установить `ftp: timezone (string)`, это может исправить значение. Кроме того, вы можете использовать `--ignore-time`,` --newer-than = SPEC` или `--older-than = SPEC`. Seth 7 лет назад 1
Я попробую это через минуту. Вы бы добавили его как ответ, чтобы я мог пометить его как правильный ответ? flomei 7 лет назад 0

1 ответ на вопрос

2
Seth

Если вы посмотрите на руководство, которое вы связали, 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) определяют время, «которое имеет значение», так что вы можете установить его таким образом, чтобы не все файлы передаются.

Похожие вопросы