PHP FTP Synchronizer

Par Kim Haskell

© 2007-2016 Kim Haskell, Scriptol.com, Scriptol.fr

Logiciel gratuit sous licence open source GNU GPL 2.0


Qu'est-ce que PHP FTP Synchronizer?

C'est un logiciel de transfert de fichiers sur un site web, fonctionnant de façon automatique pour mettre à jour le contenu du site à partir de fichier créés localement sur un ordinateur personel.

Il détecte les modifications et transfère les fichiers modifiés.

Il est possible en option de transférer les fichiers édités depuis un certain nombre de jours.

A qui s'adresse PHP FTP Synchronizer?

Aux webmasters qui réalisent un site web localement puis transfèrent les pages sur le serveur.

Il ne convient donc pas pour ceux qui travaillent directement en ligne sur le site et notamment ceux dont le site est géré entièrement par un CMS.

Le logiciel peut néanmoins fonctionner si l'on utilise à coté d'un contenu statique, des CMS tels que forums mais il n'opère que sur la partie statique.

Comment fonctionne le logiciel

On passe au logiciel les paramètres utiles: adresse ftp, login, mot de passe, répertoire distant, répertoire source. Le répertoire source est parcouru avec ses sous-répertoires récursivement, le contenu est comparé avec le contenu distant, et les fichiers modifiés sont téléchargés sur le site.

Les principales options d'accélération sont les suivantes:

Comment on utilise le programme

Le programme s'utilise en ligne de commande, dans une fenêtre d'invite de commande de Windows ou une console Unix.

Il est recommandé de créer un fichier batch (.BAT sous Windows) pour éviter de taper les options à chaque utilisation.

On peut alors ajouter une icône sur le bureau, qui lance ce fichier de commande, et sur laquelle on clique à chaque modification d'un fichier.

Dans un environnement personnel on peut placer toutes les options dans le fichier batch.

Dans un environnement collectif, il n'est pas récommandé de mettre le mot de passe dans le fichier. Il sera alors demandé par le programme à chaque utilisation.

Les deux modes opérationnels

Deux modes d'opération sont possibles avec d'autres options:

  1. Transfert selon la période.
    Dans ce cas tous les fichiers modifiés le jour même ou depuis un nombre de jour donné, sont transférés sur le serveur. Le répertoire de backup devient alors optionnel.

  2. Transfert et backup associés.
    Les fichiers sont comparés avec le contenu d'un répertoire de backup. Ceux dont la date (à la seconde près), sont plus récents sont copiés sur le serveur et aussi dans le répertoire de backup. Dans ce dernier avec la même date que le fichier originel.

Il est possible aussi sans utiliser de backup, de comparer les fichiers avec ceux qui figurent sur le serveur, mais l'opération est extrêmement lente.

Syntaxe de la ligne de commande

La commande à la forme:

solp ftpsync [options][paramètres] dirsource [url]

ou directement en PHP:

php ftpsync.php [options][paramètres] dirsource url

Les paramètres permettent de donner le login, le mot de passe etc. Si les paramètres sont absents, le programme les demande.

Les options définissent le mode de mise à jour et ce que l'on veut afficher. Quand les options sont absentes, les options par défaut sont utilisées.

L'url est l'adresse ftp, de la forme “ftp. Scriptol. fr” Si elle est omise, le programme la demande.

Options et paramètres

-t Mode test, le programme se déroule virtuellement et affiche ce qu'il ferait. Mais rien n'est modifié ni sur le serveur, ni dans le répertoire de backup. Par défaut le mode est réel.

-njours Mode période. Le code -n est suivi d'un nombre de jours: 0 pour le jour même, 1 pour hier et ainsi de suite. Tout ce qui est modifié sur la période donné, aujourd'hui, hier ou durant les n derniers jours est tranféré sur le serveur.

-bbackup Définit le répertoire de backup et indique par là même que l'on choisit le mode backup. La date des fichiers est comparée à celle des fichiers dans ce répertoire, les fichiers plus récents sont téléchargés. Par date on entend l'instant exact à la seconde près.
Si cette option est omise, le programme va comparer les fichiers avec ceux qui sont sur le serveur. Le transfert est très lent et pourrait être interrompu par le serveur.

-ddirectory Définit le répertoire sur le serveur, dans lequel on copie les fichiers. Souvent le site se trouve dans un répertoire www. Il faut alors passer:

-dwww/

Sur un hébergement multi-domaine, il faut indiquer le nom du répertoire associé à un domaine. Le répertoire est le même que celui que l'on utilise avec un logiciel de transfert ftp.
Ce répertoire ne fait par partie de l'URL donnée au navigateur.

-llogin Indique le login. Si -l est spécifié mais que rien ne suit, le programme s'arrête. Alors que si l'option n'est pas donnée, le programme demandera le login.

-pmotdepasse Indique le mot de passe. Fonctionne comme le login. Si vous travaillez en environnement collectif, ne mettez pas le mot de passe dans un fichier de commande. Il vaut mieux l'entrer quand le programme le demande.

-c Effectue une comparaison de contenu et non de date. Cela se fait avec le répertoire backup et est bien sûr plus lent que la comparaison par date, qui est l'option par défaut.

-a Transfère tous les fichiers pour restaurer le site, aucune comparaison n'est faite. Si un répertoire de backup est donné, il y aura aussi copie dans ce répertoire.

-v Mode verbeux. Affiche plus de détails sur les opérations.

-q Mode silencieux. N'affiche rien des opérations du programme.

Options de test de liens

Il est possible (depuis la version 1.3) pour chaque page chargée sur le serveur, de tester les liens qu'elle contient, pour éviter les liens brisés, qu'il s'agisse de liens internes ou externes.

Deux options ont été ajouté pour activer le test:

-u Activation du test.

-wsite Indiquer le domaine du site.

L'URL du site est nécessaire pour les liens internes relatifs afin de reconstruire une URL valide.
Si l'adresse ftp est aussi celle de du site, l'option -w est superflue, l'URL ftp sera transformée en http. Ce n'est pas le cas des sites partageant un même hébergement, il faut alors préciser le domaine du site.

Option de carte de site

La carte de site est mise à jour automatiquement pour toute nouvelle page mise en ligne. Si la page est déjà dans la liste, la date seule sera mise à jour. La fréquence de changement et la priorité ne sont pas modifiés.

-m Activation de la mise à jour de la carte de site.

Conclusion

En cas de problème pour utiliser PHP FTP Synchronizer, n'hésitez pas à poster sur le forum dans la langue de votre choix, scriptol.fr en français, scriptol.com en anglais.