Trong bài viết trước mình có giới thiệu cách Hướng dẫn tự động backup code và database sang một server/VPS khác. Cách đó thực hiện rất tốt nhưng nếu bạn không muốn bỏ tiền ra mua một VPS để backup thì bạn có thể tận dụng tài khoản Dropbox để backup dữ liệu cho VPS của mình. Dữ liệu ở đây bao gồm cả code và database .
Mục Lục Nội Dung:
Trước tiên ta tìm hiểu Dropbox là gì nhé:
Dropbox là dịch vụ sao lưu, lưu trữ dữ liệu trực tuyến với khả năng đồng bộ theo thời gian thực và tự động thực hiện sao lưu.
Khi đăng ký một tài khoản free, chúng ta sẽ có 2 GB để lưu trữ dữ liệu. Và chúng ta có thể tăng dung lượng miễn phí này thành 20 GB bằng cách giới thiệu bạn bè sử dụng này qua link của mình.
Sau đây mình sẽ hướng dẫn các bạn tận dụng tài khoản Dropbox để sao lưu dữ liệu cho VPS của mình. Cách thực hiện rất đơn giản, chúng ta mất mấy phút để hoàn thành việc cài đặt và thiết lập thôi.
Chúng ta cần có một tài khoản Dropbox.
Bạn có thể đăng ký ở : http://dropbox.com
Cài đặt Dropbox trên VPS
Tùy theo phiên bản hệ điều hành Linux của VPS bạn là bản 32 bit hay 64 bit mà ta dùng lệnh dưới để cài đặt:
Lệnh cài Dropbox dành cho 64 bit:
wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86_64"
Lệnh cài Dropbox dành cho 32 bit:
wget -O dropbox.tar.gz "http://www.dropbox.com/download/?plat=lnx.x86"
Sau khi download Dropbox về VPS hoàn thành. Ta tiếp tục lệnh giải nén :
tar -xvzf dropbox.tar.gz
và chạy dropbox
./.dropbox-dist/dropboxd
sau khi chạy dropbox, bạn sẽ thấy một đoạn text với nội dung sau:
This computer isn't linked to any Dropbox account... Please visit https://www.dropbox.com/cli_link?host_id=abcxyz to link this device.
Bây giờ bạn copy link tương tự như
https://www.dropbox.com/cli_link?host_id=abcxyz
vào trình duyệt, đăng nhập bằng tài khoản Dropbox để xác thực kết nối VPS và Dropbox. đăng nhập xong bạn sẽ được thông báo:
Đăng nhập trên trình duyệt thành công thì trên của sổ dòng lệnh SSH sẽ xuất hiện :
This computer is now linked to Dropbox. Welcome mr ABC
Ta thoát ra bằng lệnh Ctrl + C
Sau khi bạn thực hiện xong bước này, toàn bộ dữ liệu giữa VPS và tài khoản Dropbox sẽ được kết nối hai chiều. Nghĩa là bạn thay đổi nội dung file trong folder Dropbox
trên VPS thì trên VPS cũng thay đổi theo và ngược lại.
Thực hiện backup VPS tới Dropbox
Các folder và file nằm trong /root/Dropbox trên VPS sẽ được backup lên Dropbox.
Nhưng do đường dẫn của các file website và database của chúng ta nằm ở các thư mục khác. Vì vậy chúng ta cần symlink các folder này tới folder của Dropbox. Trong bài viết này mình dùng đường dẫn các folder website và database theo VPSSIM. Trên các VPS của bạn, nếu đường dẫn khác bạn thay thế tương đương nhé.
Trước tiên ta tạo folder BackupVPS chứa sao lưu VPS
mkdir /root/Dropbox/BackupVPS
Tiếp theo symlink folder home chứa tất cả code các website:
ln -s /home/ /root/Dropbox/BackupVPS/home
Bây giờ trong tài khoản Dropbox cuả bạn, sẽ có folder BackupVPS , trong đó có toàn bộ các bản sao lưu của /home trên VPS.
Vậy là xong phần backup code. Tiếp theo đến phần backup database.
I. Trường hợp database của bạn dùng MyISAM làm engine mặc định.
( Nếu bạn sử dụng VPSSIM trên VPS thì database được đặt MyISAM làm engine mặc định)
Với trường hợp này, bạn chỉ cần symlink folder mysql trên VPS vô BackupVPS là được. Khi cần phục hồi, copy luôn cả folder sang chỗ cũ là phục hồi xong.
ln -s /var/lib/mysql /root/Dropbox/BackupVPS/mysql
II . Trường hợp database bạn dùng engine khác như INNODB
Tạo file backup_database.sh trong /home với nội dung sau:
#!/bin/bash mysqldump -u [mysqlusername] -p[pass] mysqldatabasename > /root/BackupVPS/mysql/mydatabasename_`data ' %m-%d-%Y'`.sql
tiếp theo tạo một cronjob cho bash script này auto run lúc 3h30 hàng ngày bằng lệnh:
crontab -l > file; echo '30 3 * * * /home/backup_database.sh >/dev/null 2>&1' >> file; crontab file
Chạy Dropbox
Ta chạy Dropbox bằng cách thực hiện lần lượt 3 lệnh sau:
wget -O ~/dropbox.py "http://www.dropbox.com/download?dl=packages/dropbox.py" chmod 755 ~/dropbox.py ~/dropbox.py start
Tạo Cronjob để chắc chắn Dropbox luôn chạy trong bất cứ trường hợp nào
( như restart lại VPS, tắt VPS rồi bật lại, crash phần mềm nào đó )
Bạn tạo một cronjob bằng lệnh sau:
crontab -l > file; echo '@reboot ~/dropbox.py start >/dev/null 2>&1' >> file; crontab file
Chạy lệnh xong, bạn gặp “no crontab for root ” thì không vấn đề gì nhé.
Chú ý: Bước này cực kỳ quan trọng, vì sau khi bạn khởi động lại VPS, Dropbox sẽ bị tắt và không tự động bật lại.
Các lệnh Kiểm Tra .
Để kiểm tra xem cronjob để Dropbox luôn chạy đã add thành công chưa. Ta dùng lệnh
crontab -l
Kiểm tra trạng thái Dropbox
~/dropbox.py status
Để stop Dropbox backup ta dùng lệnh
~/dropbox.py stop
thiếu meta description rồi đại ca