1. Giới thiệu
2. Cú pháp và tham số của lệnh FTP DriveHQ Command
3. Tạo tệp kịch bản FTP
3.1 Ví dụ về tệp kịch bản FTP
3.2 Tệp kịch bản FTP có tham số
4. Tự động hóa việc truyền tệp bằng Trình lập lịch tác vụ Windows
5. Tự động đồng bộ hóa thư mục bằng DriveHQ CommandFTP
6. Tài liệu tham khảo lệnh FTP
6.1 Các lệnh FTP tiêu chuẩn
6.2 Các lệnh FTP nâng cao của DriveHQ
1. Giới thiệu
DriveHQ CommandFTP là một trình khách FTP & SFTP mạnh mẽ dựa trên dòng lệnh, được thiết kế để thay thế trình khách FTP của Windows. Nó hỗ trợ lập trình kịch bản FTP và tương thích với bất kỳ máy chủ FTP/SFTP tiêu chuẩn nào.
FTP/SFTP cực kỳ phổ biến trong việc truyền tải các tập tin/thư mục lớn qua Internet. Trình khách FTP dòng lệnh được sử dụng rộng rãi trong việc truyền tải tập tin tự động bằng kịch bản FTP. Nhiều người sử dụng trình khách FTP dòng lệnh tích hợp sẵn trên Windows. Tuy nhiên, trình khách FTP tích hợp sẵn có một vài nhược điểm chính:
- 1. Nó chỉ hỗ trợ FTP ở chế độ chủ động, thường bị chặn bởi bộ định tuyến, tường lửa hoặc phần mềm bảo mật.
- 2. Nó chỉ hỗ trợ FTP thông thường mà không mã hóa dữ liệu.
- 3. Nó không hỗ trợ tính năng tự động tiếp tục/thử lại.
DriveHQ CommandFTP được thiết kế để thay thế trình khách FTP mặc định của Windows. Nó có những ưu điểm sau:
- 1. Nó hỗ trợ cả chế độ FTP chủ động và thụ động.
- 2. Nó hỗ trợ FTP qua SSL (FTPS & FTPES) và SFTP.
- 3. Nó hỗ trợ tính năng tự động tiếp tục/thử lại.
- 4. Nó hỗ trợ nén và mã hóa dữ liệu.
- 5. Nó hỗ trợ tải xuống/tải lên thư mục.
- 6. Nó hỗ trợ sao chép/đồng bộ hóa thư mục.
- 7. Nó hỗ trợ ghi nhật ký sự kiện để kiểm toán và khắc phục sự cố.
- 8. Nó có thể gửi báo cáo qua email sau khi hoàn tất thao tác.
- 9. Nó hỗ trợ các tập lệnh FTP mạnh mẽ hơn.
Trong nhiều trường hợp, DriveHQ CommandFTP có thể thay thế trực tiếp trình khách FTP của Windows. Chúng có cú pháp và các tham số dòng lệnh tương tự nhau. Tuy nhiên, DriveHQ CommandFTP cung cấp nhiều tính năng hơn. Nó có thể xử lý các tác vụ truyền tệp phức tạp chỉ với một lệnh duy nhất. Với khả năng hỗ trợ SFTP, bạn có thể viết một tệp kịch bản FTP, nhưng chạy nó bằng máy chủ SFTP.
2. Cú pháp và tham số của lệnh FTP DriveHQ Command
Cú pháp
cmdftp FTP_SERVER [-u:USERNAME] [-p:PASSWORD] [-i] [-A] [-k:"PRIVATE_KEY_FILE"] [-s:"FTP_SCRIPT_FILE"] [-d:"LOG_FILE"] [-m:"SOURCE_FTP_SERVER", "DESTINATION_FTP_SERVER"] [CMDOPTIONS]
cmdftp [-s:"FTP_SCRIPT_FILE"] [-d:"logfile"]
Thông số
| Tham số |
Sự miêu tả |
| FTP_SERVER |
Tên máy chủ FTP/SFTP hoặc địa chỉ IP, ví dụ như ftp.drivehq.com, hoặc ftp://ftp.drivehq.com hoặc ftps://ftp.drivehq.com. Thông tin này là bắt buộc trừ khi tham số bao gồm -s:FTP_SCRIPT_FILE
|
|
| -u:USERNAME |
Chỉ định tên người dùng tài khoản FTP/SFTP. |
|
| -p:PASSWORD |
Chỉ định mật khẩu tài khoản FTP/SFTP. |
|
| -k:"PRIVATE_KEY_FILE" |
Tùy chọn. Chỉ định đường dẫn đến tệp khóa riêng SFTP. |
|
| -s:"FTP_SCRIPT_FILE" |
Tùy chọn. Chỉ định đường dẫn đến tệp kịch bản FTP. Nếu tham số này được cung cấp, các tham số khác sẽ bị bỏ qua, ngoại trừ tùy chọn "-d:LOG_FILE". |
Tùy chọn lệnh
| /xo[:time] |
Loại bỏ các tệp cũ |
|
| /xn[:time] |
Loại trừ các tệp mới hơn |
|
| /xf:filenames |
Loại trừ các tệp, các tệp được phân tách bằng dấu phẩy |
|
| /xd:foldernames |
Loại trừ các thư mục, các thư mục được phân tách bằng dấu phẩy |
Tùy chọn ghi nhật ký
| -d:"LogFileName" |
Chỉ định đường dẫn đến tệp nhật ký. Nếu sử dụng "-d" mà không có LogFileName, thì nhật ký sẽ được hiển thị trong cửa sổ console. |
3. Tạo tệp kịch bản FTP
Các tập lệnh FTP rất phổ biến trong giới quản trị viên CNTT và các nhà tích hợp hệ thống. Chúng được sử dụng rộng rãi trong việc sao lưu dữ liệu tự động và truyền tải tập tin. Tập lệnh FTP cho phép bạn tạo một tệp văn bản chứa danh sách các lệnh và thông tin đầu vào FTP. Sau đó, bạn có thể chạy các lệnh này tuần tự trong một lần thực thi. Vì một tệp tập lệnh có thể chứa nhiều lệnh FTP, nó có thể thực hiện một tác vụ truyền tải tập tin rất phức tạp.
Việc lập trình FTP bằng trình khách FTP mặc định của Windows rất hạn chế: Nó chỉ hỗ trợ FTP thông thường, không an toàn; nó chỉ hỗ trợ FTP mô hình chủ động (Active Model FTP), thường bị chặn bởi bộ định tuyến/tường lửa. DriveHQ CommandFTP hỗ trợ hầu hết các tính năng của trình khách FTP Windows; ngoài ra, nó còn hỗ trợ nhiều tính năng không có trong trình khách FTP Windows. DriveHQ CommandFTP tương thích với tất cả các máy chủ FTP tiêu chuẩn.
Để viết tập lệnh FTP, trước tiên bạn có thể chạy các lệnh FTP ở chế độ tương tác. Mở cửa sổ dòng lệnh, nhập các lệnh sau như được hiển thị trong ảnh chụp màn hình bên dưới:
Các lệnh này thường bao gồm: Kết nối với máy chủ FTP, đăng nhập vào máy chủ, liệt kê các tệp/thư mục trong một thư mục, thay đổi thư mục hiện tại, tải lên/tải xuống/xóa tệp, v.v. Nếu bạn chỉ thỉnh thoảng sử dụng FTP, thì phương pháp trên hoạt động rất tốt. Tuy nhiên, nếu bạn cần chuyển/sao lưu/xóa tệp nhiều lần, ví dụ như một phần của tác vụ sao lưu theo lịch trình, hoặc EDI (Trao đổi dữ liệu điện tử) với một công ty khác, bạn có thể dễ dàng viết một tệp kịch bản có thể được sử dụng lại nhiều lần. Kết hợp với Trình lập lịch tác vụ được hệ điều hành hỗ trợ, bạn có thể tự động hóa quy trình kinh doanh.
Ví dụ về tệp kịch bản FTP
Tệp kịch bản FTP có các lệnh/đầu vào giống như được sử dụng trong phiên FTP tương tác. Về cơ bản, bạn chỉ cần tạo một tệp văn bản trong trình soạn thảo văn bản (ví dụ: NotePad) và nhập các lệnh và đầu vào như bạn vẫn làm trong chế độ tương tác. CommandFTP của DriveHQ có giao diện rất giống với trình khách FTP của Windows. Các lệnh sau có thể được chạy trong cả trình khách FTP của Windows và CommandFTP của DriveHQ. Để sử dụng CommandFTP, vui lòng nhập cmdftp thay vì ftp. Ví dụ::
C:\>ftp
ftp> open ftp.drivehq.com
Connected to ftp.drivehq.com.
220 Welcome to the most popular FTP hosting service! Save on hardware, software,
hosting and admin. Share files/folders with read-write permission. Visit http:/
/www.drivehq.com/ftp/;
User (ftp.drivehq.com:(none)): dhqdemo
331 User name ok, need password.
Password: xxxxxxxxx
230 User dhqdemo logged on.
ftp> cd test
250 CWD command successful. "/test" is current directory.
ftp> delete orders.xml.bak
550 File not found.
ftp> rename orders.xml orders.xml.bak
350 File exists, ready for destination name.
250 File "/test/orders.xml" renamed successfully.
ftp> put c:\test\orders.xml
200 Port command successful.
150 Opening BINARY mode data connection for file transfer.
226 Transfer complete
ftp: 41 bytes sent in 0.06Seconds 0.65Kbytes/sec.
ftp> quit
221 Bye
C:\>
Như bạn thấy, các lệnh này sẽ:
- Đăng nhập vào máy chủ FTP: ftp.drivehq.com;
- Nhập tên người dùng và mật khẩu;
- Chuyển đến thư mục cục bộ "c:\test";
- Chuyển sang thư mục FTP "/test";
- Xóa tệp "Orders.xml.bak" (nếu tồn tại) trên máy chủ FTP;
- Đổi tên tệp "Orders.xml" (nếu tồn tại) thành "Orders.xml.bak" trên máy chủ FTP;
- Tải tệp cục bộ "Orders.xml" lên máy chủ FTP;
- Thoát
Bạn có thể chạy chúng trong cửa sổ dòng lệnh để gỡ lỗi mã trước khi lưu chúng vào tệp kịch bản. Nội dung của kịch bản sẽ như sau:
open ftp.drivehq.com
USERNAME
xxxxxxxxx
cd test
delete orders.xml.bak
rename orders.xml orders.xml.bak
put c:\test\orders.xml
quit
Đoạn mã FTP ở trên có thể được thực thi hàng ngày để tự động chuyển thông tin đơn hàng mới lên máy chủ FTP. Nó sẽ tải lên tệp "Orders.xml" mới nhất lên máy chủ FTP; trước khi tải lên, nó sẽ đổi tên (sao lưu) tệp trước đó.
Để chạy tập lệnh FTP, bạn chỉ cần thực hiện lệnh FTP với tùy chọn -s. Với trình khách FTP của Windows, bạn có thể sử dụng:
ftp -s:ftpscript.txt
Với phần mềm DriveHQ CommandFTP client, bạn có thể sử dụng
cmdftp -s:ftpscript.txt
Tập lệnh FTP có tham số
Đoạn mã FTP ở trên là tĩnh. Nó có thể được chạy nhiều lần, nhưng không linh hoạt lắm. Ví dụ, nếu bạn cần chuyển dữ liệu cho nhiều máy khách, bạn có thể muốn sử dụng các thư mục khác nhau. Để sử dụng lại cùng một đoạn mã FTP, nó cần hỗ trợ thêm các tham số. Có hai giải pháp:
(1) Sử dụng tập lệnh hàng loạt để tạo động tập lệnh FTP. Tập lệnh hàng loạt của Windows có thể nhận các tham số dòng lệnh. Nếu bạn sử dụng máy khách FTP của Windows, đây là giải pháp duy nhất.
(2) DriveHQ CommandFTP hỗ trợ các tham số bổ sung.
Với phương pháp đầu tiên, bạn cần tạo một tập tin batch, ví dụ như test.bat. Lưu tập tin này vào thư mục C:\test. Bạn có thể chạy tập tin batch bằng cách gõ lệnh sau:
c:\test\test.bat PARAM1 PARAM2 ...
Tệp test.bat sẽ có nội dung như sau:
@echo off
echo open ftp.drivehq.com> ftpscript.txt
echo USERNAME>> ftpscript.txt
echo PASSWORD>> ftpscript.txt
echo cd %1>> ftpscript.txt
echo delete %2.bak>> ftpscript.txt
echo rename %2 %2.bak>> ftpscript.txt
echo put c:\%1\%2>> ftpscript.txt
echo quit>> ftpscript.txt
Bằng cách này, bạn có thể truyền các tham số từ tệp lệnh hàng loạt sang tệp kịch bản FTP. Cùng một tệp kịch bản hàng loạt có thể được sử dụng lại cho các công ty khác nhau, ví dụ::
c:\test\test.bat c:\OrdersOfCompanyA ordersOfCompanyA.xml
c:\test\test.bat c:\OrdersOfCompanyB ordersOfCompanyB.xml
Với DriveHQ CommandFTP, bạn có thể chạy một tập lệnh FTP với các tham số bổ sung. Bằng cách này, bạn không cần phải tạo tệp tập lệnh hàng loạt. Bạn chỉ cần chạy tập lệnh FTP bằng lệnh sau:
cmdftp -s:ftpscript.txt argument1 argument2 argument3 ...
Tệp kịch bản FTP cần được sửa đổi một chút như sau:
# %1 is like "test", %2 is like "orders.xml"
# This file is saved as c:\temp\ftpscript2.txt
# to run it, use:
# cmdftp -s:c:\temp\ftpscript2.txt -%1:test -%2:orders.xml
open ftp.drivehq.com
USERNAME
PASSWORD
cd /%1
delete /%1/%2.bak
rename /%1/%2 /%1/%2.bak
put c:\%1\%2
quit
Trong tập lệnh trên, tên thư mục được thay thế bằng %1 và tên tập tin được thay thế bằng %2. Để chạy tập lệnh FTP, bạn phải cung cấp các tham số này dưới dạng đối số dòng lệnh.
cmdftp -s:c:\temp\ftpscript2.txt -%1:test -%2:orders.xml
Khi DriveHQ CommandFTP thực thi tập lệnh, nó sẽ thay thế %1 bằng "test" và %2 bằng "orders.xml".
4. Tự động hóa việc truyền tệp bằng Trình lập lịch tác vụ Windows
Dù bạn sử dụng tệp lệnh hàng loạt hay trực tiếp dùng DriveHQ CommandFTP, bạn đều có thể lên lịch truyền tệp trong Trình lập lịch tác vụ Windows. Bạn có thể lên lịch cho tác vụ chạy hàng ngày, hàng tuần hoặc hàng tháng. Trong Cài đặt nâng cao, bạn thậm chí có thể thiết lập tác vụ chạy vài giờ hoặc vài phút một lần. Bạn có thể đặt thời gian trong ngày để bắt đầu tác vụ. Để khởi chạy Trình lập lịch tác vụ, hãy nhập "Trình lập lịch tác vụ" vào hộp tìm kiếm, xem ảnh chụp màn hình bên dưới:
Nhấp vào Trình lập lịch tác vụ, thao tác này sẽ mở Trình lập lịch tác vụ của Windows.
Để tạo tác vụ, hãy nhấp vào "Tạo tác vụ cơ bản".
Nhập tên và mô tả nhiệm vụ, sau đó nhấn Tiếp theo.
Chọn lịch trình thực hiện tác vụ. Bạn có thể chọn hàng ngày, hàng tuần và hàng tháng. Nếu muốn chạy tác vụ theo giờ, bạn có thể thiết lập trong Cài đặt nâng cao sau này. Nhấp vào Tiếp theo để thiết lập Hành động.
Trên trang Hành động, chọn "Khởi chạy chương trình", sau đó nhấn Tiếp theo.
Chọn DriveHQ CommandFTP (cmdftp.exe) làm chương trình. Thêm các tham số dòng lệnh vào hộp văn bản "Thêm đối số". Mục "Bắt đầu trong" là tùy chọn. Bạn có thể đặt nó vào cùng thư mục với tệp EXE. Nhấp vào Tiếp theo để hoàn tất việc tạo tác vụ.
Để truy cập Cài đặt Nâng cao, hãy nhấp vào "Thư viện Lịch trình Tác vụ", bạn sẽ thấy danh sách các tác vụ đã lên lịch. Nhấp đúp vào tác vụ "Tải lên Đơn hàng", bạn có thể chỉnh sửa cài đặt tác vụ.
Lưu ý rằng theo mặc định, tác vụ chỉ chạy khi người dùng đã đăng nhập. Bạn có thể thay đổi cài đặt tại đây để chạy tác vụ ngay cả khi người dùng chưa đăng nhập.
5. Tự động đồng bộ hóa thư mục bằng DriveHQ CommandFTP
DriveHQ CommandFTP hỗ trợ sao chép thư mục. Việc đồng bộ hóa thư mục cục bộ với thư mục FTP cực kỳ dễ dàng. Chỉ cần sử dụng lệnh sau:
cmdftp FTP_SERVER -u:username -p:password -m:"LOCAL_FOLDER|FTP_FOLDER"
Sử dụng Trình lập lịch tác vụ Windows, bạn có thể chạy lệnh này để đồng bộ hóa hai thư mục định kỳ.
6. Tài liệu tham khảo lệnh FTP
Sau khi đăng nhập vào máy chủ FTP, bạn có thể gửi các lệnh FTP đến máy chủ FTP. Trình khách FTP của Windows hỗ trợ các lệnh sau.
Xin lưu ý rằng các lệnh này không giống với Các lệnh FTP được định nghĩa trong giao thức FTP.
Mỗi lệnh giao thức FTP thường chỉ xử lý một vấn đề đơn giản. Một lệnh FTP trong trình khách FTP của Windows có thể sử dụng nhiều lệnh giao thức FTP khác nhau.
DriveHQ CommandFTP tương tự như trình khách FTP của Windows. Nó hỗ trợ các lệnh và cú pháp tương tự. Ngoài ra, nó cũng hỗ trợ một số lệnh FTP nâng cao dành riêng cho DriveHQ, ví dụ như các lệnh sao chép, di chuyển, tải lên, tải xuống hoặc xóa thư mục.
6.1 Các lệnh của trình khách FTP trên Windows
Trình khách FTP của Windows (ftp.exe) hỗ trợ các lệnh FTP sau:
| Lệnh FTP |
Sự miêu tả |
| ! |
Lệnh này chuyển đổi giữa hệ điều hành cục bộ và máy chủ FTP. Khi bạn đăng nhập vào máy chủ FTP, nó sẽ mặc định sử dụng máy chủ FTP. Nếu bạn muốn chạy một lệnh cục bộ, bạn thường có thể sử dụng lệnh sau !CMD_NAME, e.g. !dir, !mkdir, vân vân. |
| ? |
Hiển thị thông tin Trợ giúp. |
| append |
Thêm vào cuối tệp. |
| ascii |
Thiết lập chế độ truyền tải ASCII. |
| bell |
Bật chức năng "Phát tiếng bíp khi lệnh hoàn tất". |
| binary |
Thiết lập chế độ truyền dữ liệu nhị phân. |
| bye |
Ngắt kết nối phiên FTP và thoát. |
| cd |
Thay đổi thư mục. |
| close |
Kết thúc phiên FTP. |
| delete |
Xóa một tập tin. |
| debug |
Bật hoặc tắt chế độ gỡ lỗi. |
| dir |
Liệt kê các tệp và thư mục con trong một thư mục.
|
| disconnect |
Ngắt kết nối phiên FTP. |
| get |
Tải tập tin từ máy chủ FTP từ xa. |
| glob |
Bật hoặc tắt tính năng tìm kiếm ký tự đại diện (globbing). Khi tắt, các ký tự đại diện trong tên tệp (trong phần) sẽ được sử dụng đặt Và lấy (các mệnh lệnh) được hiểu theo nghĩa đen. |
| hash |
Bật/tắt hiển thị ký tự "#" cho mỗi bộ đệm được truyền tải. |
| help |
Hiển thị thông tin trợ giúp; thường sử dụng lệnh help COMMAND_NAME. |
| lcd |
Nếu chỉ nhập một mình lệnh này, hãy hiển thị thư mục làm việc cục bộ hiện tại; ngược lại, hãy thay đổi thư mục làm việc cục bộ. |
| literal |
Gửi lệnh tùy ý đến máy chủ FTP đã kết nối và mong đợi nhận được phản hồi một dòng duy nhất. |
| ls |
Liệt kê các tệp trong thư mục FTP. |
| mdelete |
Xóa nhiều tập tin trên máy chủ FTP. |
| mdir |
Liệt kê các tệp/thư mục con của nhiều thư mục FTP. |
| mget |
Tải nhiều tập tin từ máy chủ FTP về thư mục làm việc cục bộ của bạn. |
| mkdir |
Tạo thư mục mới. |
| mls |
Liệt kê nội dung của nhiều thư mục FTP. |
| mput |
Tải nhiều tập tin cục bộ lên máy chủ FTP. |
| open |
Kết nối với máy chủ FTP. |
| prompt |
Cho phép hoặc vô hiệu hóa lời nhắc tương tác trên nhiều lệnh. |
| put |
Tải một tập tin lên máy chủ FTP. |
| pwd |
In thư mục làm việc hiện tại trên máy chủ FTP. |
| quit |
Ngắt kết nối khỏi máy chủ FTP và thoát. |
| quote |
Tương tự như lệnh theo nghĩa đen (Gửi lệnh ftp tùy ý). |
| recv |
Tải xuống/nhận tập tin từ máy chủ FTP. |
| remotehelp |
Nhận trợ giúp từ máy chủ từ xa. |
| rename |
Đổi tên tập tin trên máy chủ FTP. |
| rmdir |
Xóa một thư mục trên máy chủ FTP. |
| send |
Gửi một tập tin. |
| status |
Hiển thị trạng thái của các tùy chọn hiện tại. |
| trace |
Bật/tắt tính năng theo dõi gói dữ liệu. |
| Type |
Chọn loại truyền tải tập tin. |
| user |
Gửi thông tin người dùng mới (tên người dùng). |
| verbose |
Bật hoặc tắt chế độ hiển thị chi tiết. |
6.2 Các lệnh FTP nâng cao của DriveHQ
DriveHQ CommandFTP hỗ trợ thêm một số lệnh FTP nâng cao:
| Lệnh FTP |
Sự miêu tả |
| download |
Tải xuống thư mục hoặc tập tin.
Cú pháp: Download [FTP-FILEorFOLDER-PATH] [LOCAL-FILEorFOLDER-PATH]
|
| upload |
Tải lên thư mục hoặc tập tin.
Cú pháp: Upload [LOCAL-FILEorFOLDER-PATH] [FTP-FILEorFOLDER-PATH]
|
| mirror |
Sao chép một thư mục cục bộ và một thư mục FTP.
Cú pháp: MIRROR [LOCAL-FOLDER-PATH] [FTP-FOLDER-PATH]
|
| deleteoldfiles |
Trong thư mục được chỉ định, hãy xóa các tệp tin cũ hơn x ngày.
Cú pháp: deleteoldfiles [FTP-PATH] /xo:[time]
|