
Backup tự động với rclone và cron: Bảo vệ dữ liệu không phụ thuộc cloud
rclone là công cụ dòng lệnh mạnh mẽ, đồng bộ hóa file đến hơn 40 dịch vụ lưu trữ bao gồm Amazon S3, Google Drive, Dropbox, Microsoft OneDrive, SFTP, WebDAV, Backblaze B2 và nhiều hơn nữa. Kết hợp với cron, bạn có thể thiết lập chiến lược backup tự động, định kỳ, không cần cài đặt phần mềm GUI phức tạp hay trả phí cho dịch vụ backup chuyên dụng. Bài viết hướng dẫn cài đặt rclone, cấu hình remote, viết script backup an toàn, và lên lịch chạy tự động.

Cài đặt và cấu hình rclone
Trên Linux, macOS hoặc Windows (WSL), cài đặt nhanh bằng script chính thức:
curl https://rclone.org/install.sh | sudo bash
Sau khi cài xong, chạy rclone config để tạo remote mới. Ví dụ cấu hình Google Drive:
rclone config
# Chọn n (New remote)
# Name: gdrive
# Type: drive
# Scope: drive (toàn bộ Drive)
# Root folder ID: (để trống cho thư mục gốc)
# Service account: (để trống, dùng OAuth mặc định)
# Advanced config: n
# Remote config: y (auto config - mở trình duyệt xác thực)
Quá trình sẽ mở trình duyệt, yêu cầu đăng nhập tài khoản Google và cấp quyền truy cập Drive. Token OAuth được lưu vào ~/.config/rclone/rclone.conf. Để kiểm tra: rclone lsd gdrive: sẽ liệt kê thư mục gốc trên Drive.
Đối với S3-compatible storage (AWS S3, MinIO, Wasabi, Backblaze B2), cấu hình tương tự nhưng chọn type s3, nhập access_key_id, secret_access_key, region và endpoint nếu dùng provider không phải AWS.

Script backup tự động an toàn
Tạo file ~/scripts/backup.sh với nội dung sau, thiết kế để chạy ổn định trong cron:
#!/usr/bin/env bash
set -euo pipefail
# Cấu hình nguồn và đích
SRC="/home/user/important-data"
DEST="gdrive:Backups/$(date +%F)"
LOG="/var/log/rclone-backup.log"
# Tạo thư mục log nếu chưa có
mkdir -p "$(dirname "$LOG")"
# Chạy sync với các tham số an toàn
rclone sync "$SRC" "$DEST"
--progress
--transfers 4
--checkers 8
--retries 3
--low-level-retries 10
--stats 30s
--log-file "$LOG"
--log-level INFO
--stats-file-name-length 0
Giải thích các tùy chọn quan trọng:
sync: Làm cho đích giống hệt nguồn, xóa file ở đích nếu không còn ở nguồn. Dùngcopynếu muốn giữ file tại đích.--transfers 4: Số luồng tải song song, điều chỉnh theo băng thông.--retries 3: Thử lại tối đa 3 lần khi gặp lỗi tạm thời.--stats 30s: In tiến độ mỗi 30 giây vào file log.--log-level INFO: Mức log cân bằng giữa chi tiết và gọn gàng.
Cấp quyền thực thi: chmod +x ~/scripts/backup.sh. Kiểm tra thủ công một lần: ~/scripts/backup.sh.
Lên lịch chạy tự động với cron
Mở crontab của người dùng: crontab -e, thêm dòng sau để chạy lúc 2 giờ sáng mỗi ngày:
0 2 * * * /home/user/scripts/backup.sh >/dev/null 2>&1
Các biến thể lịch thường dùng:
- Mỗi 6 tiếng:
0 */6 * * * - Mỗi giờ:
0 * * * * - Chỉ cuối tuần:
0 2 * * 0,6
Cron chạy với môi trường tối thiểu, nên script phải dùng đường dẫn tuyệt đối cho mọi lệnh và file. Nếu rclone được cài ở /usr/bin/rclone thì không vấn đề, còn nếu cài ở /usr/local/bin/rclone hãy thêm export PATH=/usr/local/bin:$PATH vào đầu script.
Các lớp bảo vệ nâng cao
- Versioning: Bật versioning trên remote (Google Drive, S3, B2) để khôi phục file bị xóa hoặc sửa nhầm. rclone hỗ trợ
--backup-dirđể lưu bản cũ trước khi ghi đè. - Encryption: Dùng
rclone crypttạo remote mã hóa phía trên remote gốc. Dữ liệu được mã hóa AES-256 trước khi upload, key chỉ do bạn nắm giữ. Cấu hình:rclone config, chọn typecrypt, remote gốc làgdrive:Encrypted. - Dry-run trước khi sync thật: Chạy
rclone sync --dry-run "$SRC" "$DEST"để xem danh sách file sẽ thay đổi mà không thực sự ghi. - Monitoring và cảnh báo: Thêm vào script việc gửi webhook Telegram hoặc email khi hoàn thành hoặc gặp lỗi. Ví dụ dùng curl gửi tới Telegram Bot API.
- Rotate log: Thiết lập logrotate cho
/var/log/rclone-backup.logđể tránh log đầy ổ đĩa.
Kết luận
Với rclone và cron, bạn có một giải pháp backup toàn diện: miễn phí, mở, hỗ trợ hàng chục nơi lưu trữ, có khả năng mã hóa phía client, và chạy hoàn toàn tự động. Không phụ thuộc vào một nhà cung cấp cloud đơn lẻ, bạn có thể dễ dàng thay đổi đích backup hoặc thêm nhiều đích song song để tăng tính dự phòng. Hãy bắt đầu bằng một script đơn giản, sau đó gia cố dần các lớp bảo vệ nâng cao theo nhu cầu thực tế.
Nguồn tham khảo: DEV Community — Automated Backups with cron and RClone và KBeezie — Automated Off-Site Backups with rclone
