Bagaimana cara menyinkronkan konten folder lokal secara otomatis dengan konten folder ftp?

9

Setelah mencari kemana-mana saya belum berhasil menemukan jawaban spesifik untuk pertanyaan saya.

Di Windows ada aplikasi bernama FTPbox yang secara otomatis akan menyinkronkan folder lokal dengan ftp satu setiap periode waktu yang ditentukan.

Pertanyaan saya adalah, bagaimana cara mencapai hal yang sama menggunakan Ubuntu? Hal utama di sini adalah saya tidak mau harus melakukannya secara manual. Itu perlu proses yang sepenuhnya otomatis tanpa intervensi manusia yang diperlukan (jelas saya harus mengatur ini jika itu kelas sebagai intervensi manusia LOL).

Terima kasih banyak untuk mengantisipasi jawaban yang bermanfaat.

-Edward

Edward Nunn
sumber

Jawaban:

16

Solusi pertama

Install lftp

sudo apt-get install lftp

setelah itu buat 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
"

Simpan di beberapa tempat dengan nama upload.sh. Berikan +xizin.

sudo chmod +x /path_to_script/upload.sh

Pengaturan crontabuntuk menjalankan perintah ini pada setiap xperiode waktu

Untuk mengedit jalankan crontab

crontab -e

Untuk menjalankan perintah pada setiap kode 5 menit adalah

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

setiap jam

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

untuk berjalan pada jam 4 pagi

 0 4 * * * /path_to_script/upload.sh

Solusi dua

Buat skrip kecil dan mudah disebut lftp-scriptyang LFTPdapat membaca:

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

Akhirnya Anda dapat menjalankan LFTPdan memulai sinkronisasi. Atur crontab seperti yang saya tulis tetapi berikan perintah

lftp -f /path/to/lftp-script

sesuatu seperti ini

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

Solusi tiga

Install curlftpfs

sudo apt-get install curlftpfs

Yang perlu Anda lakukan agar me-mount ftp secara lokal adalah dengan menjalankan perintah-perintah ini buat dir witch akan disinkronkan

mkdir hostr

mount remote ftp dir ke lokal

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

user: pass adalah nama pengguna dan kata sandi untuk masuk ke akun ftp.

Anda dapat menambahkan curlftpfske fstabuntuk pemasangan otomatis dengan menggunakan baris ini:

curlftpfs#user:[email protected] /mnt/host fuse rw,uid=500,user,noauto 0 0
2707974
sumber
1
TARGETFOLDER = '/ new' = folder di ftp? SOURCEFOLDER = '/ home / myuser / backup' = folder lokal dengan file yang ingin saya unggah?
Edward Nunn
ya dan ya. :)
2707974
mengatakan file Mentransfer ini Untitled 1.odt' mirror: /home/edward/bl3/bl2/bl1/Untitled 1.odt: No such file or directory Unknown command ; '
Edward Nunn
Berdasarkan jalur server ftp saya tidak hanya /newfolder. Periksa kedua jalur.
2707974
Jika Anda membuat folder di source folderlokal, folder itu harus disinkronkan dengan folder ftp.
2707974