Tôi đang sử dụng wget
chương trình, nhưng tôi muốn nó không lưu tệp html tôi đang tải xuống. Tôi muốn nó được loại bỏ sau khi nó được nhận. Làm thế nào để làm điều đó?
Tôi đang sử dụng wget
chương trình, nhưng tôi muốn nó không lưu tệp html tôi đang tải xuống. Tôi muốn nó được loại bỏ sau khi nó được nhận. Làm thế nào để làm điều đó?
Câu trả lời:
Bạn có thể chuyển hướng đầu ra của wget đến / dev / null (hoặc NUL trên Windows):
wget http://www.example.com -O /dev/null
Các tập tin sẽ không được ghi vào đĩa, nhưng nó sẽ được tải xuống.
Nếu bạn không muốn lưu tệp và bạn đã chấp nhận giải pháp tải xuống trang /dev/null
, tôi cho rằng bạn đang sử dụng wget không để lấy và phân tích nội dung trang .
Nếu nhu cầu thực sự của bạn là kích hoạt một số hành động từ xa, hãy kiểm tra xem trang có tồn tại hay không và tôi nghĩ sẽ tốt hơn nếu tránh tải xuống trang nội dung html.
Chơi với wget
các tùy chọn để chỉ truy xuất những gì bạn thực sự cần, ví dụ như tiêu đề http, trạng thái yêu cầu, v.v.
giả sử bạn cần kiểm tra trang là ok (nghĩa là trạng thái trả về là 200) bạn có thể làm như sau:
wget --no-cache --spider http://your.server.tld/your/page.html
Nếu bạn muốn phân tích cú pháp máy chủ trả về, hãy làm như sau:
wget --no-cache -S http://your.server.tld/your/page.html
Xem trang wget man để biết thêm tùy chọn để chơi.
Xem lynx
quá, như là một thay thế cho wget.
--no-cache
trong trang man nói rằng nó khiến wget "gửi cho máy chủ từ xa một chỉ thị thích hợp ('Pragma: no-cache') để lấy tệp từ dịch vụ từ xa"
$ wget http://www.somewebsite.com -O foo.html --delete-after
--delete-after
tùy chọn là sự lựa chọn khi bạn phải tải về đệ quy nhưng bạn muốn loại bỏ các nội dung thực tế.
-O /dev/null
Trong trường hợp bạn cũng muốn in trong bảng điều khiển, kết quả bạn có thể làm:
wget -qO- http://www.example.com
q
chế độ im lặng đặc biệt , (nó không xuất tiến trình và thông tin khác) và O-
(ghi tài liệu đã truy xuất vào bàn điều khiển).
Kiểm tra tùy chọn "-spider". Tôi sử dụng nó để đảm bảo các trang web của tôi hoạt động và gửi email cho tôi nếu không. Đây là một mục tiêu biểu từ crontab của tôi:
46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
Đối với hộp * NIX và sử dụng wget
, tôi khuyên bạn nên bỏ qua ghi vào tệp. Tôi nhận thấy trên hộp Ubuntu 10.04 của mình wget -O /dev/null
đã khiến wget hủy bỏ tải xuống sau lần tải xuống đầu tiên.
Tôi cũng nhận thấy rằng wget -O real-file
nguyên nhân khiến wget quên các liên kết thực tế trên trang. Nó nhấn mạnh vào một index.html
để có mặt trên mỗi trang. Các trang như vậy có thể không phải lúc nào cũng có mặt và wget sẽ không nhớ các liên kết mà nó đã thấy trước đó.
mkdir /dev/shm/1
cd /dev/shm/1
wget --recursive --relative --no-parent ...
Thông báo không có -O file
tùy chọn. wget sẽ ghi vào thư mục $ PWD. Trong trường hợp này là hệ thống tệp tmpfs chỉ RAM . Viết ở đây nên bỏ qua việc khuấy đĩa (tùy thuộc vào không gian trao đổi) VÀ theo dõi tất cả các liên kết. Điều này sẽ thu thập dữ liệu toàn bộ trang web thành công.
Sau đó, tất nhiên,
rm --recursive --force /dev/shm/1/*
Sử dụng tùy chọn --delete-after, để xóa tệp sau khi được tải xuống.
Chỉnh sửa: Rất tiếc, tôi chỉ nhận thấy rằng đã được trả lời.
/dev/null
này có hiệu quả không?