1. Cập nhật và Nâng cấp gói hệ thống
Mục đích: Đảm bảo hệ thống được cập nhật với các bản vá bảo mật và cập nhật phần mềm mới nhất.
Script:
#!/bin/bash
echo "Updating system packages..."
sudo apt update && sudo apt upgrade -y
echo "System updated successfully!"
Giải thích:
apt update
làm mới danh sách các gói có sẵn.apt upgrade -y
tự động cài đặt các phiên bản cập nhật của các gói.sudo
được sử dụng để chạy các lệnh với quyền quản trị.
2. Giám sát không gian đĩa
Mục đích: Kiểm tra việc sử dụng đĩa và cảnh báo nếu việc sử dụng vượt quá ngưỡng quy định.
Script:
#!/bin/bash
THRESHOLD=80
echo "Checking disk usage..."
USAGE=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
if [ "$USAGE" -gt "$THRESHOLD" ]; then
echo "Disk usage is above $THRESHOLD%! Current usage: $USAGE%"
else
echo "Disk usage is below $THRESHOLD%. Current usage: $USAGE%"
fi
Giải thích:
df /
kiểm tra không gian đĩa cho phân vùng gốc.awk
vàsed
trích xuất và làm sạch phần trăm sử dụng.- Lệnh
if
so sánh việc sử dụng với ngưỡng và in ra cảnh báo nếu vượt quá.
3. Tự động sao lưu tệp
Mục đích: Sao lưu một thư mục đến một vị trí cụ thể.
Script:
#!/bin/bash
SOURCE="/path/to/source"
DEST="/path/to/backup"
DATE=$(date +%Y-%m-%d)
echo "Backing up files from $SOURCE to $DEST/$DATE..."
mkdir -p "$DEST/$DATE"
cp -r "$SOURCE"/* "$DEST/$DATE"
echo "Backup completed!"
Giải thích:
- Thay thế
/path/to/source
và/path/to/backup
bằng các đường dẫn thực tế. date +%Y-%m-%d
tạo một dấu thời gian cho thư mục sao lưu.mkdir -p
tạo thư mục sao lưu nếu nó không tồn tại.cp -r
sao chép đệ quy tất cả các tệp.
4. Triển khai một máy chủ web đơn giản
Mục đích: Nhanh chóng thiết lập một máy chủ web với Nginx.
Script:
#!/bin/bash
echo "Installing Nginx..."
sudo apt update
sudo apt install -y nginx
echo "Starting Nginx service..."
sudo systemctl start nginx
sudo systemctl enable nginx
echo "Nginx web server is up and running!"
Giải thích:
- Cài đặt Nginx, một máy chủ web phổ biến.
systemctl
khởi động và cho phép Nginx chạy khi khởi động.
5. Thêm và quản lý người dùng
Mục đích: Tự động tạo người dùng với các đặc quyền được xác định trước.
Script:
#!/bin/bash
USERNAME="newuser"
PASSWORD="password123"
GROUP="sudo"
echo "Creating user $USERNAME..."
sudo useradd -m -s /bin/bash "$USERNAME"
echo "$USERNAME:$PASSWORD" | sudo chpasswd
echo "Adding $USERNAME to $GROUP group..."
sudo usermod -aG "$GROUP" "$USERNAME"
echo "User $USERNAME created and added to $GROUP!"
Giải thích:
useradd
tạo một người dùng mới.chpasswd
đặt mật khẩu người dùng.usermod -aG
thêm người dùng vào một nhóm cụ thể (ví dụ:sudo
).
6. Kiểm tra thời gian hoạt động của máy chủ
Mục đích: Hiển thị thời gian máy chủ đã chạy.
Script:
#!/bin/bash
echo "Server uptime:"
uptime
Giải thích:
uptime
hiển thị thời gian hoạt động của máy chủ, mức tải trung bình và số người dùng đã đăng nhập.
7. Kiểm tra các tiến trình đang hoạt động
Mục đích: Xác định các tiến trình tiêu tốn nhiều tài nguyên.
Script:
#!/bin/bash
echo "Top 5 processes by CPU usage:"
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -6
Giải thích:
ps
liệt kê các tiến trình với các chi tiết như PID, CPU và mức sử dụng bộ nhớ.--sort=-%cpu
sắp xếp các tiến trình theo mức sử dụng CPU theo thứ tự giảm dần.head -6
giới hạn đầu ra ở 5 tiến trình hàng đầu (cộng với tiêu đề).
8. Tự động tạo khóa SSH
Mục đích: Tạo khóa SSH để truy cập từ xa an toàn.
Script:
#!/bin/bash
KEY_NAME="id_rsa"
echo "Generating SSH key..."
ssh-keygen -t rsa -b 4096 -f "$HOME/.ssh/$KEY_NAME" -N ""
echo "SSH key generated at $HOME/.ssh/$KEY_NAME"
Giải thích:
ssh-keygen
tạo một cặp khóa RSA với 4096 bit.-f
chỉ định tên và vị trí tệp.-N ""
đặt cụm mật khẩu trống.
9. Khởi động lại một dịch vụ
Mục đích: Khởi động lại một dịch vụ nếu nó không chạy.
Script:
#!/bin/bash
SERVICE="nginx"
if ! systemctl is-active --quiet "$SERVICE"; then
echo "$SERVICE is not running. Restarting..."
sudo systemctl restart "$SERVICE"
else
echo "$SERVICE is running."
fi
Giải thích:
systemctl is-active
kiểm tra xem dịch vụ có đang chạy không.- Nếu không, script sẽ khởi động lại dịch vụ.
10. Lên lịch Cron Job
Mục đích: Tự động hóa việc lên lịch tác vụ bằng cách thêm một cron job.
Script:
#!/bin/bash
JOB="0 2 * * * /path/to/script.sh"
CRON_FILE="/tmp/mycron" # LƯU Ý: Biến này không được dùng trong script
echo "Adding cron job..."
(crontab -l 2>/dev/null; echo "$JOB") | crontab -
echo "Cron job added successfully!"
Giải thích:
- Thay thế
/path/to/script.sh
bằng script bạn muốn lên lịch. (crontab -l; echo "$JOB")
nối thêm job mới vào các job hiện có.crontab -
tải danh sách các cron job đã cập nhật.
Mẹo để chạy Scripts:
- Lưu Script: Lưu script dưới dạng tệp
.sh
(ví dụ:script.sh
). - Cấp quyền thực thi: Chạy
chmod +x script.sh
để cấp quyền thực thi cho script. - Chạy Script: Thực thi bằng cách sử dụng
./script.sh
. - Gỡ lỗi: Sử dụng
bash -x script.sh
để gỡ lỗi nếu xảy ra lỗi.
Những script này cung cấp một nền tảng vững chắc để tự động hóa các tác vụ lặp đi lặp lại trong các quy trình làm việc DevOps.