Hơn một năm trước anh đã giới thiệu mẹo tự động sao lưu cơ sở dữ liệu và mở cửa không cần chìa hay còn gọi là ssh không cần mật khẩu. Nhưng vì bận chụp ảnh kiếm sống nên không giới thiệu ứng dụng cuối cùng được. Nay nhân lúc đợi người hỏi mua ống kính, anh mới chụp được ảnh minh hoạ mà viết bài được.
Đề bài: Anh có một cái VPS Linux ở địa chỉ kiểu Hollywood là 1.22.333.4444 dùng để chạy một số website. Anh muốn cơ sở dữ liệu và các tập tin mới hàng ngày sẽ được tự động tải về máy tính ở nhà mình. Anh phải làm gì?
Bài làm
Đầu tiên, anh sẽ phải tự động sao lưu cơ sở dữ liệu trên máy chủ. Giả sử, anh lưu vào thư mục /home/username/backup
. Còn DocumentRoot
của các website đều nằm trong /var/www/html
.
Và anh cũng đã làm mấy bước đơn giản để ssh vào máy chủ từ xa mà không cần mật khẩu.
Sau đó, ở trên máy của mình, anh viết đoạn mã này và lưu vào ~/bin/vps-backup.sh
.
# Cơ sở dữ liệu
cd /home/username/bin/
echo "########### SAO LƯU CƠ SỞ DỮ LIỆU ###########"
rsync -rP --update username@1.22.333.4444:backup/ /home/username/vpsBackup/db
# Dữ liệu website
echo "########### SAO LƯU DỮ LIỆU WEBSITE ###########"
rsync -rP --update --exclude "cache/supercache/" username@1.22.333.4444:/var/www/html/ /home/username/vpsBackup/html
echo "Xong: " $(date +"%Y-%m-%d %H:%M:%S") >> vps-backup.log
Anh không quên chmod +x ~/bin/vps-backup.sh
và chạy thử.
Nếu chạy thử thành công thì anh gõ crontab -e
hẹn giờ tự động chạy đoạn mã này, giả sử vào lúc bắt đầu ngày mới, tức là 0 giờ 0 phút:
0 0 * * * /home/username/bin/vps-backup.sh
Thế là xong.
Góc khoe của
Nếu để ý thì các anh chị em sẽ nhận ra bảng mạch trong ảnh ở đầu bài là RaspberryPi 3 model B. Anh mua cái này hơn ba năm nay rồi vất xó theo đúng nghĩa đen và nó vẫn chăm chỉ làm việc, trong đó có cái nhiệm vụ sao lưu cao cả này.
Bình luận