Ngày mới An Nhiên » Noted » Setup rclone hệ điều hành Linux

Setup rclone hệ điều hành Linux

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-*

Sử dụng rclone

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 IDClient 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 folderService 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.

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."

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.

Leave a Comment

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Website này sử dụng Akismet để hạn chế spam. Tìm hiểu bình luận của bạn được duyệt như thế nào.