CodeGym /Các khóa học /Docker SELF /Xử lý dữ liệu văn bản và cập nhật hệ thống

Xử lý dữ liệu văn bản và cập nhật hệ thống

Docker SELF
Mức độ , Bài học
Có sẵn

Xử lý dữ liệu văn bản và cập nhật hệ thống

1. Xử lý dữ liệu văn bản

Hôm nay, tụi mình sẽ tổng hợp tất cả kiến thức này và áp dụng vào thực tế để xử lý dữ liệu văn bản và cập nhật hệ thống. Hãy cùng làm quen với các kịch bản thực tế: từ phân tích nhật ký hệ thống tới tự động hóa việc cài đặt và cấu hình các gói.

Bài tập 1: Tìm lỗi trong log

Kịch bản: Hãy tưởng tượng bạn là quản trị viên hệ thống và cần nhanh chóng hiểu xem trong hệ thống đang diễn ra chuyện gì. Để làm điều này, tụi mình sẽ phân tích nhật ký hệ thống (/var/log/syslog).

Bước 1: Lọc theo từ khóa

Bắt đầu bằng việc tìm kiếm các dòng liên quan đến lỗi bằng cách sử dụng grep:

grep "error" /var/log/syslog

Ồ, có gì đó rồi! Nhưng giờ hãy cải thiện nhé. Giả sử bạn muốn bỏ qua phân biệt chữ hoa thường (dù là ERROR hay error):

grep -i "error" /var/log/syslog

Bây giờ tụi mình sẽ thấy nhiều kết quả khớp hơn. Nhưng đôi khi cần tìm tất cả những gì không liên quan đến lỗi:

grep -v "error" /var/log/syslog

Bước 2: Đơn giản hóa đầu ra với cut

Giả sử bạn chỉ quan tâm tới dấu thời gian và thông điệp. Hãy lấy ra các cột tương ứng:

grep "error" /var/log/syslog | cut -d' ' -f1,2,3,5-

Ở đây, tụi mình dùng cut để chia các dòng dựa theo dấu cách -d' ', chọn các cột 1, 2, 3 (thời gian) và phần văn bản còn lại.

Bài tập 2: Đếm tần suất sự kiện

Bây giờ tụi mình muốn hiểu xem lỗi xảy ra thường xuyên đến mức nào. Hãy kết hợp grep, cutsort với uniq:

grep "error" /var/log/syslog | cut -d' ' -f5 | sort | uniq -c

Câu lệnh này:

  1. Tìm các dòng chứa lỗi bằng grep.
  2. Chỉ lấy thông tin về nguồn lỗi cut.
  3. Sắp xếp dữ liệu sort để uniq có thể đếm số lần xuất hiện của từng dòng.

Kết quả sẽ trông giống như thế này:

  10 systemd
   7 kernel
   5 cron

Những lỗi từ systemd xuất hiện thường xuyên nhất. Tới lúc đưa ra kết luận rồi!


2. Nạp và xử lý dữ liệu từ bên ngoài

Kịch bản: Phân tích dữ liệu từ nguồn bên ngoài

Giả sử, chúng ta cần nạp một tệp văn bản chứa dữ liệu (ví dụ, log file) từ một web server và phân tích nó. Hãy làm điều này theo từng bước.

Bước 1: Tải tệp

Đầu tiên, hãy tải tệp sử dụng wget:

wget -O data.log http://example.com/logs/data.log

Tệp đã được tải xuống và lưu dưới tên data.log. Trong trường hợp lỗi tải, chúng ta sẽ thêm tiếp tục:

wget -c -O data.log http://example.com/logs/data.log

Nếu bạn thích sử dụng curl:

curl -o data.log http://example.com/logs/data.log

Bước 2: Tìm thông tin

Bây giờ, chúng ta tìm những dòng chứa một pattern nhất định, ví dụ, WARNING:

grep "WARNING" data.log

Bước 3: Định dạng dữ liệu với awk

Giả sử trong log có ba cột: ngày, giờ và thông điệp. Chúng ta muốn chỉ hiển thị ngày và thông điệp:

awk '{print $1, $3}' data.log

Nếu cần lọc thêm các dòng mà thông điệp có chứa từ error, chúng ta có thể thêm điều kiện:

awk '/error/ {print $1, $3}' data.log

3. Cập nhật hệ thống bằng apt-getyum

Giờ thì chúng ta sẽ chuyển sang các nhiệm vụ "hệ thống" hơn. Cập nhật các gói phần mềm là một quá trình cực kỳ quan trọng để duy trì sự an toàn và ổn định của hệ thống. Hãy cùng xem cách thực hiện điều này.

Kịch bản: Cập nhật hệ thống

Bước 1: Cập nhật danh sách gói phần mềm

Đối với các bản phân phối dựa trên Debian:

sudo apt-get update

Đối với các bản phân phối dựa trên RedHat:

sudo yum check-update

Bước 2: Cài đặt các bản cập nhật

Debian-based:

sudo apt-get upgrade
RedHat-based:
sudo yum update

Bước 3: Cài đặt gói phần mềm mới

Ví dụ, để cài đặt trình soạn thảo văn bản vim:

sudo apt-get install vim
sudo yum install vim

Mẹo hữu ích

Nếu bạn biết chính xác gói phần mềm muốn cài đặt nhưng không chắc về tên của nó, hãy sử dụng apt search hoặc yum search:

apt search ten_goi_phan_mem
yum search ten_goi_phan_mem

4. Nhiệm vụ cuối cùng

Bài tập: Tự động hóa cập nhật và xử lý dữ liệu

  1. Tạo bash-script, thực hiện các bước sau:
    • Cập nhật hệ thống;
    • Tải xuống tệp văn bản (ví dụ: nhật ký);
    • Phân tích tệp này để kiểm tra lỗi;
    • Lưu kết quả phân tích vào một tệp mới.

Đây là ví dụ về script như vậy:

# Bước 1: Cập nhật hệ thống
echo "Đang cập nhật hệ thống..."
sudo apt-get update && sudo apt-get -y upgrade

# Bước 2: Tải tệp xuống
echo "Đang tải tệp nhật ký..."
wget -O data.log http://example.com/logs/data.log

# Bước 3: Phân tích tệp
echo "Đang phân tích nhật ký để kiểm tra lỗi..."
grep "ERROR" data.log | cut -d' ' -f1,5- | sort | uniq -c > analysis.log

echo "Phân tích hoàn tất. Kết quả đã được lưu trong analysis.log"

Lưu script này lại, ví dụ, dưới tên update_and_analyze.sh, đặt quyền thực thi:

chmod +x update_and_analyze.sh

Và chạy nó:

./update_and_analyze.sh

Lưu ý: lỗi thường gặp

  • Nếu bạn thấy thông báo "truy cập bị từ chối", hãy đảm bảo bạn chạy script dưới quyền người dùng có quyền sudo.

  • Nếu wget hoặc curl chưa được cài đặt, thêm lệnh cài đặt chúng vào đầu script:

    sudo apt-get install -y wget
    

Lợi ích thực tế là gì?

Những kỹ năng này sẽ hữu ích không chỉ trong công việc mà còn trong các buổi phỏng vấn. Việc biết cách tìm lỗi trong log, lọc dữ liệu và chạy cập nhật hệ thống rất được coi trọng trong các quản trị viên và kỹ sư. Scripts cho phép tự động hóa các nhiệm vụ, tiết kiệm thời gian và đảm bảo không có lỗi của con người.

P.S. Nhớ rằng, trong thế giới thực, bạn sẽ phải đối mặt với những nhiệm vụ mà cần kết hợp các lệnh, chỉnh sửa output và tự động cấu hình hệ thống. Ví dụ hôm nay chỉ là phần nổi của tảng băng dành cho thực hành tương lai của bạn thôi.

1
Опрос
Các công cụ tiện ích trong Linux,  8 уровень,  6 лекция
недоступен
Các công cụ tiện ích trong Linux
Các công cụ tiện ích trong Linux
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION