Làm cách nào để tự động đồng bộ nội dung của thư mục cục bộ với nội dung của thư mục ftp?


9

Sau khi tìm kiếm khắp nơi, tôi không thể tìm được câu trả lời cụ thể cho câu hỏi của mình.

Trên Windows, có một ứng dụng có tên FTPbox sẽ tự động đồng bộ thư mục cục bộ với một ftp mỗi lần đặt.

Câu hỏi của tôi là, làm thế nào để tôi đạt được điều tương tự khi sử dụng Ubuntu? Điều chính ở đây là tôi không muốn phải làm bằng tay. Nó cần phải là một quá trình hoàn toàn tự động, không cần sự can thiệp của con người (rõ ràng tôi sẽ phải thiết lập điều này nếu lớp đó là sự can thiệp của con người LOL).

Rất cám ơn trong dự đoán cho câu trả lời hữu ích.

-Chuyển

Câu trả lời:


16

Giải pháp đầu tiên

Tải về lftp

sudo apt-get install lftp

sau đó tạo kịch bản

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

Lưu nó trên một số nơi có tên upload.sh. Cho +xphép nó .

sudo chmod +x /path_to_script/upload.sh

Thiết lập crontabđể chạy lệnh này trong mọi xkhoảng thời gian

Để chỉnh sửa chạy crontab

crontab -e

Để chạy lệnh trên mỗi mã 5 phút là

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

vào mỗi giờ

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

chạy vào 4 giờ sáng

 0 4 * * * /path_to_script/upload.sh

Giải pháp hai

Tạo một kịch bản nhỏ và dễ gọi lftp-scriptLFTPcó thể đọc:

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

Cuối cùng, bạn có thể chạy LFTPvà bắt đầu đồng bộ hóa. Đặt crontab như tôi viết nhưng đặt lệnh

lftp -f /path/to/lftp-script

một cái gì đó như thế này

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

Giải pháp ba

Tải về curlftpfs

sudo apt-get install curlftpfs

bạn cần làm để gắn kết ftp cục bộ là chạy các lệnh này, tạo dir witch sẽ được sync-ed

mkdir hostr

gắn thư mục ftp từ xa đến địa phương

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

user: pass là tên người dùng và mật khẩu để đăng nhập vào tài khoản ftp.

Bạn có thể thêm curlftpfsvào fstabđể tự động gắn bằng cách sử dụng dòng này:

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

1
TARGETFOLDER = '/ new' = thư mục trên ftp? SOURCEFOLDER = '/ home / myuser / backups' = thư mục cục bộ với các tệp tôi muốn tải lên?
Edward Nunn

vâng và vâng :)
2707974

nói tập tin chuyển này Untitled 1.odt' mirror: /home/edward/bl3/bl2/bl1/Untitled 1.odt: No such file or directory Unknown command ; '
Edward Nunn

Dựa trên đường dẫn máy chủ ftp meybe không chỉ /newthư mục. Kiểm tra cả hai đường dẫn.
2707974

Nếu bạn tạo thư mục source foldertrên cục bộ, thư mục đó phải được đồng bộ hóa với thư mục ftp.
2707974
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.