
Ich arbeite an einem CI-Runner in GitLab, der geänderte Dateien per FTP in eine Entwicklungsumgebung übertragen soll.
lftp
schien hierfür eine gute Lösung zu sein, da es einfach zu verwenden 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/"
Problematisch ist der -Rvpn
Parametersatz, genauer gesagt der -n
. Dieser soll eigentlich nur neuere Dateien spiegeln, was aber höchstwahrscheinlich durch die Überprüfung der Dateiänderungszeiten funktioniert.
Jetzt verwendet mein Repository die richtige Zeit, aber mein Server ist eine Stunde im Voraus (GMT+2 statt +1), was bei der Suche nach neueren Dateien zu einem Fehler führt.
Ich könnte sie entfernen, -n
aber dann würde das gesamte Repository geklont, nicht nur die geänderten (und daher neueren) Dateien.
Gibt es eine Möglichkeit, einen Zeitversatz für zu definieren lftp
, sodass zum Dateiänderungsdatum eine Stunde oder etwas Ähnliches hinzugefügt wird? Ich habe nachgeprüftdas Handbuchaber nichts dergleichen gefunden.
Antwort1
Wenn Sie sich das Handbuch ansehen, auf das Sie verlinkt haben, lftp
finden Sie eine Option, mit der Sie die Zeitzone für die Remote-Site definieren können. Es könnte sich lohnen, zu versuchen, sie einzustellen und zu sehen, wann immer sie lftp
richtig kompensiert wird.
ftp:Zeitzone (Zeichenfolge)
Diese Zeitzone wird für die Zeit in den vom LIST-Befehl zurückgegebenen Listen verwendet. Diese Einstellung kann der GMT-Offset [+|-]HH[:MM[:SS]] oder ein beliebiger gültiger TZ-Wert sein (z. B. Europe/Moskau oder MSK-3MSD,M3.5.0,M10.5.0/3). Der Standardwert ist GMT. Setzen Sie ihn auf einen leeren Wert, um die lokale Zeitzone anzunehmen, die durch die Umgebungsvariable TZ angegeben ist.
Darüber hinaus verfügt es über einen Schalter zum Ignorieren der Zeit ( --ignore-time
wodurch Sie es möglicherweise nur auf die Dateigröße angewiesen machen können und einige Schalter ( --newer-than
und --older-than
) zum Definieren einer Zeit, „die zählt“, sodass Sie es möglicherweise so einrichten können, dass nicht alle Dateien übertragen werden.