Để setup vps hệ điều hành Linux cài đặt rclone thì các bạn có thể làm theo hướng dẫn sau:
>>> Tham khảo dịch vụ Vps: https://inet.vn/vps
1. Cài đặt rclone
cd /root/
wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
\cp rclone-v*-linux-amd64/rclone /usr/sbin/
rm -rf rclone-*
2. Kết nối google drive với rclone
rclone config
No remotes found – make a new one, nhập n -> Enter để tạo kết nối mới.
Ở dòng name bạn nhập remote để đặt tên cho kết nối, bạn có thể chọn tên nào cũng được. (tên này đặt sao thì trong .sh dùng vậy). Ví dụ: “remote:path_backup/$TIMESTAMP” thì name là “remote”
Một danh sách các dịch vụ cloud xuất hiện, chọn số 15 ứng với Google Drive rồi nhấn Enter.
Ở 2 dòng tiếp theo Client ID và Client Secret hãy để trống nhấn Enter.
Mục Scope that rclone should use when requesting access from drive chọn 1 – drive
Tiếp theo, để trống với ID of the root folder và Service Account Credentials JSON file path
Khi được hỏi Use auto config? nhập n nhấn Enter. Rclone sẽ đưa ra một đường link, bạn có thể click thẳng vào đó hoặc copy rồi paste vào trình duyệt.
Sau đó bạn cấp phép quyền truy cập cho rclone, sao chép mã dán lại vào phần config.
3. Chạy lệnh rclone backup bằng tay
chmod +x /root/file_sh.sh
/root/file_sh.sh
Thông tin file .sh
#!/bin/bash
SERVER_NAME=1_POLYXGO_BACKUP
TIMESTAMP=$(date +"%F")
BACKUP_DIR="/root/backup/$TIMESTAMP"
MYSQL=/usr/bin/mysql
MYSQLDUMP=/usr/bin/mysqldump
SECONDS=0
mkdir -p "$BACKUP_DIR/mysql"
echo "Bat dau backup datatabse";
databases=`$MYSQL -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|mysql)"`
for db in $databases; do
$MYSQLDUMP --force --opt $db | gzip > "$BACKUP_DIR/mysql/$db.gz"
done
echo "Hoan tat backup databases";
echo '';
echo "Bat dau backup website";
# Loop through /home directory
for D in /home/*; do
if [ -d "${D}" ]; then #If a directory
domain=${D##*/} # Domain name
echo "- "$domain;
zip -r $BACKUP_DIR/$domain.zip /home/$domain/public_html/ -q -x /home/$domain/public_html/wp-content/cache/**\* #Không nên thư mục cache
fi
done
echo "Hoan tat backup website";
echo '';
echo "Bat dau backup nginx configuration";
cp -r /etc/nginx/conf.d/ $BACKUP_DIR/nginx/
echo "Hoan ta backup nginx";
echo '';
size=$(du -sh $BACKUP_DIR | awk '{ print $1}')
echo "Xu ly upload du lieu backup len Google Drive";
/usr/sbin/rclone move $BACKUP_DIR "polyxgo_drive:1_POLYXGO_BACKUP/polyxgo.com/polyxgo/$TIMESTAMP" >> /var/log/rclone.log 2>&1
# Clean up
rm -rf $BACKUP_DIR
/usr/sbin/rclone -q --min-age 2w delete "polyxgo_drive:1_POLYXGO_BACKUP/polyxgo.com/polyxgo" #Xoá tất cả backup trước đó 2 tuần.
/usr/sbin/rclone -q --min-age 2w rmdirs "polyxgo_drive:1_POLYXGO_BACKUP/polyxgo.com/polyxgo" #Xoá tất cả backup trước đó 2 tuần.
/usr/sbin/rclone cleanup "polyxgo_drive:" #Cleanup
echo "Hoan tat upload du lieu backup";
echo '';
duration=$SECONDS
echo "Tong dung luong $size, thoi gian xu ly $(($duration / 60)) phut va $(($duration % 60)) giay."
4. Tạo cronjob tự động backup hàng ngày?
Cronjob cài đặt rclone tự động backup dữ liệu vào 3h sáng. EDITOR=nano crontab -e Dán nội dung sau vào cửa sổ Terminal 0 3 * * * /root/file_sh.sh > /dev/null 2>&1 Nhấn Ctrl+O, Enter để lưu. Ctrl+X để thoát.
