2010-06-09 39 views
26

Tôi cần tải xuống mọi thứ từ máy chủ FTP để lưu trữ trên máy chủ khác. Tôi chỉ có quyền truy cập shell vào máy chủ mà tôi đang tải tệp xuống. Làm thế nào, bằng cách sử dụng lệnh Linux FTP, tôi có thể tải xuống mọi tệp, tạo các thư mục cần thiết cho chúng trong quá trình không?Tải xuống tất cả các tệp từ Máy chủ FTP

Trả lời

53

Sử dụng wget theo cách này (m for mirroring):

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

Nếu tên đăng nhập hoặc mật khẩu của bạn chứa các ký tự đặc biệt, bạn có thể cần phải sử dụng định dạng:

wget -m --user=username --password=password ftp://ip.of.old.host 

Ngoài ra, tôi thấy this guide chỉ cho bạn cách thực hiện bằng ncftp trong Debian. Bạn sẽ yêu cầu quyền truy cập root vào máy chủ mới nếu ncftp chưa được cài đặt.

Nói tóm lại:

sudo apt-get install ncftp 
ncftpget –T –R –v –u "ftpuser" ftp.nixcraft.net /home/vivek/backup /www-data 
+0

Cảm ơn. Tôi thực sự đã tìm thấy nó ngay trước khi nhìn thấy điều này. Đã không sử dụng đúng cụm từ tìm kiếm của google trong năm lần đầu tiên. – Navarr

+3

Nếu bạn nhận được thông báo lỗi "cổng xấu", bạn có thể có địa chỉ email làm tên người dùng (internet trở nên lạ) và @ là nhầm lẫn với wget. Hãy thử: wget -m --user [email protected] --password myPassword ftp://example.com –

+0

Khi mật khẩu có '@' ở cuối, điều này không hoạt động. Có cách nào khác không? –

1

Một số FTP server cho phép tải toàn bộ thư mục bằng cách suffixing tên của họ với .tar hay .tgz. Máy chủ sau đó tạo một bản lưu trữ của thư mục đó.

1

Một cách khác là sử dụng ftp. Dưới đây là một kịch bản shell mẫu sử dụng ftp:

#! /bin/bash 

ftp -n << 'EOF' 
open ftp.your_ftp_host.com 
quote USER your_username_here 
quote PASS your_password_here 
cd gets 
prompt no 
mget * . 
bye 
EOF 
Các vấn đề liên quan