2 votes

Ajout d'un décalage temporel pour la mise en miroir via lftp

Je travaille sur un runner CI dans GitLab qui est censé transférer les fichiers modifiés via FTP vers un environnement de développement.

lftp semble être une bonne solution pour ce faire, car elle est facile à utiliser et pas trop compliquée.

Je l'utilise pour transférer des fichiers :

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

La partie problématique est le -Rvpn et plus particulièrement l'ensemble de paramètres -n . Ceci est supposé refléter uniquement les fichiers les plus récents, ce qui fonctionnera probablement en vérifiant les temps de changement des fichiers.

Maintenant, mon référentiel utilise l'heure correcte mais mon serveur a une heure d'avance (GMT+2 au lieu de +1), ce qui entraîne un faux lors de la vérification des fichiers les plus récents.

Je pourrais enlever le -n mais alors tout le référentiel serait cloné, pas seulement les fichiers modifiés (et donc plus récents).

Existe-t-il un moyen de définir un décalage de temps pour lftp Il ajoute donc une heure à la date de modification du fichier ou quelque chose de similaire ? J'ai vérifié le manuel mais je n'ai rien trouvé de tel.

2voto

Seth Points 8547

Si vous regardez le manuel que vous avez lié lftp dispose d'une option qui vous permet de définir le fuseau horaire du site distant. Cela peut valoir la peine d'essayer de le définir et de voir si le site distant peut être utilisé. lftp compense correctement.

ftp:timezone (string)

Supposez ce fuseau horaire pour l'heure dans les listes retournées par la commande LIST. Ce paramètre peut être le décalage GMT [+|-]HH[:MM[:SS]] ou toute valeur TZ valide (par exemple Europe/Moscou ou MSK-3MSD,M3.5.0,M10.5.0/3). La valeur par défaut est GMT. Définissez-le à une valeur vide pour assumer le fuseau horaire local spécifié par la variable d'environnement TZ.

En outre, il dispose d'un interrupteur pour ignorer l'heure ( --ignore-time ce qui pourrait vous permettre de le faire dépendre uniquement de la taille du fichier et de certains commutateurs ( --newer-than y --older-than ) pour définir un moment "qui compte", de sorte que vous pourriez être en mesure de le configurer de manière à ce que tous les fichiers ne soient pas transférés.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X