Forum Programmation.shell synchronisation de ftp à l'aide de lftp

Posté par  .
Étiquettes : aucune
0
19
oct.
2007
Bonjour à tous, j'utilise la commande lftp avec l'option mirror -R pour synchroniser un disque local et un serveur ftp.
Mon probleme est le suivant :
Mon pc est en heure CEST (UTC +2).Le serveur est en UTC.
La commande lftp se basant sur les dates de fichiers pour savoir si un fichier a été modifié, il en voit les modifs que 2 heures trop tard. En effet, il se base sur l'heure brute, telle qu'on peut la voir en tapant la commande date -u dans un terminal.
Si j'ai un fichier envoyé à 14h depuis mon pc, sa date brute sera 12h00, car je suis en UTC+2. Le serveur ftp lui enregistrea le fichier à 14h00 (pour lui, date et date -u renvoie la meme heure puisqu'il n'a pas de fuseau horaire)...
Donc si je le modifie localement sur mon pc une minue plus tard, sa nouvelle date brute sera 12h01. Mais le serveur ayant une date brute de 14h, il croi que mon fichier local est plus ancien que le sien, alors que c'est faux...

Dans les parametres de lftp, j'ai essayé de mettre set ftp:timzeone à différentes valeur mais ca ne semble rien changer du tout....

En me connectant directeemnt au serveur par port serie ( c'est est un serveur embarqué qui tourne sous uclinux), si je positionne la variable TZ à la meme zone que mon pc, tout se passe bien. Le probleme c'est que des que je ferme le terminal, la variable meurt. Je n'ai pas acces aux fichiers qui me permettraient de rendre cette variable perrenne comme /etc/profile ou /etc/rc car ils sont ecrit en dur dans la rom du serveur embarqué ...

J'espere que ce que je raconte n'est pas trop confus...
Pour résumer je voudrais savoir comment expliquer à lftp que les 2 postes n'ont pas la meme heure brute, puisqu'un est par exemple à 14h en brut et l'autre à 14h en tenant compte du fuseau horaire CEST.

Sinon je pensais fair un script qui change l'heure de mes fichier locaux en leur rajoutant 2 heures juste avant de les envoyer, (et seulement une heure si on est en heure d'hiver), est ce possible avec la commande touch par exemple??

Sinon existe-il une commande equivalente à setenv mais qui rend la variable d'environnement globale, pas uniquement accessible au terminal courant?

Merci beaucoup et désolé si ce post vous a completement assomé...
  • # Sitecopy

    Posté par  . Évalué à 1.

    Salut,


    j'ai eu exactement le même souci que toi, j'ai un disque dur multimédia qui ne retient pas la date/heure et du coup impossible de synchroniser par FTP.

    Résultat, j'ai trouvé un petit logiciel qui se nomme sitecopy et qui stocke dans un fichier de config local la liste des fichiers/répertoires à synchroniser.

    Tu trouveras une page de man ici:http://www.delafond.org/traducmanfr/man/man1/sitecopy.1.html

    Sous ubuntu, ce soft est intégré aux dépots officiels.

    Peut-être que tu pourras t'en servir en fonction de ce que tu souhaites, por moi ça fonctionne impec.

    A+.
  • # TZ=UTC commande

    Posté par  . Évalué à 1.


    $ date && TZ=UTC date
    samedi 20 octobre 2007, 18:05:55 (UTC+0200)
    samedi 20 octobre 2007, 16:05:55 (UTC+0000)


    Devrait faire l'affaire avant de lancer lftp.
    • [^] # Re: TZ=UTC commande

      Posté par  . Évalué à 1.

      Merci à vous 2. Malheuresement "date && TZ=UTC date" ne résoud pas mon probleme :(
      Qu'est ce que cette commande est sensée faire?
      Je vais regarder du coté de site copy :)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.