web-dev-qa-db-fra.com

Comment synchroniser automatiquement le contenu d'un dossier local avec le contenu d'un dossier ftp?

Après avoir cherché partout, je n'ai pas réussi à trouver une réponse spécifique à ma question.

Sous Windows, il existe une application appelée FTPbox qui synchronise automatiquement un dossier local avec un ftp à chaque période de temps définie.

Ma question est la suivante: comment puis-je obtenir la même chose avec Ubuntu? La chose principale est ici que je ne veux pas avoir à le faire manuellement. Ce doit être un processus totalement automatique sans intervention humaine (évidemment, je devrai le configurer si cela est considéré comme une intervention humaine LOL).

Merci beaucoup par avance pour des réponses utiles.

-Edward

9
Edward Nunn

Première solution

Installez lftp

Sudo apt-get install lftp

après que créer un script

#!/bin/bash
Host='mysite.com'
USER='myuser'
PASS='myuser'
TARGETFOLDER='/new'
SOURCEFOLDER='/home/myuser/backups'

lftp -f "
open $Host
user $USER $PASS
lcd $SOURCEFOLDER
mirror --reverse --delete --verbose $SOURCEFOLDER $TARGETFOLDER
bye
"

Enregistrez-le sur un emplacement nommé upload.sh. Donnez-lui la permission +x.

Sudo chmod +x /path_to_script/upload.sh

Configurez crontab pour exécuter cette commande à chaque x période.

Pour éditer crontab run

crontab -e

Pour exécuter la commande sur chaque code de 5 min est

 */5 * * * * /path_to_script/upload.sh

à chaque heure

 0 */1 * * * /path_to_script/upload.sh

courir à 4 heures du matin

 0 4 * * * /path_to_script/upload.sh

Solution deux

Créez un petit script simple appelé lftp-script que LFTP peut lire:

open ftp://username:[email protected]
mirror -v --only-newer /home/local/path/ /website.com/public_html/

Enfin, vous pouvez exécuter LFTP et démarrer la synchronisation. Définir crontab comme j'écris mais mets la commande

lftp -f /path/to/lftp-script

quelque chose comme ça

 */5 * * * * lftp -f /path/to/lftp-script

Solution trois

Installez curlftpfs

Sudo apt-get install curlftpfs

vous devez faire pour monter ftp localement, c’est d’exécuter ces commandes, créer un répertoire qui sera synchronisé

mkdir hostr

monter le répertoire ftp distant sur local

Sudo curlftpfs -o allow_other ftp://user:[email protected] Host

user: pass est le nom d'utilisateur et le mot de passe pour se connecter au compte ftp.

Vous pouvez ajouter curlftpfs à fstab pour un montage automatique en utilisant cette ligne:

curlftpfs#user:[email protected] /mnt/Host Fuse rw,uid=500,user,noauto 0 0
16
2707974