Jak automatycznie zsynchronizować zawartość folderu lokalnego z zawartością folderu ftp?

9

Po przeszukaniu wszędzie nie udało mi się znaleźć konkretnej odpowiedzi na moje pytanie.

W systemie Windows istnieje aplikacja o nazwie FTPbox , która automatycznie synchronizuje folder lokalny z ftp jeden co ustalony okres czasu.

Moje pytanie brzmi: jak mogę osiągnąć to samo za pomocą Ubuntu? Najważniejsze jest to, że nie chcę tego robić ręcznie. Musi to być proces całkowicie automatyczny, bez interwencji człowieka (oczywiście będę musiał to ustawić, jeśli te klasy będą interwencją ludzką LOL).

Wielkie dzięki w oczekiwaniu na pomocne odpowiedzi.

-Edward

Edward Nunn
źródło

Odpowiedzi:

16

Pierwsze rozwiązanie

zainstalować lftp

sudo apt-get install lftp

po tym utwórz skrypt

#!/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
"

Zapisz to w jakimś miejscu z nazwą upload.sh. Pozwól na to +x.

sudo chmod +x /path_to_script/upload.sh

Instalator crontaburuchamia to polecenie za każdym xrazem

Do edycji crontab run

crontab -e

Do uruchomienia polecenia co 5 minut jest kod

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

na każdą godzinę

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

biegać o 4 rano

 0 4 * * * /path_to_script/upload.sh

Rozwiązanie drugie

Utwórz mały i łatwy skrypt o nazwie, lftp-scriptktóry LFTPmoże czytać:

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

Wreszcie możesz uruchomić LFTPi rozpocząć synchronizację. Ustaw crontab jak piszę, ale wstaw polecenie

lftp -f /path/to/lftp-script

coś takiego

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

Rozwiązanie trzecie

zainstalować curlftpfs

sudo apt-get install curlftpfs

musisz zrobić, aby zainstalować ftp lokalnie, aby uruchomić te polecenia, stwórz katalog, który zostanie zsynchronizowany

mkdir hostr

podłącz zdalny katalog ftp do lokalnego

sudo curlftpfs -o allow_other ftp://user:[email protected] host

user: pass to nazwa użytkownika i hasło do zalogowania się na konto ftp.

Możesz dodać curlftpfsdo fstabautomatycznego montażu za pomocą tej linii:

curlftpfs#user:[email protected] /mnt/host fuse rw,uid=500,user,noauto 0 0
2707974
źródło
1
TARGETFOLDER = '/ new' = folder na ftp? SOURCEFOLDER = '/ home / myuser / backups' = folder lokalny z plikami, które chcę załadować?
Edward Nunn,
tak i tak. :)
2707974 18.04.16
mówiąc ten plik przesyłający Untitled 1.odt' mirror: /home/edward/bl3/bl2/bl1/Untitled 1.odt: No such file or directory Unknown command ; ”
Edward Nunn,
Na podstawie ścieżki serwera ftp meybe nie tylko /newfolder. Sprawdź obie ścieżki.
2707974,
Jeśli utworzysz folder source folderna komputerze lokalnym, folder ten musi być zsynchronizowany z folderem ftp.
2707974,