Yerel bir klasörün içeriğini bir ftp klasörünün içeriğiyle otomatik olarak nasıl senkronize edebilirim?


9

Her yerde aradıktan sonra sorum için özel bir cevap bulamadım.

Windows'ta, FTPbox adında bir uygulama , yerel bir klasörü her ayarlanan dönemde bir ftp ile otomatik olarak senkronize edecek bir uygulama var .

Sorum şu: Ubuntu kullanarak aynı şeyi nasıl başarabilirim? Asıl mesele, bunu manuel olarak yapmak istemiyorum. İnsan müdahalesi gerekmeksizin tamamen otomatik bir süreç olmalıdır (açıkçası bu, insan müdahalesi LOL olarak sınıflarsa bunu ayarlamam gerekecek).

Yararlı cevaplar için çok teşekkürler.

-Edward

Yanıtlar:


16

İlk çözüm

Yüklemek lftp

sudo apt-get install lftp

bundan sonra senaryo oluştur

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

Adı olan bir yere kaydedin upload.sh. +xİzin verin .

sudo chmod +x /path_to_script/upload.sh

crontabBu komutu her xzaman çalıştırmak için kurulum

Crontab çalıştırmasını düzenlemek için

crontab -e

Her 5 dakikada bir kod çalıştırma komutu

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

her saatte

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

sabah 4'te koşmak

 0 4 * * * /path_to_script/upload.sh

İkinci çözüm

Denilen küçük ve kolay komut dosyası oluşturun lftp-scriptolduğunu LFTPokuyabilir:

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

Son olarak LFTPsenkronizasyonu çalıştırabilir ve başlatabilirsiniz. Crontab'ı yazdığım gibi koy ama komutu koy

lftp -f /path/to/lftp-script

böyle bir şey

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

Üçüncü çözüm

Yüklemek curlftpfs

sudo apt-get install curlftpfs

ftp'yi yerel olarak monte etmek için yapmanız gereken bu komutları çalıştırmaktır dir cadı oluşturmak senkronize edilecektir

mkdir hostr

uzak ftp yönünü yerel olarak bağlama

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

user: pass , ftp hesabında oturum açmak için kullanılan kullanıcı adı ve paroladır.

Ekleyebilir curlftpfsiçin fstabbu hattı kullanarak otomatik montajı için:

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

1
TARGETFOLDER = '/ new' = ftp'deki klasör? SOURCEFOLDER = '/ home / myuser / backups' = yüklemek istediğim dosyaların bulunduğu yerel klasör?
Edward Nunn

Evet ve evet. :)
2707974

bu Aktarım dosyasını söyleyerek Untitled 1.odt' mirror: /home/edward/bl3/bl2/bl1/Untitled 1.odt: No such file or directory Unknown command ; '
Edward Nunn

Ftp sunucu yolu meybe sadece /newklasör değil dayalı . Her iki yolu da kontrol edin.
2707974

Yerelde klasör oluşturursanız source folder, bu klasörün ftp klasörü ile senkronize edilmesi gerekir.
2707974
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.