Đề cương khóa học
Ngày 1
Phần 1: Giới thiệu về Python cho Người dùng Unix
Nội dung
Tại sao nên chọn Python cho lập trình và tự động hóa
• Ưu điểm của Python cho việc lập trình
• Sử dụng Python trong quản trị hệ thống và DevOps
So sánh Bash và Python
• Biến
• Cấu trúc điều khiển (if, vòng lặp)
• Làm việc với tệp tin
• Thực thi lệnh hệ thống
Cấu trúc của một kịch bản Python
• Chạy các kịch bản Python
• Sử dụng trình thông dịch (interpreter)
• Đối số dòng lệnh
• Giới thiệu về argparse
Bài tập
Bài tập 1 – Chuyển đổi một kịch bản Bash đơn giản sang Python
Kịch bản Bash sẽ:
• Liệt kê các tệp từ một thư mục
• Lọc theo phần mở rộng tệp
• Hiển thị thống kê
Người tham gia sẽ viết lại kịch bản bằng Python.
Bài tập 2 – Kịch bản Python với đối số CLI
Tạo một kịch bản Python:
• Nhận tham số từ dòng lệnh
• Xử lý các tệp tin
• Hiển thị kết quả có cấu trúc
Phần 2: Thao tác với Tệp và Thư mục
Nội dung
Làm việc với hệ thống tệp trong Python
• Đọc và ghi tệp tin
• Điều hướng giữa các thư mục
• Xử lý đường dẫn
Sử dụng mô-đun pathlib • Quản lý đường dẫn • Thao tác với tệp tin
Thay thế các tiện ích Unix • grep • find • sed • awk bằng các triển khai trong Python
Bài tập
Bài tập 1 – Quét hệ thống tệp
Kịch bản Python:
• Tìm kiếm các tệp lớn
• Xác định các tệp cũ
• Tạo báo cáo
Bài tập 2 – Xử lý các tệp cấu hình
Kịch bản Python:
• Đọc các tệp văn bản
• Trích xuất thông tin liên quan
• Tạo thống kê
Ngày 2
Phần 3: Xử lý Nhật ký và Thao tác Văn bản
Nội dung
Làm việc với văn bản trong Python
• Các thao tác chuỗi
• Lọc và chuyển đổi dữ liệu
Biểu thức chính quy (regex)
• Nhận dạng mẫu hình
• Phân tích nhật ký
Thay thế các đường ống shell
Ví dụ:
grep | awk | sed | sort
được triển khai trong Python
Bài tập
Bài tập 1 – Phân tích tệp nhật ký
Kịch bản Python:
• Đọc nhật ký hệ thống
• Xác định các lỗi
• Tính toán tần suất lỗi
Bài tập 2 – Chuyển đổi một đường ống shell sang Python Chuyển đổi một đường ống Bash phức tạp thành một kịch bản Python
Phần 4: Tự động hóa Các lệnh Hệ thống
Nội dung
Thực thi lệnh shell từ Python
• Mô-đun subprocess
• Bắt đầu output (kết quả)
• Xử lý lỗi
Tự động hóa các tác vụ quản trị • Chạy các lệnh hệ thống • Tích hợp với các tác vụ cron • Lập kịch bản cho các tác vụ lặp đi lặp lại
Quản lý tiến trình • Giám sát các tiến trình • Thực thi song song đơn giản
Bài tập
Bài tập 1 – Kịch bản Python chạy lệnh hệ thống
Kịch bản:
• Chạy các lệnh Unix
• Bắt output (kết quả)
• Tạo báo cáo
Bài tập 2 – Giám sát dịch vụ
Kịch bản Python:
• Kiểm tra trạng thái của một dịch vụ
• Thu thập thông tin
• Hiển thị kết quả
Ngày 3
Phần 5: Tự động hóa Nâng cao và Tương tác với Các Dịch vụ Bên ngoài
Nội dung
Làm việc với API trong Python
• Giới thiệu về các yêu cầu HTTP
• Xác thực và mã thông báo (tokens)
• Xử lý phản hồi JSON
Python cho tự động hóa DevOps • Thu thập dữ liệu từ các dịch vụ bên ngoài • Tích hợp với các công cụ hiện có • Lập kịch bản cơ sở hạ tầng
Bài tập
Bài tập 1 – Kịch bản Python tiêu thụ API
Kịch bản:
• Thu thập dữ liệu từ một API
• Xử lý thông tin
• Tạo báo cáo
Bài tập 2 – Tự động hóa thu thập dữ liệu
Kịch bản Python:
• Thu thập thông tin hệ thống
• Tạo báo cáo JSON hoặc CSV
Phần 6: Xây dựng Công cụ CLI cho Quản trị
Nội dung
Cấu trúc một dự án Python
• Tổ chức mã nguồn
• Tái sử dụng hàm
• Mô-đun và gói (packages)
Tạo công cụ CLI • Đối số dòng lệnh • Output có cấu trúc • Xử lý lỗi
Bài tập cuối cùng
Người tham gia sẽ xây dựng một công cụ tự động hóa CLI bằng Python:
• Phân tích các tệp nhật ký
• Xác định lỗi
• Tạo thống kê
• Có thể chạy từ dòng lệnh
Kết quả Khóa học
Cuối khóa học, người tham gia sẽ có thể:
• Chuyển đổi các kịch bản shell thành kịch bản Python
• Sử dụng Python để tự động hóa các tác vụ hệ thống
• Xử lý nhật ký và dữ liệu phức tạp
• Xây dựng các công cụ CLI cho quản trị hệ thống Unix
Yêu cầu
Điều kiện tiên quyết
- Kiến thức cơ bản về hệ điều hành Unix/Linux
- Sự quen thuộc với việc sử dụng dòng lệnh (shell/Bash)
- Kinh nghiệm viết các kịch bản shell đơn giản (ví dụ: vòng lặp, điều kiện, thao tác tệp)
- Hiểu biết chung về các khái niệm quản trị hệ thống là rất có lợi
- Không yêu cầu kinh nghiệm trước đó với Python
Đối tượng hướng đến
- Quản trị viên hệ thống làm việc trong môi trường Unix/Linux
- Kỹ sư DevOps muốn cải thiện khả năng tự động hóa
- Kỹ sư và chuyên gia kỹ thuật sử dụng lập trình shell cho các tác vụ hàng ngày
- Chuyên gia CNTT quan tâm đến việc chuyển đổi từ Bash sang Python
- Nhà phát triển làm việc trong môi trường Unix muốn tự động hóa quy trình làm việc hiệu quả hơn
Đánh giá (2)
Các bài tập thực hành liên quan đến nội dung thực sự giúp hiểu rõ hơn về mỗi chủ đề. Ngoài ra, phong cách bắt đầu lớp học bằng bài giảng và tiếp tục với các bài tập thực hành là tốt và hữu ích để liên kết với nội dung đã được trình bày trước đó.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Khóa học - Introduction to Data Science and AI using Python
Dịch thuật bằng máy
Các ví dụ/bài tập hoàn toàn phù hợp với lĩnh vực của chúng tôi
Luc - CS Group
Khóa học - Scaling Data Analysis with Python and Dask
Dịch thuật bằng máy