- Tổng đài 24/7: 1800 646 881
- Đăng nhập
- 3
Trong bài viết này, BKHOST giải thích cho bạn về lệnh wget trong Linux thông qua các ví dụ thực tế. Ok, hãy cũng bắt đầu ngay thôi nào.
GNU Wget là một tiện ích dòng lệnh hỗ trợ tải xuống các tệp từ web. Với Wget, bạn có thể tải xuống các tệp bằng giao thức HTTP, HTTPS và FTP. Wget cung cấp một số tùy chọn cho phép bạn tải xuống nhiều tệp, tiếp tục tải xuống, giới hạn băng thông, tải xuống đệ quy, tải xuống trong nền, phản chiếu trang web và hơn thế nữa.
Trên hầu hết các bản phân phối của Linux hiện nay đều hỗ trợ các gói wget được cài đặt sẵn.
Bạn có thể kiểm tra gói Wget trên hệ thống của bạn đã được cài đặt hay chưa bằng cách, vào console -> nhập gwet -> nhấn enter.
Nếu bạn đã cài đặt wget, hệ thống sẽ hiển thị wget: missing URL. Nếu chưa, hệ thống sẽ hiển thị dòng lệnh: wget command not found
Trong trường hợp chưa được cài đặt, bạn vẫn có thể tự cài đặt nó một cách dễ dàng dựa vào trình quản lý gói từ bản phân phối Linux của bạn.
{{EJS0}}
{{EJS1}}
Trước khi đi vào cách sử dụng lệnh wget, hãy bắt đầu bằng cách xem lại cú pháp cơ bản.
Các biểu thức tiện ích wget có dạng sau:
{{EJS2}}
Trong đó:
Ở dạng đơn giản nhất, khi được sử dụng mà không có bất kỳ tùy chọn nào, wget sẽ tải soucre được chỉ định trong vào thư mục hiện tại.
Trong ví dụ sau, minh họa cho trường hợp tải xuống kho lưu trữ tar nhân Linux:
{{EJS3}}
Từ hình ảnh trên bạn có thể thấy, wget bắt đầu bằng cách phân giải địa chỉ IP của miền, sau đó kết nối với máy chủ từ xa và bắt đầu chuyển.
Trong quá trình tải xuống, wget hiển thị các thông tin như: thanh tiến trình cùng với tên tệp, kích thước tệp, tốc độ tải xuống và thời gian ước tính để hoàn tất quá trình tải xuống. Sau khi quá trình tải xuống hoàn tất, bạn có thể tìm thấy tệp đã tải xuống trong thư mục làm việc hiện tại của mình.
Muốn tắt đầu ra, hãy sử dụng tùy chọn -q.
Nếu tệp đã cài đặt tệp trước đó, wget sẽ thêm .n (số) vào cuối tên tệp vừa tải.
Bạn có thể thay đổi tên tệp được lưu sau khi tải xuống bằng cách sử dụng tùy chọn – O theo sau là tên mà bạn mong muốn:
{{EJS4}}
Lệnh trên sẽ lưu tệp zip hugo mới nhất từ GitHub với tên là new-hugo.zip thay vì tên mặc định của nó.
Theo mặc định, wget sẽ lưu tệp đã tải xuống trong thư mục làm việc hiện tại. Để lưu tệp vào một vị trí chỉ định, có thể dùng tùy chọn -P:
{{EJS5}}
Lệnh trên yêu cầu wget lưu tệp CentOS 7 iso vào thư mục /mnt/iso.
Hãy dùng tùy chọn –limit-rate để có thể giới hạn tốc độ tải xuống tệp. Đơn vị đo lường mặc định là byte/ giây với k đại diện cho kilobyte, m cho megabyte và g cho gigabyte.
Lệnh sau sẽ tải xuống tệp nhị phân Go và giới hạn tốc độ tải xuống là 1MB:
{{EJS6}}
Tùy chọn này giúp bạn điều khiển được lượng băng thông trong quá trình tải tệp.
Nếu không may, máy của bạn bị chết hay ngắt kết nối trong quá trình tải một tệp lớn. Hãy sử dụng tùy chọn -c để có thể tiếp tục quá trình tải trước đó thay vì phải tải lại từ đầu.
Trong ví dụ sau, là ví dụ cho quá trình tiếp tục tải xuống tệp iso Ubuntu 18.04:
{{EJS7}}
Trong trường hợp máy chủ từ xa không cho phép tiếp tục tải xuống, wget sẽ tự động tải lại từ đầu và ghi đè lên tệp trước đó.
Để tải xuống trong nền, hãy sử dụng tùy chọn -b. Trong ví dụ sau, là quá trình tải xuống tệp iso OpenSuse ở chế độ nền:
{{EJS8}}
Theo mặc định, đầu ra được chuyển hướng đến tệp wget-log trong thư mục hiện tại. Để xem trạng thái tải xuống, hãy sử dụng lệnh tail:
{{EJS9}}
Đôi khi khi tải xuống một tệp, máy chủ từ xa có thể được đặt để chặn Wget User-Agent. Trong những tình huống như thế này, để mô phỏng một trình duyệt khác, hãy chuyển tùy chọn -U.
{{EJS10}}
Lệnh trên sẽ giả lập Firefox 60 yêu cầu trang từ wget-forbidden.com
Bạn còn có thể tiết kiệm thời gian tải bằng cách tải nhiều tệp cùng lúc nhờ vào tùy chọn -i, theo sau là đường dẫn đến tệp cục bộ hoặc tệp bên ngoài có chứa danh sách các URL sẽ được tải xuống. Mỗi URL cần phải nằm trên một dòng riêng biệt.
Ví dụ sau đây cho thấy cách tải xuống tệp iso Arch Linux, Debian và Fedora bằng cách sử dụng URL được chỉ định trong tệp linux-distros.txt:
{{EJS11}}
{{EJS12}}
Nếu bạn chỉ định – dưới dạng tên tệp, các URL sẽ được đọc từ đầu vào tiêu chuẩn.
Việc tải xuống các tệp từ máy chủ FTP có yêu cầu đăng nhập cũng không làm khó được bạn, hãy dùng câu lệnh sau đây kèm theo thông tin username và password
{{EJS13}}
Để tạo bản sao của một trang web với wget, hãy sử dụng tùy chọn -m. Điều này sẽ tạo ra một bản sao cục bộ hoàn chỉnh của trang web bằng cách theo dõi và tải xuống tất cả các liên kết nội bộ cũng như các tài nguyên của trang web (JavaScript, CSS, Hình ảnh).
{{EJS14}}
Nếu bạn muốn sử dụng trang web đã tải xuống để duyệt cục bộ, bạn sẽ cần chuyển một vài đối số bổ sung cho lệnh trên.
{{EJS15}}
Tùy chọn -k sẽ khiến wget chuyển đổi các liên kết trong các tài liệu đã tải xuống làm chúng trở nên phù hợp hơn với từng khu vực.
Tùy chọn -p sẽ yêu cầu wget tải xuống tất cả các tệp cần thiết để hiển thị trang HTML.
Nếu bạn muốn tải xuống tệp qua HTTPS từ máy chủ có chứng chỉ SSL không hợp lệ hoặc không có chứng chỉ SSL, hãy sử dụng tùy chọn –no-check-certificate:
{{EJS16}}
Trong ví dụ sau, wget sẽ âm thầm (flag -q) tải xuống và xuất phiên bản WordPress mới nhất sang stdout (flag -O –) sau đó chuyển nó đến tiện ích tar, tiện ích này sẽ giải nén kho lưu trữ vào thư mục /var/www.
{{EJS17}}
Nhờ vào wget, việc tải tệp từ web sẽ trở nên dễ dàng và linh hoạt theo từng nhu cầu của bạn. Bạn có thể tải nhiều tệp cùng lúc, tiếp tục tải xuống tệp đã bị gián đoạn trước đó, v.v tùy theo từng tùy chọn wget mà bạn sử dụng.
Nếu có nhu cầu tham khảo thêm về lệnh wget, hãy truy cập trang hướng dẫn sử dụng GNU wget hay về những mẹo thao tác và quản lý khác trên Linux, hãy để lại bình luận ở bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.
P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.
Mua tên miền .VN tại BKHOST
Giá chỉ từ 750k/năm. Kiểm tra tên miền .VN đẹp và đăng ký ngay hôm nay!