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

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:password@website.com
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:pass@ftp.example.com 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:pass@ftp.example.com /mnt/host fuse rw,uid=500,user,noauto 0 0

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,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.