Tự động hóa các tác vụ trên server Linux giúp tiết kiệm thời gian và đảm bảo tính nhất quán. Một cách hiệu quả để thực hiện điều này là tạo một shell script (.sh) và lập lịch chạy bằng crontab. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách tạo một script sao lưu và thiết lập nó chạy tự động trên server Linux.
Bạn sẽ học được gì?
- Cách viết shell script để sao lưu dữ liệu.
- Cách lập lịch chạy bằng crontab.
- Các phương pháp tốt nhất để quản lý bản sao lưu trên Linux.
Bước 1: Viết Shell Script
Dưới đây là một ví dụ về shell script thực hiện sao lưu cơ sở dữ liệu và tệp:
#!/bin/bash
# Tạo thư mục backup
backup_dir="/home/backup/$(date +'%Y-%m')"
mkdir -p $backup_dir
# Sao lưu cơ sở dữ liệu
cd /home/source && ./vendor/bin/drush sql-dump > "$backup_dir/db_$(date +'%Y-%m-%dT%H-%M').sql.gz" --gzip
cd /home/source && ./vendor/bin/drush sql-dump > "$backup_dir/db_shared_$(date +'%Y-%m-%dT%H-%M').sql.gz" --gzip
# Sao lưu thư mục files
rsync -av --backup --suffix=.bak /home/source/web/sites/default/files/ /home/backup/files
# Xóa các file sao lưu cũ hơn 10 ngày
find /home/backup/* -type d -mtime +10 -exec rm -r {} \;
Giải thích:
- #!/bin/bash: Khai báo đây là script Bash.
- mkdir -p: Tạo thư mục theo năm và tháng nếu chưa có.
- drush sql-dump: Xuất cơ sở dữ liệu và nén bằng gzip.
- rsync: Đồng bộ hóa tệp vào thư mục sao lưu với hậu tố .bak cho tệp bị ghi đè.
- find: Xóa các bản sao lưu cũ hơn 10 ngày.
Lưu script này thành backup.sh và cấp quyền thực thi:
chmod +x backup.sh
Bước 2: Lập lịch với Crontab
Để tự động hóa script, sử dụng crontab. Mở file crontab:
crontab -e
0 2 * * * /home/backup.sh
Cú pháp Crontab:
- 0 2 * * *: Chạy lúc 2:00 sáng mỗi ngày (phút, giờ, ngày trong tháng, tháng, ngày trong tuần).
- /home/backup.sh: Đường dẫn đến script.
Lưu và thoát. Kiểm tra lịch với:
crontab -l
Bước 3: Kiểm tra Script
Chạy script thủ công để đảm bảo hoạt động:
./backup.sh
Kiểm tra thư mục sao lưu (/home/backup) để xem các tệp được tạo.
Phương pháp tối ưu
- Ghi log: Chuyển hướng đầu ra script vào file log (>> /var/log/backup.log 2>&1).
- Quyền truy cập: Đảm bảo script có quyền thực thi phù hợp.
- Dung lượng: Theo dõi dung lượng đĩa để tránh đầy server.
Kết luận
Bằng cách làm theo các bước này, bạn có thể tự động hóa việc sao lưu trên server Linux bằng shell script và crontab. Phương pháp này hiệu quả, đáng tin cậy và được sử dụng rộng rãi bởi các quản trị viên hệ thống.
Từ khóa: Script sao lưu Linux, shell script crontab, tự động hóa Linux, lập lịch crontab, hướng dẫn sao lưu server.
Ghi chú SEO
- Từ khóa chính (Primary Keywords): "Linux backup script", "shell script crontab", "script sao lưu Linux", "lập lịch crontab".
- Từ khóa phụ (Secondary Keywords): "automate tasks Linux", "server backup tutorial", "tự động hóa Linux", "hướng dẫn sao lưu server".
- Cấu trúc: Sử dụng tiêu đề (H1, H2), đoạn văn ngắn, danh sách gạch đầu dòng để tăng khả năng đọc.
- Liên kết nội bộ: Nếu có blog/site, thêm liên kết đến bài viết liên quan về Linux hoặc crontab.