Come sincronizzare automaticamente il contenuto di una cartella locale con il contenuto di una cartella ftp?


9

Dopo aver cercato ovunque non sono riuscito a trovare una risposta specifica per la mia domanda.

Su Windows esiste un'applicazione chiamata FTPbox che sincronizza automaticamente una cartella locale con una ftp ogni periodo di tempo impostato.

La mia domanda è: come posso ottenere la stessa cosa usando Ubuntu? La cosa principale è che non voglio farlo manualmente. Deve essere un processo totalmente automatico senza l'intervento umano necessario (ovviamente dovrò impostarlo se quelle classi come intervento umano LOL).

Mille grazie in anticipo per risposte utili.

-Edward

Risposte:


16

Prima soluzione

Installare lftp

sudo apt-get install lftp

dopo quello crei lo 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
"

Salvalo in un posto con il nome upload.sh. Dagli il +xpermesso.

sudo chmod +x /path_to_script/upload.sh

Installazione crontabper eseguire questo comando in ogni xperiodo di tempo

Per la modifica della corsa crontab

crontab -e

Per l'esecuzione del comando su ogni 5 min codice è

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

ogni ora

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

per correre alle 4 del mattino

 0 4 * * * /path_to_script/upload.sh

Soluzione 2

Creare un piccolo e facile script chiamato lftp-scriptche LFTPpuò leggere:

open ftp://username:password@website.com
mirror -v --only-newer /home/local/path/ /website.com/public_html/

Finalmente puoi eseguire LFTPe avviare la sincronizzazione. Imposta crontab come scrivo ma metti il ​​comando

lftp -f /path/to/lftp-script

qualcosa come questo

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

Soluzione 3

Installare curlftpfs

sudo apt-get install curlftpfs

è necessario fare per montare ftp localmente è quello di eseguire questi comandi creare dir streg verrà sincronizzato

mkdir hostr

monta dir ftp remoto su locale

sudo curlftpfs -o allow_other ftp://user:pass@ftp.example.com host

utente: pass è il nome utente e la password per accedere all'account ftp.

Puoi aggiungere curlftpfsa fstabper il montaggio automatico usando questa linea:

curlftpfs#user:pass@ftp.example.com /mnt/host fuse rw,uid=500,user,noauto 0 0

1
TARGETFOLDER = '/ new' = cartella su ftp? SOURCEFOLDER = '/ home / myuser / backups' = cartella locale con i file che voglio caricare?
Edward Nunn,

si e si. :)
2707974,

dicendo questo Trasferimento file Untitled 1.odt' mirror: /home/edward/bl3/bl2/bl1/Untitled 1.odt: No such file or directory Unknown command ; '
Edward Nunn,

Basato sul percorso del server ftp meybe non solo sulla /newcartella. Controlla entrambi i percorsi.
2707974,

Se si crea una cartella in source folderlocale, tale cartella deve essere sincronizzata con la cartella ftp.
2707974,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.