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