8 phương pháp kiểm tra nhanh tình trạng trang web từ Linux Terminal

Hướng dẫn này sẽ chỉ cho bạn cách kiểm tra nhanh xem một trang web cụ thể đang hoạt động hay không từ Linux Terminal.

Bạn có thể đã biết một số lệnh để xác minh về điều này, cụ thể là ping, curlwget. Nhưng bài viết đã thêm một số lệnh khác trong hướng dẫn này.

Ngoài ra, bài viết cũng đã thêm nhiều tùy chọn khác nhau để kiểm tra thông tin này cho một và nhiều máy chủ.

Bài viết này sẽ giúp bạn kiểm tra xem trang web có đang hoạt động hay không. Nhưng nếu bạn duy trì một số trang web và muốn nhận thông báo theo thời gian thực khi trang web ngừng hoạt động, bạn nên sử dụng các công cụ giám sát trang web theo thời gian thực. Có nhiều công cụ cho việc này, một vài tùy chọn trong số đó là miễn phí và hầu hết những cái còn lại yêu cầu phải trả tiền. Vì vậy, hãy chọn một công cụ yêu thích dựa trên nhu cầu của bạn.

Phương pháp 1: Cách kiểm tra tình trạng một trang web bằng cách sử dụng lệnh fping

Lệnh fping là một chương trình như ping, sử dụng Internet Control Message Protocol (ICMP) echo request để xác định xem máy chủ đích có phản hồi hay không.

fping khác với ping vì nó cho phép người dùng ping bất kỳ số lượng máy chủ nào đồng thời. Ngoài ra, máy chủ có thể được nhập từ một file văn bản.

fping gửi ICMP echo request, di chuyển sang mục tiêu tiếp theo theo kiểu vòng tròn, chứ không đợi cho đến khi máy chủ đích phản hồi.

Nếu một máy chủ đích phản hồi, nó được ghi chú là hoạt động và bị xóa khỏi danh sách các mục tiêu cần kiểm tra. Nếu mục tiêu không phản hồi trong một giới hạn thời gian nhất định và/hoặc giới hạn thử lại, nó sẽ được nhận định là không thể truy cập.

# fping 2daygeek.com linuxtechnews.com magesh.co.in
 
 2daygeek.com is alive
 
 linuxtechnews.com is alive
 
 magesh.co.in is alive

Phương pháp 2: Cách kiểm tra nhanh tình trạng một trang web bằng cách sử dụng lệnh http

HTTPie (phát âm là aitch-tee-tee-pie) là một HTTP client dòng lệnh.

Công cụ HTTPie là một HTTP client dòng lệnh hiện đại, giúp tương tác CLI với các web service.

Nó cung cấp một lệnh HTTP đơn giản cho phép gửi các yêu cầu HTTP tùy ý, bằng cách sử dụng cú pháp đơn giản và hiển thị đầu ra được thêm màu.

HTTPie có thể được sử dụng để kiểm thử, gỡ lỗi và thường tương tác với các máy chủ HTTP.

# http 2daygeek.com
 
 HTTP/1.1 301 Moved Permanently
 
 CF-RAY: 535b66722ab6e5fc-LHR
 
 Cache-Control: max-age=3600
 
 Connection: keep-alive
 
 Date: Thu, 14 Nov 2019 19:30:28 GMT
 
 Expires: Thu, 14 Nov 2019 20:30:28 GMT
 
 Location: https://2daygeek.com/
 
 Server: cloudflare
 
 Transfer-Encoding: chunked
 
 Vary: Accept-Encoding

Phương pháp 3: Cách kiểm tra tình trạng một trang web bằng cách sử dụng lệnh curl

Lệnh curl là một công cụ để truyền dữ liệu từ máy chủ hoặc đến máy chủ, sử dụng một trong các giao thức được hỗ trợ (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET và TFTP).

Lệnh được thiết kế để hoạt động mà không cần sự tương tác của người dùng.

Lệnh curl hỗ trợ proxy, xác thực người dùng, upload lên FTP, HTTP post, kết nối SSL, cookie, tóm tắt về quá trình chuyển file, Metalink, v.v...

# curl -I https://www.magesh.co.in
 
 HTTP/2 200
 
 date: Thu, 14 Nov 2019 19:39:47 GMT
 
 content-type: text/html
 
 set-cookie: __cfduid=db16c3aee6a75c46a504c15131ead3e7f1573760386; expires=Fri, 13-Nov-20 19:39:46 GMT; path=/; domain=.magesh.co.in; HttpOnly
 
 vary: Accept-Encoding
 
 last-modified: Sun, 14 Jun 2015 11:52:38 GMT
 
 x-cache: HIT from Backend
 
 cf-cache-status: DYNAMIC
 
 expect-ct: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
 
 server: cloudflare
 
 cf-ray: 535b74123ca4dbf3-LHR

Hãy sử dụng lệnh curl sau nếu bạn chỉ muốn xem mã trạng thái HTTP thay vì toàn bộ đầu ra:

# curl -I "www.magesh.co.in" 2>&1 | awk '/HTTP\// {print $2}'
 
 200

Nếu bạn muốn xem một trang web cụ thể có hoạt động hay không, hãy sử dụng Bash script sau.

# vi curl-url-check.sh
 
 #!/bin/bash
 
 if curl -I "https://www.magesh.co.in" 2>&1 | grep -w "200\|301" ; then
 
 echo "magesh.co.in is up"
 
 else
 
 echo "magesh.co.in is down"
 
 fi

Khi bạn đã thêm script trên vào một file, hãy chạy file để xem đầu ra.

# sh curl-url-check.sh
 
 HTTP/2 200
 
 magesh.co.in is up

Sử dụng shell script sau nếu bạn muốn xem trạng thái của nhiều trang web.

# vi curl-url-check-1.sh
 
 #!/bin/bash
 
 for site in www.google.com google.co.in www.xyzzz.com
 
 do
 
 if curl -I "$site" 2>&1 | grep -w "200\|301" ; then
 
 echo "$site is up"
 
 else
 
 echo "$site is down"
 
 fi
 
 echo "----------------------------------"
 
 done

Khi bạn đã thêm script trên vào một file, hãy chạy file để xem đầu ra.

# sh curl-url-check-1.sh
 
 HTTP/1.1 200 OK
 
 www.google.com is up
 
 ----------------------------------
 
 HTTP/1.1 301 Moved Permanently
 
 google.co.in is up
 
 ----------------------------------
 
 www.xyzzz.com is down
 
 ----------------------------------

Phương pháp 4: Cách kiểm tra nhanh tình trạng một trang web bằng cách sử dụng lệnh wget

Lệnh wget (trước đây gọi là Geturl) là một công cụ tải xuống dòng lệnh miễn phí, mã nguồn mở, truy xuất các file bằng HTTP, HTTPS và FTP, những giao thức Internet được sử dụng rộng rãi nhất.

Lệnh wget là một công cụ dòng lệnh không tương tác. Tên của nó được lấy từ World Wide Web và get.

Wget xử lý việc tải xuống khá nhiều so với các công cụ khác, dự kiến bao gồm làm việc ở chế độ nền, tải xuống nhiều file, tải xuống không tương tác và tải xuống file lớn, v.v...

# wget -S --spider https://www.magesh.co.in
 
 Spider mode enabled. Check if remote file exists.
 
 --2019-11-15 01:22:00-- https://www.magesh.co.in/
 
 Loaded CA certificate '/etc/ssl/certs/ca-certificates.crt'
 
 Resolving www.magesh.co.in (www.magesh.co.in)… 104.18.35.52, 104.18.34.52, 2606:4700:30::6812:2334, …
 
 Connecting to www.magesh.co.in (www.magesh.co.in)|104.18.35.52|:443… connected.
 
 HTTP request sent, awaiting response…
 
 HTTP/1.1 200 OK
 
 Date: Thu, 14 Nov 2019 19:52:01 GMT
 
 Content-Type: text/html
 
 Connection: keep-alive
 
 Set-Cookie: __cfduid=db73306a2f1c72c1318ad4709ef49a3a01573761121; expires=Fri, 13-Nov-20 19:52:01 GMT; path=/; domain=.magesh.co.in; HttpOnly
 
 Vary: Accept-Encoding
 
 Last-Modified: Sun, 14 Jun 2015 11:52:38 GMT
 
 X-Cache: HIT from Backend
 
 CF-Cache-Status: DYNAMIC
 
 Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
 
 Server: cloudflare
 
 CF-RAY: 535b85fe381ee684-LHR
 
 Length: unspecified [text/html]
 
 Remote file exists and could contain further links,
 
 but recursion is disabled -- not retrieving.

Sử dụng lệnh wget sau nếu bạn chỉ muốn xem mã trạng thái HTTP thay vì toàn bộ đầu ra:

# wget --spider -S "www.magesh.co.in" 2>&1 | awk '/HTTP\// {print $2}'
 
 200

Nếu bạn muốn xem một trang web cụ thể có hoạt động không, hãy sử dụng Bash script sau:

# vi wget-url-check.sh
 
 #!/bin/bash
 
 if wget --spider -S "https://www.google.com" 2>&1 | grep -w "200\|301" ; then
 
 echo "Google.com is up"
 
 else
 
 echo "Google.com is down"
 
 fi

Khi bạn đã thêm script trên vào một file, hãy chạy file để xem đầu ra.

# wget-url-check.sh
 
 HTTP/1.1 200 OK
 
 Google.com is up

Sử dụng shell script sau nếu bạn muốn xem trạng thái của nhiều trang web.

# vi curl-url-check-1.sh #!/bin/bash for site in www.google.com google.co.in www.xyzzz.com
 
 do
 
 if wget --spider -S "$site" 2>&1 | grep -w "200\|301" ; then
 
 echo "$site is up"
 
 else
 
 echo "$site is down"
 
 fi
 
 echo "----------------------------------"
 
 done

Khi bạn đã thêm script trên vào một file, hãy chạy file để xem đầu ra.

# sh wget-url-check-1.sh
 
 HTTP/1.1 200 OK
 
 www.google.com is up
 
 ----------------------------------
 
 HTTP/1.1 301 Moved Permanently
 
 google.co.in is up
 
 ----------------------------------
 
 www.xyzzz.com is down
 
 ----------------------------------

Phương pháp 5: Cách kiểm tra nhanh xem một trang web có hoạt động không bằng cách sử dụng lệnh lynx

Lynx là một trình duyệt web dựa trên văn bản có cấu hình cao để sử dụng trên các character cell terminal (một thiết bị điện tử kỹ thuật số rất đơn giản hiển thị văn bản nhận được, thường là với một cổng nối tiếp và gửi phản hồi trở lại trên cùng một cổng) có thể định địa chỉ con trỏ. Nó là trình duyệt web lâu đời nhất và vẫn đang phát triển tích cực.

# lynx -head -dump http://www.magesh.co.in
 
 HTTP/1.1 200 OK
 
 Date: Fri, 15 Nov 2019 08:14:23 GMT
 
 Content-Type: text/html
 
 Connection: close
 
 Set-Cookie: __cfduid=df3cb624024b81df7362f42ede71300951573805662; expires=Sat, 1
 
 4-Nov-20 08:14:22 GMT; path=/; domain=.magesh.co.in; HttpOnly
 
 Vary: Accept-Encoding
 
 Last-Modified: Sun, 14 Jun 2015 11:52:38 GMT
 
 X-Cache: HIT from Backend
 
 CF-Cache-Status: DYNAMIC
 
 Server: cloudflare
 
 CF-RAY: 535fc5704a43e694-LHR

Sử dụng lệnh lynx sau nếu bạn chỉ muốn xem mã trạng thái HTTP thay vì toàn bộ đầu ra:

# lynx -head -dump https://www.magesh.co.in 2>&1 | awk '/HTTP\// {print $2}'
 
 200

Nếu bạn muốn xem một trang web cụ thể có hoạt động không, hãy sử dụng Bash script sau:

# vi lynx-url-check.sh
 
 #!/bin/bash
 
 if lynx -head -dump http://www.magesh.co.in 2>&1 | grep -w "200\|301" ; then
 
 echo "magesh.co.in is up"
 
 else
 
 echo "magesh.co.in is down"
 
 fi

Khi bạn đã thêm script trên vào một file, hãy chạy file để xem đầu ra.

# sh lynx-url-check.sh
 
 HTTP/1.1 200 OK
 
 magesh.co.in is up

Sử dụng shell script sau nếu bạn muốn xem trạng thái của nhiều trang web.

# vi lynx-url-check-1.sh
 
 #!/bin/bash
 
 for site in http://www.google.com https://google.co.in http://www.xyzzz.com
 
 do
 
 if lynx -head -dump "$site" 2>&1 | grep -w "200\|301" ; then
 
 echo "$site is up"
 
 else
 
 echo "$site is down"
 
 fi
 
 echo "----------------------------------"
 
 done

Khi bạn đã thêm script trên vào một file, hãy chạy file để xem đầu ra.

# sh lynx-url-check-1.sh
 
 HTTP/1.0 200 OK
 
 http://www.google.com is up
 
 ----------------------------------
 
 HTTP/1.0 301 Moved Permanently
 
 https://google.co.in is up
 
 ----------------------------------
 
 www.xyzzz.com is down
 
 ----------------------------------

Phương pháp 6: Cách kiểm tra xem một trang web có đang hoạt động không bằng cách sử dụng lệnh ping

Lệnh ping là một tiện ích mạng được sử dụng để kiểm tra tính khả dụng/khả năng kết nối của máy chủ mục tiêu trên mạng Internet Protocol (IP).

Lệnh xác nhận tính khả dụng của máy chủ bằng cách gửi các Internet Control Message Protocol (ICMP) Echo Request đến máy chủ đích và chờ ICMP Echo Reply.

Ping tóm tắt các kết quả thống kê dựa trên các gói được truyền, gói nhận được, gói bị mất (packet loss), thường bao gồm thời gian min/avg/max (tối thiểu/trung bình/tối đa).

# ping -c 5 2daygeek.com
 
 PING 2daygeek.com (104.27.157.177) 56(84) bytes of data.
 
 64 bytes from 104.27.157.177 (104.27.157.177): icmp_seq=1 ttl=58 time=228 ms
 
 64 bytes from 104.27.157.177 (104.27.157.177): icmp_seq=2 ttl=58 time=227 ms
 
 64 bytes from 104.27.157.177 (104.27.157.177): icmp_seq=3 ttl=58 time=250 ms
 
 64 bytes from 104.27.157.177 (104.27.157.177): icmp_seq=4 ttl=58 time=171 ms
 
 64 bytes from 104.27.157.177 (104.27.157.177): icmp_seq=5 ttl=58 time=193 ms
 
 
 --- 2daygeek.com ping statistics ---
 
 5 packets transmitted, 5 received, 0% packet loss, time 13244ms
 
 rtt min/avg/max/mdev = 170.668/213.824/250.295/28.320 ms

Phương pháp 7: Cách kiểm tra nhanh xem một trang web có đang hoạt động không bằng cách sử dụng lệnh telnet

Lệnh telnet là một giao thức mạng cũ được sử dụng để liên lạc với một máy chủ khác qua mạng TCP/IP bằng giao thức TELNET.

Nó sử dụng cổng 23 để kết nối với các thiết bị khác, chẳng hạn như máy tính và thiết bị mạng.

Telnet không phải là một giao thức bảo mật và hiện không được khuyến khích sử dụng vì dữ liệu được gửi tới giao thức không được mã hóa và có thể bị tin tặc chặn lại.

Mọi người đều sử dụng giao thức SSH, được mã hóa và rất bảo mật, thay vì Telnet.

# telnet google.com 80
 
 Trying 216.58.194.46…
 
 Connected to google.com.
 
 Escape character is '^]'.
 
 ^]
 
 telnet> quit
 
 Connection closed.

Phương pháp 8: Cách kiểm tra xem một trang web có đang hoạt động không bằng cách sử dụng Bash Script

Nói một cách đơn giản, shell script là file chứa một chuỗi các lệnh. Shell đọc file này và thực thi từng lệnh một khi chúng được nhập trực tiếp trên dòng lệnh.

Để làm cho lệnh này hữu ích hơn, bạn có thể thêm một số điều kiện. Điều này làm giảm bớt nhiệm vụ cho quản trị viên Linux.

Nếu bạn muốn xem trạng thái của nhiều trang web bằng lệnh wget, hãy sử dụng shell script sau đây.

# vi wget-url-check-2.sh
 
 #!/bin/bash
 
 for site in www.google.com google.co.in www.xyzzz.com
 
 do
 
 if wget --spider -S "$site" 2>&1 | grep -w "200\|301" > /dev/null ; then
 
 echo "$site is up"
 
 else
 
 echo "$site is down"
 
 fi
 
 done

Khi bạn đã thêm script trên vào một file, hãy chạy file để xem đầu ra:

# sh wget-url-check-2.sh
 
 www.google.com is up
 
 google.co.in is up
 
 www.xyzzz.com is down

Nếu bạn muốn xem trạng thái của nhiều trang web bằng lệnh curl, hãy sử dụng Bash script sau:

# vi curl-url-check-2.sh
 
 #!/bin/bash
 
 for site in www.google.com google.co.in www.xyzzz.com
 
 do
 
 if curl -I "$site" 2>&1 | grep -w "200\|301" > /dev/null ; then
 
 echo "$site is up"
 
 else
 
 echo "$site is down"
 
 fi
 
 done

Khi bạn đã thêm script trên vào một file, hãy chạy file để xem đầu ra.

# sh curl-url-check-2.sh
 
 www.google.com is up
 
 google.co.in is up
 
 www.xyzzz.com is down

Chúc bạn thực hiện thành công!

Thứ Bảy, 07/12/2019 07:58
31 👨 212