Sans accès ssh, il n’est pas possible d’utilise Rsync pour mettre à jour le site, mais il y a lftp.
Lftp est un client FTP permettant de faire des transferts de fichiers en ligne de commande.
C’est l’outil parfait pour mettre à jour votre site Internet modifié localement ou pour faire une sauvegarde sur votre ordinateur.
Ce qui nous intéresse ici est la mise à jour du site, une simple commande permet de la réaliser :
$ lftp ftp://identifiant:motdepasse@serveurftp -e "mirror -e -R -x dossier_a_exclure/ /repertoire_local/ /repertoire_distant ; quit"
Mais il est encore plus astucieux d’écrire un script qui exécutera ces commandes.
Le script « synchro.sh »
#!/bin/sh
LFTP=$(which lftp)
$LFTP -c "set ftp:list-options -a;
open ftp://identifiant:password@clusterftp.hosteur.com;
set net:limit-rate 25000
lcd /home/govez/public_html/pacman/public;
cd /httpdocs/hugo;
mirror --continue --reverse --dereference --parallel=5 --delete --verbose"
Explications
- ftp est ouvert avec l’identifiant, son mot de passe et le nom du serveur ftp
- on définit le répertoire local (lcd) et le répertoire distant (cd)
- choix des options pour l’action mirror
- continue : continue la copie mirroir si possible
- reverse : inverse le miroir (mettre des fichiers)
- dereference : télécharge des liens symboliques sous forme de fichiers
- parallel=5 : télécharge 5 fichiers en parallèle
- delete : supprime les fichiers non présents sur le site distant
- verbose : active le mode verbeux
Action !
Il ne reste plus qu’a rendre ce script exécutable et à le lancer :
$ chmod +x synchro.sh
$ ./synchro.sh