8 cách kiểm tra nhanh tình trạng website trên Linux

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

Bạn có thể đã biết một số lệnh để làm điều này, như ping, curlwget. Trong bài viết này bạn sẽ biết thêm một số lệnh và vài tùy chọn khác nữa để kiểm tra hoạt động của website 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.

1. Cách kiểm tra tình trạng web bằ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

2. Dùng http để kiểm tra nhanh tình trạng trang web

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 quantrimang.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://quantrimang.com/
Server: cloudflare
Transfer-Encoding: chunked
Vary: Accept-Encoding

3. Cách kiểm tra tình trạng web bằ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
----------------------------------

4. Cách kiểm tra nhanh tình trạng website bằ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
----------------------------------

5. Cách kiểm tra website có hoạt động không bằng 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
----------------------------------

6. Cách kiểm tra trang web bằ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

7. Kiểm tra nhanh xem website có đang hoạt động không bằng 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.

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, 28/12/2019 11:03
51 👨 2.115
1 Bình luận
Sắp xếp theo
  • Mai Ngoc Khanh
    Mai Ngoc Khanh

    câu lệnh bashsell check nhiều web 1 lần đó sao mình check chỉ tối đa đc có 10 thôi b nhỉ, cả thêm cho mình hỏi ý nghĩa của 2>&1 là gì v ạ. 

    Thích Phản hồi 16:54 26/12
    ❖ Linux