Danh sách bài viết trong series Bashscript từ cơ bản đến áp dụng vào DevOps
- Bài 1. Cơ Bản Bash Script trong DevOps
- Bài 2. Điều Kiện trong Bash DevOps: Xử Lý Logic Cơ Bản
- Bài 3. Vòng Lặp trong Bash DevOps: Tự Động Hóa Lặp Lại Hiệu Quả
- Bài 4. Xử Lý File trong Bash DevOps: Đọc, Ghi và Quản Lý Hiệu Quả
- Bài 5. Text Processing trong Bash DevOps: Grep, Awk, Sed Hiệu Quả
- Bài 6. Function trong Bash DevOps: Tái Sử Dụng Code Hiệu Quả
- Bài 7. Quản Lý Biến và Môi Trường trong Bash DevOps
- Bài 8. Cron Job trong Bash DevOps: Tự Động Hóa Theo Lịch Hiệu Quả
- Bài 9. Debug trong Bash DevOps: Tìm và Sửa Lỗi Hiệu Quả
- Bài 10. Error Handling Bash DevOps: Xử Lý Ngoại Lệ Hiệu Quả
- Bài 11. Bash trong CI/CD DevOps: Tích Hợp Pipeline Hiệu Quả
- Bài 12. Quản Lý Hệ Thống với Bash DevOps: Theo Dõi và Can Thiệp Hiệu Quả
- Bài 13. Tự Động Hóa SSH với Bash DevOps: Quản Lý Multi-Server Hiệu Quả
- Bài 14. Bash và Docker trong DevOps: Quản Lý Container Hiệu Quả
- Bài 15. Monitoring với Bash DevOps: Báo Cáo Hệ Thống Hiệu Quả
- Bài 16. Bash Nâng Cao: Parallel Execution trong DevOps Hiệu Quả
- Bài 17. Bash và API trong DevOps: Gọi và Xử Lý API Hiệu Quả
- Bài 18. Bash và Cloud CLI trong DevOps: Quản Lý Cloud Hiệu Quả
- Bài 19. Bash và Security trong DevOps: Bảo Mật Script Hiệu Quả
- Bài 20. Best Practice trong Bash DevOps: Làm Chủ Script Hiệu Quả
Bài 1: Cơ Bản Bash Script – Hiểu và Viết Script Đầu Tiên trong DevOps
Nếu bạn mới bước chân vào DevOps hoặc đã quen với việc gõ lệnh trên terminal, Bash chắc chắn là thứ bạn sẽ đụng đến hàng ngày. Từ kiểm tra dung lượng disk, chạy lệnh lặp lại, đến tự động hóa task trong pipeline – Bash là “con dao Thụy Sĩ” trong túi đồ nghề của bạn. Trong bài đầu tiên của series Bash Script Chuyên Sâu cho DevOps, tôi sẽ dẫn bạn qua những bước cơ bản nhất: Bash là gì, cách dùng biến Bash, lệnh cơ bản Bash, và thực hành viết script đầu tiên. Đây là những gì tôi học được từ thực tế, không phải lý thuyết suông đâu nhé!
Bash Là Gì?
Bash: Shell và Hơn Thế Nữa
Bash (Bourne Again Shell) là một shell phổ biến trên Linux/Unix, vừa là nơi bạn gõ lệnh, vừa là ngôn ngữ script để tự động hóa.
- Shell: Giao diện giữa bạn và hệ điều hành (VD:
ls
,cd
,rm
). - Script: Tập hợp lệnh trong file để chạy tự động, tiết kiệm thời gian.
Ví dụ: Thay vì gõ df -h
mỗi lần kiểm tra disk, bạn viết script để nó tự in kết quả – đơn giản nhưng hiệu quả.
Tại Sao Bash Quan Trọng trong DevOps?
- Tự động hóa: Từ việc nhỏ như kiểm tra log đến lớn như deploy ứng dụng.
- Nhẹ và nhanh: Không cần ngôn ngữ phức tạp như Python cho task cơ bản.
- Tích hợp: Hầu hết tool DevOps (Docker, Git, CI/CD) đều hỗ trợ Bash.
Thực tế: Tôi từng dùng Bash để kiểm tra CPU server mỗi 5 phút, phát hiện vấn đề sớm hơn cả monitoring tool – chỉ mất 10 dòng code.
Bắt Đầu với Bash Script
Viết Script Đầu Tiên
Hãy thử script đơn giản nhất – in lời chào:
- Tạo file
hello.sh
:#!/bin/bash echo "Hello DevOps!"
- Chạy script:
chmod +x hello.sh ./hello.sh
- Kết quả: “Hello DevOps!”.
#!/bin/bash
: Shebang, bảo Bash chạy script này.chmod +x
: Cấp quyền thực thi../hello.sh
: Chạy file.
DevOps: Script này là bước đầu để bạn tự động hóa – thay vì gõ lệnh lặp đi lặp lại.
Biến trong Bash (Variables)
Biến là cách lưu giá trị để dùng lại – cực kỳ hữu ích.
-
Khai báo và in:
NAME="DevOps" echo "Xin chào, $NAME!"
- Kết quả: “Xin chào, DevOps!”.
-
Biến môi trường:
echo "User hiện tại: $USER" echo "Thư mục home: $HOME"
-
Gán lệnh vào biến:
DATE=$(date) echo "Hôm nay là: $DATE"
Tips: Không có khoảng trắng quanh =
khi gán biến (VD: NAME="DevOps"
, không phải NAME = "DevOps"
).
DevOps: Biến giúp lưu config như IP server, đường dẫn file – bạn sẽ thấy sức mạnh khi tích hợp CI/CD sau này.
Lệnh Cơ Bản Bash
-
Echo: In ra màn hình.
echo "Dung lượng disk: $(df -h / | tail -1)"
$(...)
: Command substitution, chạy lệnh và lấy output.
-
Read: Lấy input từ user.
read -p "Nhập tên của bạn: " NAME echo "Chào $NAME, welcome to DevOps!"
-
Cat, Ls, Pwd: Lệnh Linux cơ bản.
cat /etc/hostname # Xem hostname pwd # In thư mục hiện tại
Thực tế: Tôi thường dùng echo
kết hợp $(date)
để thêm timestamp vào log – đơn giản mà hiệu quả.
Thực Hành: Script Kiểm Tra Hệ Thống
Script Đầu Tiên Thực Tế
Tạo check_system.sh
để kiểm tra thông tin hệ thống:
#!/bin/bash
# Biến lưu thông tin
HOST=$(hostname)
DISK=$(df -h / | tail -1 | awk '{print $5}') # Lấy % disk usage
CPU=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}') # Lấy % CPU
# In kết quả
echo "Hostname: $HOST"
echo "Disk usage: $DISK"
echo "CPU usage: $CPU%"
Chạy và Test
chmod +x check_system.sh
./check_system.sh
- Kết quả mẫu:
Hostname: my-server Disk usage: 42% CPU usage: 15.3%
Giải thích:
hostname
: Lấy tên máy.df -h | tail -1
: Lấy dòng cuối (root filesystem).awk '{print $5}'
: Trích cột % usage.top -bn1
: Chạy 1 lần để lấy CPU.
DevOps: Script này là khởi đầu để bạn tự động kiểm tra server – thêm cron (bài 8) để chạy định kỳ.
Debug Cơ Bản
-
Nếu lỗi:
bash -x check_system.sh
-x
: In từng lệnh khi chạy, giúp tìm lỗi.
-
Kiểm tra cú pháp:
bash -n check_system.sh
-n
: Không chạy, chỉ check lỗi cú pháp.
Thực tế: Tôi từng quên $
trước biến, -x
giúp tôi phát hiện ngay trong 10 giây.
Ứng Dụng trong DevOps
Tự Động Hóa Nhỏ
- Script kiểm tra disk:
DISK=$(df -h / | tail -1 | awk '{print $5}' | cut -d'%' -f1) echo "Disk usage: $DISK%"
Chuẩn Bị cho Pipeline
- Lưu output vào file:
./check_system.sh > system_status.txt
- Dùng trong CI/CD để báo cáo trạng thái server trước deploy.
Case study: Một team dùng script tương tự để kiểm tra disk trước backup, tránh lỗi do đầy dung lượng.
Best Practice
- Luôn bắt đầu bằng
#!/bin/bash
. - Dùng biến thay giá trị cứng (VD:
$HOST
thay vì “my-server”). - Comment rõ ràng để team đọc hiểu.
Kết Luận
Cơ Bản Bash Script trong DevOps là nền tảng để bạn bắt đầu tự động hóa với biến Bash, lệnh cơ bản Bash, và script đơn giản. Thực hành với check_system.sh
cho thấy Bash dễ học mà mạnh mẽ – chỉ cần vài dòng đã giải quyết được việc lặp lại. Bài tiếp theo, chúng ta sẽ khám phá Điều Kiện trong Bash – cách thêm logic để script thông minh hơn. Bạn đã sẵn sàng chưa?