it-swarm-vi.tech

Sử dụng wget để tải xuống đệ quy toàn bộ thư mục FTP

Tôi muốn sao chép tất cả các tệp và thư mục từ Máy chủ này sang Máy chủ khác. Các tệp trên Máy chủ cũ nằm ở/var/www/html và tôi chỉ có quyền truy cập FTP vào máy chủ đó và tôi không thể TAR tất cả các tệp. Kết nối thường xuyên với Máy chủ cũ thông qua FTP đưa tôi đến thư mục/home/admin.

Tôi đã thử chạy lệnh sau đây từ máy chủ mới của tôi:

wget -r ftp://username:[email protected]

Nhưng tất cả những gì tôi nhận được là một tệp index.html được tạo thành.

Cú pháp đúng để sử dụng wget đệ quy qua FTP là gì?

97
user9406

Thử -m cho --mirror

wget -m ftp://username:[email protected]
129
Dave Cheney

Bạn có quyền, bạn chỉ cần một dấu * ở cuối:

wget -r ftp://username:[email protected]/dir/*

Đối với các máy chủ được chia sẻ, bạn có thể sử dụng như thế này:

wget -r ftp://1.2.3.4/dir/* --ftp-user=username --ftp-password=password

Bởi vì hầu hết các máy chủ được chia sẻ có tên người dùng ftp giống như tên người dùng @ tên máy chủ, vì vậy, lệnh wget đầu tiên không hoạt động và lệnh thứ hai hoạt động tốt.

39
Formoda

Ngoài wget, bạn cũng có thể sử dụng lftp trong chế độ tập lệnh. Lệnh sau sẽ phản chiếu nội dung của một thư mục FTP từ xa đã cho vào thư mục cục bộ đã cho và nó có thể được đưa vào công việc định kỳ:

lftp -c 'open <hostname>; user <username> <password>; mirror -e <remote-src-path> <local-dest-path>; quit'

Nó tự động xử lý đệ quy vào các thư mục và cho phép chỉ định thư mục bắt đầu từ xa để tải dữ liệu từ đó.

7
zappan

Kiểm tra lệnh wget dưới đây để tải xuống dữ liệu từ FTP theo cách đệ quy.

wget --user="<user-name>" --password="<password>" -r -np -nH --cut-dirs=1 --reject "index.html*" "<URL to download files>"

-r: Dành cho tải về đệ quy.

-np: Không dành cho cha mẹ tăng dần.

-nH: Là để vô hiệu hóa việc tạo thư mục có tên giống như URL, tức là abc.xyz.com

--cut-dirs: Dành cho việc bỏ qua số lượng thư mục cha. Giá trị của tùy chọn này sẽ khác nhau cho lệnh của bạn.

Bạn có thể kiểm tra bằng cách thực hiện lệnh trên.

5
AVJ

Bạn có thể sử dụng 'curlftpfs - gắn máy chủ ftp làm thư mục cục bộ' và sau khi được gắn kết, bạn có thể sử dụng các công cụ tệp thông thường như 'cp -r'.

5
chmeee

Sử dụng -m chứ không phải -r, vì độ sâu đệ quy.

http://www.editcorp.com/Personal/Lars_Appel/wget/wget_2.html#SEC11

3
Bojan Hrnkas

Nên làm việc thử:

wget -r ftp://ftp:[email protected]/tst/
2
rkthkr

Sử dụng:

wget -m ftp://192.168.0.1

và nó sẽ phản chiếu tất cả các tập tin và thư mục.

2
Rajat

Như tôi đã nói, đăng nhập qua FTP sẽ đưa tôi đến thư mục/home/admin và các tệp tôi cần có trong/var/www/html

Tôi nghĩ rằng điều này sẽ làm việc trong trường hợp của bạn:

wget -r ftp://192.168.0.1/../../var/www/html
1
kubanczyk

Đó là cú pháp đúng. Không chắc chắn tại sao bạn không nhận được kết quả mong đợi.

Như đã từng có nhiều hơn một cách để làm điều đó. Hãy thử ncftp, đặc biệt là ncftpget

1
goo

Tôi có thể hiểu nếu bạn đang cố gắng chuyển thứ này vào cron hoặc thứ gì đó, nhưng tại sao không đơn giản là ftp vào máy chủ với máy khách bình thường của bạn và mget *? Đây có thể là một con đường nhanh hơn để thành công.

1
dr.pooter

Tôi đã bắt gặp Windows hosting với tên người dùng là brinkster/tên người dùng, vì vậy wget sẽ đưa ra lỗi nếu bạn sử dụng cú pháp:

wget -m ftp://brinkster/username:[email protected]

Để vượt qua điều này, sử dụng

wget -m ftp://brinkster%2Fusername:[email protected]

Tôi đã phải đối mặt với điều này với Windows hosting @ brinkster.

0
Anto Joseph