Zeitversatz für Spiegelung über lftp hinzufügen

625
flomei

Ich arbeite an einem CI-Runner in GitLab, der geänderte Dateien per FTP in eine Entwicklungsumgebung übertragen soll.

lftp schien eine gute Lösung dafür zu sein, da es einfach zu bedienen und nicht zu kompliziert ist.

Ich verwende dies zum Übertragen von Dateien:

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/" 

Der problematische Teil ist der -RvpnParametersatz, insbesondere der -n. Dies soll nur neuere Dateien spiegeln, die höchstwahrscheinlich durch Überprüfen der Änderungszeiten von Dateien funktionieren.

Jetzt verwendet mein Repository die korrekte Zeit, aber mein Server ist eine Stunde im Voraus (GMT + 2 statt +1), was bei der Suche nach neueren Dateien zu einem falschen Ergebnis führt.

Ich könnte die entfernen, -naber dann würde das gesamte Repository geklont werden, nicht nur die geänderten (und daher neueren) Dateien.

Gibt es eine Möglichkeit, einen Zeitversatz für lftpden Zeitpunkt der Änderung der Datei um +1 Stunde oder ähnliches festzulegen ? Ich habe die Bedienungsanleitung überprüft, aber nichts dergleichen gefunden.

1
Wenn Sie sich die Konfiguration ansehen, können Sie ftp: timezone (string) `einstellen, wodurch der Wert korrigiert werden kann. Außerdem können Sie möglicherweise `--ignore-time`,` --newer-than = SPEC` oder `--older-than = SPEC 'verwenden. Seth vor 7 Jahren 1
Ich werde das in einer Minute versuchen. Würden Sie es als Antwort hinzufügen, damit ich es als die richtige Antwort markieren kann? flomei vor 7 Jahren 0

1 Antwort auf die Frage

2
Seth

Wenn Sie sich das Handbuch ansehen, das Sie verlinkt haben, lftpgibt es eine Option, mit der Sie die Zeitzone für den Remote-Standort definieren können. Es kann sich lohnen, es einzustellen und zu sehen, wann es lftprichtig kompensiert.

ftp: timezone (string)

Nehmen Sie diese Zeitzone für die Zeit in Listen an, die vom Befehl LIST zurückgegeben werden. Diese Einstellung kann GMT-Offset [+ | -] HH [: MM [: SS]] oder ein beliebiger gültiger TZ-Wert sein (z. B. Europa / Moskau oder MSK-3MSD, M3.5.0, M10.5.0 / 3). Die Standardeinstellung ist GMT. Setzen Sie ihn auf einen leeren Wert, um die von der Umgebungsvariable TZ angegebene lokale Zeitzone anzunehmen.

Außerdem gibt es einen Schalter zum Ignorieren der Zeit ( --ignore-timewodurch Sie möglicherweise nur die Dateigröße verwenden müssen und einige Schalter ( --newer-thanund --older-than) eine Zeit definieren, die "wichtig" ist), sodass Sie sie möglicherweise so einstellen können Es werden nicht alle Dateien übertragen.