Trước đây mình vẫn dùng VPS để chứa các bản backup sử dụng công cụ Duplicity hoặc Rsync. Tuy nhiên, hiện giờ đã có một phương pháp mới hiệu quả hơn, tiết kiệm hơn (Free), đó là sao lưu lên Cloud với Rclone.

backup-server-google-drive

Rclone là một công cụ đồng bộ hóa dữ liệu tương tự Rsync nhưng lại được tập trung phát triển chức năng kết nối với các dịch vụ lưu trữ đám mây.

Ưu điểm của việc sử dụng dịch vụ lưu trữ đám mây đó là tốc độ cao (do có server được đặt trên khắp thế giới), an toàn dữ liệu (không lo ngại các vấn đề phần cứng, network) và nhất là hầu hết đều Free. Mình đặc biệt thích những thứ Free!

Rclone hỗ trợ rất nhiều dịch vụ Cloud thông dụng như:

  • Google Drive
  • Amazon S3
  • Openstack Swift / Rackspace cloud files / Memset Memstore
  • Dropbox
  • Google Cloud Storage
  • Amazon Drive
  • Microsoft OneDrive
  • Hubic
  • Backblaze B2
  • Yandex Disk
  • SFTP
  • The local filesystem

Xem thêm test tốc độ upload Rclone.

Giờ thay vì backup đưa lên VPS khác để lưu trữ, mình chuyển sang sử dụng Google Drive, dung lượng miễn phí 15GB, mua thêm cũng khá rẻ, chỉ 45k/tháng là được 100GB rồi. Bạn nào có tài khoản Google Apps miễn phí nữa thì càng tuyệt vời.

Trong bài viết này sẽ có 2 phần chính, 1 là cài đặt Rclone trên VPS, 2 là sử dụng Rclone để upload backup lên Google Drive. Với những cloud service khác các bạn làm tương tự.

Việc tạo file backup toàn bộ dữ liệu VPS mình đã hướng dẫn chi tiết trong bài viết Hướng dẫn tự động sao lưu toàn bộ VPS, bài viết này sẽ chỉ tập trung vào việc cài đặt tự động upload file nén lên Google Drive. Xem thêm hướng dẫn sử dụng Rclone với Google Drive và các dịch vụ cloud khác tại Rclone Docs.

Kịch bản tự động backup như sau:

  • Sao lưu toàn bộ database MySQL, mỗi database một file .gz
  • Sao lưu toàn bộ code trong thư mục /home/domain.com/public_html/
  • Sao lưu toàn bộ cấu hình Nginx trong thư mục /etc/nginx/conf.d/
  • Tổng hợp tất cả dữ liệu vào 1 folder
  • Upload file backup lên Google Drive vào lúc 2h00 sáng
  • Tự động xóa file backup trên VPS sau khi upload xong, xóa file backup trên Cloud nếu quá 2 tuần

Giờ bắt đầu vào việc nhé.

I. Hướng dẫn cài đặt Rclone

1. Cài đặt Rclone

Rclone là một chương trình dòng lệnh nên mình sẽ down xuống rồi di chuyển file chạy đến thư mục /usr/sbin/ của VPS để sử dụng sau này.

Chú ý : Nếu bạn đã cài đặt phiên bản cũ, cũng chỉ cần chạy chuỗi lệnh dưới để update. Tham khảo Changelog các phiên bản.

– Cài đặt bản mới nhất với hệ điều hành Linux 64bit

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

– Cài đặt bản mới nhất với hệ điều hành Linux 32bit

cd /root/
wget https://downloads.rclone.org/rclone-current-linux-386.zip
unzip rclone-current-linux-386.zip
\cp rclone-v*-linux-386/rclone /usr/sbin/
rm -rf rclone-*

Link download trực tiếp các phiên bản Rclone.

Giờ bạn có thể sử dụng lệnh rclone để xem thêm thông tin sử dụng.

2. Một số câu lệnh thông dụng

Các câu lệnh sử dụng Rclone thường có dạng như sau:

rclone command <parameters> <parameters...>

Trong đó command là câu lệnh, parameters là các tham số.

Một số lệnh thông dụng khi dùng Rclone:

  • rclone config – Cấu hình kết nối đến dịch vụ cloud.
  • rclone copy – Copy files từ server đến cloud, skip nếu đã tồn tại dữ liệu.
  • rclone sync – Synchronize giữa server và cloud, chỉ update dữ liệu trên cloud mà thôi.
  • rclone move – Move files từ server lên cloud.
  • rclone delete – Xóa dữ liệu của folder.
  • rclone purge – Xóa dữ liệu của folder và toàn bộ nội dung bên trong.
  • rclone mkdir – Tạo folder.
  • rclone rmdir – Xóa folder trống tại đường dẫn.
  • rclone rmdirs – Xóa toàn bộ folder trống tại đường dẫn. Bộ đếm thời gian bao gồm:
    • ms – Milliseconds
    • s – Seconds
    • m – Minutes
    • h – Hours
    • d – Days
    • w – Weeks
    • M – Months
    • y – Years
  • rclone check – Kiểm tra dữ liệu server và cloud có đồng bộ hay không.
  • rclone ls – Liệt kê toàn bộ dữ liệu gồm size và path.
  • rclone lsd – Liệt kê toàn bộ thư mục.
  • rclone lsl – Liệt kê toàn bộ dữ liệu gồm modification time, size và path.
  • rclone size – Trả về kích thước thư mục.

Thông tin chi tiết từng lệnh bạn xem thêm ở đây.

II. Backup VPS lên Cloud với Rclone

1. Tạo kết nối với Google Drive

Đầu tiên chúng ta sẽ cấu hình kết nối Rclone với Google Drive, việc này chỉ phải làm 1 lần duy nhất. Kết nối được tạo tên remote

Kết nối SSH với VPS rồi chạy lệnh:

rclone config

Bạn sẽ nhận được thông báo: No remotes found - make a new one, nhập n rồi nhấ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.

Một danh sách các dịch vụ cloud xuất hiện, hãy chọn số 11, Google Drive rồi nhấn Enter.

Ở 2 dòng tiếp theo Client IDClient Secret bạn 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? hãy nhập n rồi nhấn Enter. Ngay lập tức, 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.

tao-ket-noi-google-drive-2

Giao diện sẽ xuất hiện như sau:

cap-quyen-cho-rclone-truy-cap-google-drive

Nhấn nút Allow để đồng ý, sau đó bạn sẽ nhận được đoạn mã verification code như hình dưới:

ma-verification-code

Quay trở lại cửa sổ SSH, copy rồi paste code này vào dòng Enter verification code> rồi nhấn Enter.

Chọn n tức no đối với Configure this as a team drive?

Rclone cần xác nhận thông tin một lần nữa, bạn nhấn y để đồng ý rồi nhấn q để thoát khỏi giao diện cấu hình kết nối.

Toàn bộ quá trình cài đặt sẽ tương tự như sau (bôi đỏ là cần nhập input):

rclone config
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> remote
Type of storage to configure.
Choose a number from below, or type in your own value
 1 / Alias for a existing remote
   \ "alias"
 2 / Amazon Drive
   \ "amazon cloud drive"
 3 / Amazon S3 Compliant Storage Providers (AWS, Ceph, Dreamhost, IBM COS, Minio)
   \ "s3"
 4 / Backblaze B2
   \ "b2"
 5 / Box
   \ "box"
 6 / Cache a remote
   \ "cache"
 7 / Dropbox
   \ "dropbox"
 8 / Encrypt/Decrypt a remote
   \ "crypt"
 9 / FTP Connection
   \ "ftp"
10 / Google Cloud Storage (this is not Google Drive)
   \ "google cloud storage"
11 / Google Drive
   \ "drive"
12 / Hubic
   \ "hubic"
13 / Local Disk
   \ "local"
14 / Mega
   \ "mega"
15 / Microsoft Azure Blob Storage
   \ "azureblob"
16 / Microsoft OneDrive
   \ "onedrive"
17 / OpenDrive
   \ "opendrive"
18 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
   \ "swift"
19 / Pcloud
   \ "pcloud"
20 / QingCloud Object Storage
   \ "qingstor"
21 / SSH/SFTP Connection
   \ "sftp"
22 / Webdav
   \ "webdav"
23 / Yandex Disk
   \ "yandex"
24 / http Connection
   \ "http"
Storage> 11
Google Application Client Id - leave blank normally.
client_id>
Google Application Client Secret - leave blank normally.
client_secret>
Scope that rclone should use when requesting access from drive.
Choose a number from below, or type in your own value
 1 / Full access all files, excluding Application Data Folder.
   \ "drive"
 2 / Read-only access to file metadata and file contents.
   \ "drive.readonly"
   / Access to files created by rclone only.
 3 | These are visible in the drive website.
   | File authorization is revoked when the user deauthorizes the app.
   \ "drive.file"
   / Allows read and write access to the Application Data folder.
 4 | This is not visible in the drive website.
   \ "drive.appfolder"
   / Allows read-only access to file metadata but
 5 | does not allow any access to read or download file content.
   \ "drive.metadata.readonly"
scope> 1
ID of the root folder - leave blank normally.  Fill in to access "Computers" folders. (see docs).
root_folder_id>
Service Account Credentials JSON file path  - leave blank normally.
Needed only if you want use SA instead of interactive login.
service_account_file>
Remote config
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine or Y didn't work
y) Yes
n) No
y/n> n
If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/oauth2/auth?access_type=offlinexxxx
Log in and authorize rclone for access
Enter verification code> 4/AABw8gMKPxxxxxxxxxx
Configure this as a team drive?
y) Yes
n) No
y/n> n
--------------------
[remote]
type = drive
client_id =
client_secret =
scope = drive
root_folder_id =
service_account_file =
token = {"access_token":"xxx","token_type":"Bearer","refresh_token":"1/xxx","expiry":"2018-05-16T10:55:03.488381196+07:00"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:

Name                 Type
====                 ====
remote               drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q

Vậy là xong, giờ bạn có thể test với lệnh liệt kê thư mục trong kết nối remote:

rclone lsd remote:

2. Tạo kết nối với Amazon Drive/One Drive/Yandex

Hiện nay, bên cạnh GG Drive, các Cloud khác cũng dần trở nên phổ biến và có nhiều ưu đãi cho người dùng. Việc tạo kết nối tới Amazon Drive/OneDrive/Yandex tương tự GG Drive, chỉ khác biệt bước lấy access_token.
Lưu ý: Đối với OneDrive cần chọn đúng loại tài khoản cá nhân Personal/doanh nghiệp Bussiness.

Việc xác thực được thực hiện qua remote machine có trình duyệt (ví dụ máy tính của bạn) với lệnh rclone authorize "tên_cloud".

Ví dụ cụ thể OneDrive, đến bước xác thực:

Microsoft App Client Id - leave blank normally.
client_id>
Microsoft App Client Secret - leave blank normally.
client_secret>
Remote config
Choose OneDrive account type?
 * Say b for a OneDrive business account
 * Say p for a personal OneDrive account
b) Business
p) Personal
b/p> p
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> n
For this to work, you will need rclone available on a machine that has a web browser available.
Execute the following on your machine:
        rclone authorize "onedrive"

Chạy lệnh rclone authorize "onedrive" tại máy đang sử dụng để lấy access_token.

  1. Tải Rclone về máy cá nhân (bản cho Windows/OSX) tại Rclone Downloads. Cụ thể, WindowsAMD64 – 64 Bit được rclone-v1.42-windows-amd64. Bên trong có file rclone.exe để chạy trên cửa sổ lệnh. Ví dụ đường dẫn file D:\Rclone/rclone.exe
  2.  Mở ứng dụng CMD của Windows (Run – CMD) rồi chạy lệnh trên với đường dẫn file. Ví dụ, D:\Rclone\rclone.exe authorize "onedrive"
  3. Browser bật ra yêu cầu bạn đăng nhập để xác thực. Thành công sẽ hiện thông báo Success. Go back to rclone to continue trên trình duyệt. Quay lại ứng dụng CMD bạn copy access_token để xác thực bên VPS.
C:\Users\HocVPS>D:\Rclone\rclone.exe authorize "onedrive"

Choose OneDrive account type?
* Say b for a OneDrive business account
* Say p for a personal OneDrive account
b) Business
p) Personal
b/p> p
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Paste the following into your remote machine --->
{"access_token":"EwD4Aq1DBAAUcSSzoTJJxxx","expiry":"2018-05-16T11:43:25.3184173+07:00""}
<---End paste

Chú ý,  access_token là một chuỗi kí tự liền mạch nên khi copy từ CMD bạn paste qua trình chỉnh sửa như EmEditor hay Notepad++ để loại bỏ hoàn toàn các kí tự thừa gây cách dòng.

3. Script backup toàn bộ VPS và upload lên Cloud

Trong bài Hướng dẫn tự động sao lưu toàn bộ VPS mình đã chia sẻ script tự động backup VPS, tuy nhiên trong bài này mình sẽ chỉnh sửa lại một chút, để script tự động upload lên Cloud sau khi tạo xong file nén.

– Script hoạt động với Rclone phiên bản 1.35 trở lên.
– Kết nối Rclone với Cloud tên remote, nếu bạn sử dụng kết nối khác thì thay đổi tên trong script
– Nếu bạn sử dụng hệ quản trị khác HocVPS thì sử dụng script 2 và sửa thông tin đăng nhập MySQL, đường dẫn thư mục source code và thư mục Nginx Conf

Script này mình viết theo cấu trúc folder trên server do HocVPS Script quản lý.

– Tạo file backup.sh ở thư mục /root/

nano /root/backup.sh

– Copy toàn bộ nội dung script bên dưới rồi paste vào (áp dụng với HocVPS Script 2.0 trở lên)

# HocVPS Script Plugin - Backup Server and Upload to Cloud

#!/bin/bash

SERVER_NAME=HOCVPS_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 "Starting Backup Database";
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 "Finished";
echo '';

echo "Starting 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/**\* #Exclude cache
	fi
done
echo "Finished";
echo '';

echo "Starting Backup Nginx Configuration";
cp -r /etc/nginx/conf.d/ $BACKUP_DIR/nginx/
echo "Finished";
echo '';

size=$(du -sh $BACKUP_DIR | awk '{ print $1}')

echo "Starting Uploading Backup";
/usr/sbin/rclone move $BACKUP_DIR "remote:$SERVER_NAME/$TIMESTAMP" >> /var/log/rclone.log 2>&1
# Clean up
rm -rf $BACKUP_DIR
/usr/sbin/rclone -q --min-age 2w delete "remote:$SERVER_NAME" #Remove all backups older than 2 week
/usr/sbin/rclone -q --min-age 2w rmdirs "remote:$SERVER_NAME" #Remove all empty folders older than 2 week
/usr/sbin/rclone cleanup "remote:" #Cleanup Trash
echo "Finished";
echo '';

duration=$SECONDS
echo "Total $size, $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."

# HocVPS Script Plugin - Backup Server and Upload to Cloud
# Version: 1.1
#!/bin/bash

. /etc/hocvps/scripts.conf

SERVER_NAME=HOCVPS_BACKUP

TIMESTAMP=$(date +"%F")
BACKUP_DIR="/root/backup/$TIMESTAMP"
MYSQL_USER="root"
MYSQL=/usr/bin/mysql
MYSQL_PASSWORD=$mariadbpass
MYSQLDUMP=/usr/bin/mysqldump
SECONDS=0

mkdir -p "$BACKUP_DIR/mysql"

echo "Starting Backup Database";
databases=`$MYSQL --user=$MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|mysql)"`

for db in $databases; do
	$MYSQLDUMP --force --opt --user=$MYSQL_USER -p$MYSQL_PASSWORD $db | gzip > "$BACKUP_DIR/mysql/$db.gz"
done
echo "Finished";
echo '';

echo "Starting 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/**\* #Exclude cache
	fi
done
echo "Finished";
echo '';

echo "Starting Backup Nginx Configuration";
cp -r /etc/nginx/conf.d/ $BACKUP_DIR/nginx/
echo "Finished";
echo '';

size=$(du -sh $BACKUP_DIR | awk '{ print $1}')

echo "Starting Uploading Backup";
/usr/sbin/rclone move $BACKUP_DIR "remote:$SERVER_NAME/$TIMESTAMP" >> /var/log/rclone.log 2>&1
# Clean up
rm -rf $BACKUP_DIR
/usr/sbin/rclone -q --min-age 2w delete "remote:$SERVER_NAME" #Remove all backups older than 2 week
/usr/sbin/rclone -q --min-age 2w rmdirs "remote:$SERVER_NAME" #Remove all empty folders older than 2 week
/usr/sbin/rclone cleanup "remote:" #Cleanup Trash
echo "Finished";
echo '';

duration=$SECONDS
echo "Total $size, $(($duration / 60)) minutes and $(($duration % 60)) seconds elapsed."


Lưu ý:

  • Script trên sẽ back up toàn bộ database, mỗi database nén thành một file .gz, lưu trong thư mục mysql
  • Mỗi thư mục chứa website được nén lại thành 1 file .zip
  • Toàn bộ cấu hình Nginx của các website được lưu trong thư mục nginx
  • SERVER_NAME mặc định là HOCVPS_BACKUP, nếu muốn thay đổi folder trên Cloud bạn hãy thay đổi tham số này.
  • Muốn điều chỉnh thời gian xóa file backup, bạn sửa thông số ở dòng deletermdirs. Hiện tại, tự động xóa file/folder cũ hơn 2 tuần.

– Nhấn Ctrl+O, Enter để lưu và Ctrl+X để thoát.

– Phân quyền cho script

chmod +x /root/backup.sh

– Vậy là xong rồi đó, giờ bạn có thể test lại bằng cách chạy lệnh:

/root/backup.sh

Thử kiểm tra trên Cloud xem có thư mục mới với dữ liệu backup chưa nhé, hoặc test với lệnh:

rclone lsl remote:HOCVPS_BACKUP

Nếu không có vấn đề gì sẽ thấy kết quả trả về có một thư mục là ngày hiện tại, bên trong có chứa file nén website (.zip), cấu hình Nginx (.conf) và database (.gz).

4. Tạo cronjob tự động backup hàng ngày

Giờ mình sẽ cho script tự động chạy lúc 2h00 sáng.

EDITOR=nano crontab -e

Dán nội dung sau vào cửa sổ Terminal

0 2 * * * /root/backup.sh > /dev/null 2>&1

Nhấn Ctrl+O, Enter để lưu và Ctrl+X để thoát

Vậy là xong, cứ 2h sáng hàng ngày script sẽ tự động chạy, backup toàn bộ dữ liệu của VPS rồi upload lên Cloud. Đồng thời, dữ liệu backup trên VPS sẽ được xóa luôn sau khi upload xong.

Xem thêm hướng dẫn sử dụng cronjob.

III. Tải file backup từ Cloud xuống VPS

Cách đơn giản nhất để bạn khôi phục lại dữ liệu đó là tải file backup từ Cloud xuống máy tính, rồi tùy theo nhu cầu mà up trở lại lên VPS. Tuy nhiên, nếu muốn tải trực tiếp file backup về VPS, bạn có thể sử dụng luôn Rclone với câu lệnh copy.

Ví dụ tham khảo:

rclone copy "remote:/HOCVPS_BACKUP/2017-11-01" /root/

Lệnh trên sẽ copy folder 2017-11-01 trong thư mục HOCVPS_BACKUP trên Cloud về thư mục /root/ của VPS. Tốc độ upload và download từ Cloud đều rất nhanh.
Sau khi copy dữ liệu backup về VPS, bạn tiến hành giải nén file zip, copy thư mục web và nginx về đúng vị trí đồng thời tiến hành import database.

IV. Tổng kết

Công việc backup VPS/Server là việc vô cùng quan trọng, mình đã từng mất toàn bộ dữ liệu không khôi phục được do ấn nhầm Rebuild và chủ quan không backup. Hi vọng với bài hướng dẫn chi tiết này, các bạn sẽ có thêm phương pháp mới tiết kiệm và hiệu quả hơn.

Giờ đến lượt các bạn làm theo đó, cần hỗ trợ gì thêm hoặc góp ý gì cứ comment bên dưới nhé.

Tagged:

Comment của bạn

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

965 Comments

    1. Việt Phương Moderator

      Bỏ dòng . /etc/hocvps/scripts.conf
      Sửa các dòng 11,13,14. Nói chung là toàn bộ đoạn backup Database bạn lỗi không thực hiện được, cần tự sửa theo cấu hình MySQL của hệ thống

  1. Nam Dang 28 comment

    Mình chỉ muốn backup 1 hoặc 1 số website trên VPS đó thì thế nào ạ? Vì chỉ có những web này là nội dung cập nhật hàng ngày nên cần backup thường xuyên.

    1. Việt Phương Moderator

      Bạn loại trừ những website đó trong script, phần -x đó
      Còn phần database bạn loại trừ tên những database đó ra, phần -Ev “() đó

      1. Nam Dang 28 comment

        Cảm ơn ad nhiều. Mình có thể tạo được 2 script được không nhỉ: 1 backup những site thường xuyên, 1 backup những site ít dùng?

  2. Quan Nguyên Phát 52 comment

    Mình đang dùng HocVPS Scrip, nếu mình muốn chuyển tất cả dữ liệu từ 1 sever Vultr sang 1 Server Vultr khác thì có thể áp dụng cách này không? Hay dùng các nào bạn. Có cách nào chuyển dữ liệu qua server mới mà chỉ cần trỏ domain về IP mới thì sử dụng được ngay không, hay phải backup và restore từng website. Do trên Server đang dùng có nhiều website, và mình cấu hình Nigx cũng nhiều.
    Cảm ơn bạn.

    1. Việt Phương Moderator

      Cách Rclone này sang server mới bạn cũng vẫn phải restore từng website mà. Hiện tại không có cách nào đâu. Linux không phải như Windows để bạn ghost lại rồi bung ra nguyên xi
      Hiện tại mình không có cách nào để chỉ cần trỏ domain về IP là dùng luôn. Vẫn phải thủ công restore. Plugin Duplicator bên WP thì cũng là giúp bạn thủ công nhanh hơn, ít thao tác hơn

    2. Nam Dang 28 comment

      Cảm ơn ad nhiều. Mình có thể tạo được 2 script được không nhỉ: 1 backup những site thường xuyên, 1 backup những site ít dùng?

    1. Việt Phương Moderator

      Có thư mục trống, không phải website trong /home thì nó sẽ báo thế và bỏ qua, làm tiếp với thư mục khác thôi bạn

        1. Việt Phương Moderator

          Tất nhiên là vậy. Nhưng ngoài thư mục domain có các thư mục không phải domain thì script sẽ bỏ qua không nén

          1. Trinh Khue 4 comment

            nhưng quan trọng là thư mục có main cũng ko đc nén luôn mà 🙁

          2. Việt Phương Moderator

            Cho mình kết quả của
            1. ls -al /home
            2. Nội dung script của bạn
            3. Full log khi chạy backup

  3. Thai 7 comment

    Làm thế nào để không tự động xóa file backup trên cloud sau 2 tuần ??

    1. Việt Phương Moderator

      Bạn bỏ dòng code xóa file đi. Trong script mình có note theo mỗi đoạn code mà

  4. Quang 25 comment

    File DB backup của mình nó tự chia ra 2 file xxx.gz và xxx1.gz thì làm sao để restore db vậy ad

    1. Việt Phương Moderator

      Có thể bạn có tồn tại 2 database như thế. Bạn kiểm tra database trong MySQL cũng như backup thủ công database thì kết quả như thế nào

    1. Việt Phương Moderator

      Bạn chạy chuỗi lệnh cài đặt là được nhé. Với config nếu vẫn lưu thì bạn rclone config rồi delete remote cũ đi là xong

      1. Viet_Nguyen 10 comment

        mình chạy lại lệnh nó vẫn vậy admin ơi ? tức là mình sử dụng câu lệnh: /root/backup.sh thì nó mới hiện ra file BACK_UP ngày đó ở driver. Chứ nó ko tự động backup dc.

        Mình đã Tạo cronjob tự động backup hàng ngày như ở trên admin hướng dẫn và test câu lệnh: EDITOR=nano crontab -e thì nó đã xuất hiện: 0 2 * * * /root/backup.sh > /dev/null 2>&1

        Nhưng ko hiểu sao nó ko tự động backup ra từng ngày dc ? admin giúp mình với ! thanks

        1. Việt Phương Moderator

          Tức bạn chạy backup thủ công /root/backup.sh thì có backup thành công lên driver.Còn không thấy nó chạy hàng ngày qua cronjob?
          1. crontab -l của bạn ra gì? và ls -al /root nữa
          2. Bạn kiểm tra nội dung /var/log/cron và /var/log/rclone.log ra vấn đề gì không

  5. web5c 7 comment

    có cách nào backup toàn bộ vps, nhưng trừ thư mục upload ko, vì thư mực này nhiều ảnh rất nặng.
    hoặc chỉ backup mình database thôi

    1. Việt Phương Moderator

      1. Bạn loại trừ thư mục đó ra, nhưng trong code có loại trừ thư mục cache đó
      2. Bạn chỉ lấy phần backup database thôi, code có note rõ mà

    1. Việt Phương Moderator

      Bạn bỏ dòng cleanup đi, one drive không hỗ trợ
      /usr/sbin/rclone cleanup "remote:" #Cleanup Trash

  6. Lý Phùng Cơ 1 comment

    Cám ơn anh. em thì dùng script của anh đẩy backup lên Backblaze B2. Bên đó đang cho 10gb miễn phí. Em dùng được gần 2 tháng rồi. thấy chất lượng cũng ổn.

  7. Bạc Đỏ 67 comment

    1. Các bash script của mình không upload được file lên cloud như google drive, yandex disk. Mặc dù có tạo được bản backup trong thư mục root/backup. CPU/Ram đều ko bị max, chỗ trống vps đủ.

    Mình dùng vps ở linode có hỏi họ thì họ đang trả lời như sau:

    Hello,

    Thanks for reaching out to us!

    We’re an unmanaged infrastructure provider so there’s a limitation to how much we can dig into this on our end as the internal configuration of your server is outside of the scope of our support team, but that being said, we’d like to try to point you in the right direction here. Could tell us a little bit more about what you’ve done to troubleshoot this on your side so far?

    One good option would be to check your logs to determine the error message and root cause of this issue.

    If you have any questions please let me know.

    2. Muốn nâng cấp rclone lên bản mới nhất thì lệnh là gì nhỉ? Của mình vẫn đang là bản 1.37, mới nhất là 1.41

    1. Việt Phương Moderator

      1. Bạn upgrade lên phiên bản mới nhất đi rồi up thử 1 file xem sao
      2. Trong bài hướng dẫn mình có ghi đó, bạn thực hiện theo nhé

      1. Bạc Đỏ 67 comment

        Mình đã nâng cấp lên bản 1.41, nhưng bash script chỉ chạy đến Starting Uploading Backup thì dừng.

        Cụ thể:
        Starting Backup Website
        – ****.***
        Finished

        Starting Backup Nginx Configuration
        Finished

        Starting Uploading Backup

        1. Việt Phương Moderator

          Bạn tập trung giải quyết từng vấn đề đi.
          1. Bạn có upload thủ công được lên Cloud không
          2. Bạn check từng dòng script một, chạy thủ công

          1. Bạc Đỏ 67 comment

            Đã phát hiện ra lỗi. Do mình đặt mật khẩu truy cập rclone config. Bỏ mật khẩu thì chạy được bash script

            Mình có 1 site dung lượng ~ 3GB, chạy bash script thì có những thông báo sau, site vẫn được backup lên cloud yandex:

            Starting Backup Database
            Finished

            Starting Backup Website
            – ***.****
            zip warning: No such file or directory
            zip warning: No such file or directory
            zip warning: No such file or directory
            zip warning: No such file or directory
            zip warning: No such file or directory
            zip warning: No such file or directory
            zip warning: No such file or directory
            Finished

            Starting Backup Nginx Configuration
            Finished

            Starting Uploading Backup
            /root/***.sh: line 44: Clean: command not found
            Finished

            Total 2.7G, 12 minutes and 42 seconds elapsed.

          2. Việt Phương Moderator

            Dòng 44 của script là 1 đoạn comment, hình như bạn thiếu #?

  8. Tien 3 comment

    Đã làm theo hướng dẫn mà tới bước cuối là rclone lsd remote: để test thì toàn báo lỗi như này
    Failed to create file system for “remote:”: didn’t find section in config file. Có bạn nào hỗ trợ mình cái này ko

  9. sinhle 20 comment

    giờ google thành số 11 rồi. và tới bước này không giống nữa

    client_id>
    Google Application Client Secret – leave blank normally.
    client_secret>
    Scope that rclone should use when requesting access from drive.
    Choose a number from below, or type in your own value
    1 / Full access all files, excluding Application Data Folder.
    \ “drive”
    2 / Read-only access to file metadata and file contents.
    \ “drive.readonly”
    / Access to files created by rclone only.
    3 | These are visible in the drive website.
    | File authorization is revoked when the user deauthorizes the app.
    \ “drive.file”
    / Allows read and write access to the Application Data folder.
    4 | This is not visible in the drive website.
    \ “drive.appfolder”
    / Allows read-only access to file metadata but
    5 | does not allow any access to read or download file content.
    \ “drive.metadata.readonly”
    scope>
    ID of the root folder – leave blank normally. Fill in to access “Computers” folders. (see docs).
    root_folder_id>

    Rất mong admin fix lai bài viết. tks

    1. Việt Phương Moderator

      Mình đã update bài viết. Cám ơn bạn đã theo dõi và ủng hộ HocVPS

  10. Nguyen Dinh Phu 8 comment

    Giờ là số 11 mới là Google Driver nhé ad!
    Cảm ơn vì bài viết hay

      1. Việt Phương Moderator

        Bạn đọc lại phần hướng dẫn nhé. Đều là chọn n. Và đây chắc không phải là xác thực cho Google Drive. Bạn dùng cloud nào?

          1. Việt Phương Moderator

            Google Cloud khác Google Drive nhé bạn. Và bạn làm theo đúng hướng dẫn đi

  11. Kien 11 comment

    Sao em chạy câu lệnh rclone lsd remote nó lại báo lỗi như vậy :

    2018/04/22 16:32:59 ERROR : : error listing: directory not found
    2018/04/22 16:32:59 Failed to lsd: directory not found

    Mong admin hỗ trợ!

      1. haodv 22 comment

        Mình bị lỗi tương tự như bạn Kien.

        # rclone lsl remote:HOCVPS_BACKUP
        2018/05/30 17:14:55 ERROR : : error listing: directory not found
        2018/05/30 17:14:55 Failed to lsl: directory not found

        Bạn có giải đáp rồi, nhưng mình chưa hiểu. Mong hỗ trợ

          1. haodv 22 comment

            Current remotes:

            Name Type
            ==== ====
            remote drive

            e) Edit existing remote
            n) New remote
            d) Delete remote
            r) Rename remote
            c) Copy remote
            s) Set configuration password
            q) Quit config

          2. Việt Phương Moderator

            Thế bình thường. Có thể thư mục của bạn không phải tên là HOCVPS_BACKUP
            rlcone lsd remote:

          3. haodv 22 comment

            Mình làm theo hướng dẫn tạo file nano /root/backup.sh và chạy backup vps tạo file backup như sau
            /root/backup/HOCVPS_BACKUP-2018-05-30_16-57.zip và một số folder tên ví dụ 2018-05-30_14-46
            Làm thế nào để biết thư mục nào bạn

          4. Việt Phương Moderator

            Bạn truy cập trên tài khoản Cloud là biết cấu trúc thư mục mà (trong trường hợp bạn không rõ dùng lệnh)

  12. Trất Minh 38 comment

    1 Google Driver có cài đặt đc chung nhiều rclone trên nhiều VPS khác nhau không ad? Mình tính thuê gói 100GB của gg driver mà lại chưa thử cài thêm trên VPS thứ 2 nên k biết biết được không. Cám ơn Hocvps!

    1. Việt Phương Moderator

      Được bạn nhé, để thời gian backup cách nhau ra. Ví dụ VPSA lúc 1h thì VPSB lúc 2h

  13. Tran Ba Dat 37 comment

    Hiện tại mình xài Google Drive để backup cho 1 cái VPS. Nhưng hiện tại Google Drive này đang bị khóa. Mình muốn chuyển backup lên Onedrive, thì làm thế nào để setup lại từ đầu?

    1. Việt Phương Moderator

      Bạn có thể chỉnh sửa kết nối hiện tại hoặc xóa kết nối cũ đi rồi tạo lại kết nối mới trùng tên
      # rclone config

      Current remotes:
      Name                 Type
      ====                 ====
      remote               drive
      e) Edit existing remote
      n) New remote
      d) Delete remote
      r) Rename remote
      c) Copy remote
      s) Set configuration password
      q) Quit config
      e/n/d/r/c/s/q>
      1. Tran Ba Dat 37 comment

        Mình bị lỗi này:

        Starting Backup Nginx Configuration
        Finished

        Starting Uploading Backup
        2018/03/27 21:50:48 Failed to create file system for “remote:HOCVPS_BACKUP”: didn’t find section in config file
        2018/03/27 21:50:48 Failed to create file system for “remote:HOCVPS_BACKUP”: didn’t find section in config file
        Finished

        Total 1.4G, 2 minutes and 1 seconds elapsed.

        Đã cấu hình kết nối với Onedrive đúng như trên hướng dẫn nhưng bị lỗi này, xóa remote làm lại vẫn bị y vậy 🙁

        1. Việt Phương Moderator

          Bạn tạo xong kết nối remote thì bạn test kết nối đó như thế nào? Đọc thông báo như là không có kết nối remote

          1. Tran Ba Dat 37 comment

            Thì theo hướng dẫn ở trên thì sau khi kết nối với Onedrive thì mình tạo các file đó. Sau đó chạy lệnh test thì bị như vậy.

          2. Việt Phương Moderator

            rclone config và rclone lsd remote: của bạn ra kết quả gì

          3. Tran Ba Dat 37 comment

            Nếu là config thì nó ra: remote 1 onedrive.

            Còn cái dưới thì nó ra lỗi thế này:
            rclone lsd remote:x
            2018/03/27 22:54:32 Failed to create file system for “remote:x”: didn’t find section in config file

          4. Việt Phương Moderator

            Bạn copy nguyên kết quả lệnh mình bảo đi, và onedrive bạn là Personal hay Bussiness? Bạn đã update bản Rclone mới nhất chưa

          5. Tran Ba Dat 37 comment

            Mình đã thử update rclone và delete, làm lại vẫn không được:

            # rclone lsd remote:
            2018/03/28 10:12:35 Failed to create file system for “remote:”: didn’t find section in config file
            # rclone config
            Current remotes:

            Name Type
            ==== ====
            onedr onedrive

            e) Edit existing remote
            n) New remote
            d) Delete remote
            r) Rename remote
            c) Copy remote
            s) Set configuration password
            q) Quit config
            e/n/d/r/c/s/q> q

          6. Việt Phương Moderator

            Kết nối bạn tên là onedr, bạn update lại trong nội dung script backup là được
            Mình thấy bạn mô tả tưởng là kết nối tên remote

          7. Tran Ba Dat 37 comment

            À, mình hiểu rồi. nghĩa là cái từ remote chỉ là demo cho cái tên mình đặt ra. Do mình thấy ghi ở trên là viết gì cũng được nên không biết đặt đại 1 cái tên 😀

            Mình sửa lại theo tên remote rồi, nhưng lại bị lỗi. VPS có 6 site nó up được 3 site, không có cái database nào:

            Starting Uploading Backup
            /root/backup.sh: line 44: 13706 Killed /usr/sbin/rclone move $BACKUP_DIR “remote:$SERVER_NAME/$TIMESTAMP”>> /var/log/rclone.log 2>&1
            2018/03/28 10:54:29 ERROR : Attempt 1/3 failed with 0 errors and: One drive root ” doesn’t support cleanup
            2018/03/28 10:54:29 ERROR : Attempt 2/3 failed with 0 errors and: One drive root ” doesn’t support cleanup
            2018/03/28 10:54:29 ERROR : Attempt 3/3 failed with 0 errors and: One drive root ” doesn’t support cleanup
            2018/03/28 10:54:29 Failed to cleanup: One drive root ” doesn’t support cleanup
            Finished

            Total 1.4G, 3 minutes and 51 seconds elapsed.

          8. Việt Phương Moderator

            Bạn xóa phần move lên cloud xem lỗi do không tạo được 3 site còn lại hay không up lên. Tương tự để check database
            Chủ yếu xác định lỗi ở bước tạo backup hay bước up lên cloud

          9. Việt Phương Moderator

            /root/backup.sh: line 44: 13706 Killed /usr/sbin/rclone move $BACKUP_DIR “remote:$SERVER_NAME/$TIMESTAMP”>> /var/log/rclone.log 2>&1
            Quan tâm dòng này thôi. Còn dòng cleanup là do OneDrive không hỗ trợ cleanup.
            Bạn kiêm tra /var/log/rclone.log xem như thế nào đông thời chạy backup thủ công 1-2 lần xem kết quả ntn

          10. Tran Ba Dat 37 comment

            Log thì không có log gì trong ngày hôm nay cả. Hôm qua lỗi kia thì có log, hôm nay thì không. Còn chạy lệnh backup thủ công là lệnh này à mod?

            /root/backup.sh

          11. Tran Ba Dat 37 comment

            Nó vẫn y cái lỗi đó, mình thử 4 lần rồi:

            Finished

            Starting Backup Nginx Configuration
            Finished

            Starting Uploading Backup
            /root/backup.sh: line 44: 14285 Killed /usr/sbin/rclone move $BACKUP_DIR “remote:$SERVER_NAME/$TIMESTAMP” >> /var/log/rclone.log 2>&1
            2018/03/28 14:40:55 ERROR : Attempt 1/3 failed with 0 errors and: One drive root ” doesn’t support cleanup
            2018/03/28 14:40:55 ERROR : Attempt 2/3 failed with 0 errors and: One drive root ” doesn’t support cleanup
            2018/03/28 14:40:55 ERROR : Attempt 3/3 failed with 0 errors and: One drive root ” doesn’t support cleanup
            2018/03/28 14:40:55 Failed to cleanup: One drive root ” doesn’t support cleanup
            Finished

            Total 1.5G, 4 minutes and 11 seconds elapsed.

          12. Việt Phương Moderator

            Tức là chỉ move được 1 nửa? Tổng dung lượng sau nén của bạn là bao nhiêu? Vì đây là có up được nhưng ko hết chứ không up được thì đã dễ giải quyết
            Và việc bạn chạy backup thủ công là để check được log mới sinh ra trong /var/log/rclone.log

          13. Tran Ba Dat 37 comment

            Vẫn không có log gì cả mod. Move không được 1 nửa, theo như nó ghi thì zip lại là 1.5GB, nhưng 3 file up lên thì chỉ khoảng hơn 200MB thôi.

          14. Tran Ba Dat 37 comment

            Mình mới test lại bằng Google Drive thì vẫn bình thường. Mà cái GD này có 15GB, không chứa được nhiều. Vậy có gì mình gửi VPS qua mail mod kiểm tra giúp mình với nhé.

          15. Việt Phương Moderator

            Và nếu tài khoản OneDrive bạn không có dữ liệu gì bảo mật thì gửi luôn cùng nhé

  14. Bui Thang 9 comment

    Hix mình bị như này là sao nhỉ? Admin giúp mình với, cảm ơn hocvps.

    Starting Uploading Backup
    2018/03/26 12:33:05 Failed to create file system for “remote:HOCVPS_BACKUP”: didn’t find section in config file
    2018/03/26 12:33:05 Failed to create file system for “remote:HOCVPS_BACKUP”: didn’t find section in config file
    2018/03/26 12:33:05 Failed to create file system for “remote:”: didn’t find section in config file
    Finished

  15. Minh Hưng 11 comment

    Nay nó chuyển số 10 thành số 11 là GG DRIVE :
    Type of storage to configure.
    Choose a number from below, or type in your own value
    1 / Alias for a existing remote
    \ “alias”
    2 / Amazon Drive
    \ “amazon cloud drive”
    3 / Amazon S3 (also Dreamhost, Ceph, Minio, IBM COS)
    \ “s3”
    4 / Backblaze B2
    \ “b2”
    5 / Box
    \ “box”
    6 / Cache a remote
    \ “cache”
    7 / Dropbox
    \ “dropbox”
    8 / Encrypt/Decrypt a remote
    \ “crypt”
    9 / FTP Connection
    \ “ftp”
    10 / Google Cloud Storage (this is not Google Drive)
    \ “google cloud storage”
    11 / Google Drive
    \ “drive”
    12 / Hubic
    \ “hubic”
    13 / Local Disk
    \ “local”
    14 / Microsoft Azure Blob Storage
    \ “azureblob”
    15 / Microsoft OneDrive
    \ “onedrive”
    16 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
    \ “swift”
    17 / Pcloud
    \ “pcloud”
    18 / QingCloud Object Storage
    \ “qingstor”
    19 / SSH/SFTP Connection
    \ “sftp”
    20 / Webdav
    \ “webdav”
    21 / Yandex Disk
    \ “yandex”
    22 / http Connection
    \ “http”
    Storage> 11
    Google Application Client Id – leave blank normally.
    client_id>
    Google Application Client Secret – leave blank normally.
    client_secret>
    Scope that rclone should use when requesting access from drive.
    Choose a number from below, or type in your own value
    1 / Full access all files, excluding Application Data Folder.
    \ “drive”
    2 / Read-only access to file metadata and file contents.
    \ “drive.readonly”
    / Access to files created by rclone only.
    3 | These are visible in the drive website.
    | File authorization is revoked when the user deauthorizes the app.
    \ “drive.file”
    / Allows read and write access to the Application Data folder.
    4 | This is not visible in the drive website.
    \ “drive.appfolder”
    / Allows read-only access to file metadata but
    5 | does not allow any access to read or download file content.
    \ “drive.metadata.readonly”
    scope> 1

    1. Việt Phương Moderator

      Cám ơn bạn. Phiên bản 1.40 mới update lên. Để mình xem rồi update vào bài viết

  16. Thành 23 comment

    echo “Starting 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/**\* #Exclude cache
    fi
    done
    echo “Finished”;
    echo ”;

    Mình muốn loại bỏ backup thư mục uploads thì phải phải thêm như thế nào ạ.

      1. Thành 23 comment

        zip -r $BACKUP_DIR/$domain.zip /home/$domain/public_html/ -q -x /home/$domain/public_html/wp-content/cache/**\* -x /home/$domain/public_html/wp-content/uploads/

        Nó vẫn backup thư mục uploads ad ơi, 🙁

    1. Việt Phương Moderator

      Phiên bản v1.40 mới ra 19/03. Để mình theo dõi thời gian xem sao rồi update vào bài viết. Cám ơn bạn đã thông báo 😀

      1. Trinh Nguyen 38 comment

        tại cái link download của 1.39 nó remove rồi, phải dùng link 1.40 hoặc link 1.39 khác chứ ai ko rành dùng link đó nó ko cài được.
        Nên mình báo để admin cập nhật lại link 1.39 mới hoặc up lên link 1.40.

        1. Việt Phương Moderator

          Đúng thật. Cấu trúc thư mục đã thay đổi nên link cũ remove. Mình đã update bài viết
          Cám ơn bạn nhiều nhé

  17. Thắng 2 comment

    Hướng dẫn này áp dụng cho cả các vps đang dùng panel như directadmin chẳng hạn không bạn hay chỉ dùng cho HocVPS Script nhỉ 😀

  18. Anh Z 56 comment

    Hi ad,

    Mình làm theo đúng hướng dẫn, và kết nói với One Drive thì khi chạy lệnh thì nhận được dòng này: 2018/03/17 08:17:44 Failed to create file system for “remote:HOCVPS_BACKUP”: didn’t find section in config file

    Cho mình hỏi đây là lỗi gì vậy ?

    Cảm ơn ad.

  19. totite 4 comment

    Cho mình hỏi chỉnh sửa số ngày backup thì mình chỉnh ở đâu. Xin cám ơn

    1. totite 4 comment

      Tức là mặc định 1 ngày backup, mình chỉnh thành 2, 3 ngày hay 1 tuần gì đó mới backup 1 lần thì thế nào nhỉ Admin ?

        1. totite 4 comment

          Cám ơn Admin đã trả lời, vì không coi từ đầu comment nên không biết có người đã hỏi qua !!!

  20. Binh 3 comment

    Chào Admin,

    Có cách nào thiết lập script tự động xóa file trên thúng rác của google drive không admin?

    Mình để ý thấy có đoạn code này trong script: /usr/sbin/rclone cleanup “remote:” #Cleanup Trash
    liệu có phải nó giúp xóa thùng rác trên Drive không admin?

    Xin cảm ơn!

    1. Việt Phương Moderator

      Uhm bạn, cleanup là chức năng mới của Rclone giúp xóa thùng rác

  21. Quang trung 12 comment

    Anh Luân Em Hỏi 1 Chút.
    Lúc trước em có cài cá Rclone này kết nối với Google rồi nhưng chưa đồng bộ thành công.
    Em từ VPS có thể nhìn thấy google, nhưng backup thì chưa thấy đẩy lên.
    —–
    Sau lần đó em bỏ luôn.
    VPS em ổ cứng 50GB chạy 2 site wordpress tầm 1,5GB / site
    —-
    Gần đây em login vào admin không được reboot VPS nó tắt SQL luôn.
    Em kiểm tra thì thấy ổ cứng 100%
    Có khi nào là Rhclone nó backup nhiều quá mà em không biết

    Em không tìm thấy thư mục chưa file backup ở đâu, Anh luân cho em xin đường dẫn với ạ.

  22. Viet Thai 1 comment

    Mình muốn hỏi nếu server có dung lượng lớn có thể lên tới 1TB thì backup lên drive google unlimited được không? Hình như cách này backup thành file zip nếu khôi phục bung sao nổi. Chia sẻ mình giải pháp nào tốt để backup server dung lượng lớn với?

  23. Nam Duy 110 comment

    Cho mình hỏi lỗi này lúc backup là gì Phương ơi? Nó k backup đc sql nhưng code vẫn zip đc:

    [root@li860-223 home]# /root/backup.sh
    Starting Backup Database
    ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
    Finished
    Starting Backup Website

    1. Việt Phương Moderator

      Không truy cập được MySQL
      1. Có thể MySQL tắt
      2. Có thể mật khẩu truy cập MySQL sai. Bạn kiểm tra mật khẩu trong /root/.my.cnf có đăng nhập được mysql không

        1. Việt Phương Moderator

          Nếu vậy thì phương án 2 mình ghi đó, mật khẩu root cho mysql sai

          1. Nam Duy 110 comment

            Mình vào tìm k có file đó Phương ơi, bận quá hnay mới check, VPS die từ hôm giờ luôn :((

          2. Việt Phương Moderator

            Thế bạn xử lý vấn đề VPS trước đi. Kiểm tra các service và website xem có vấn đề gì không

          3. Nam Duy 110 comment

            Phương ơi hnay mình mới check được. Vps của mình bị thiếu file .my.conf này. Giờ làm sao để có file đó nhỉ?

          4. Việt Phương Moderator

            1. Vậy hệ thống bạn không phải là HocVPs mới nhất rồi. Bạn lấy mật khẩu trong /etc/hocvps/scripts.conf
            2. Và Nginx bạn đang lỗi, thường liên quan đến cấu hình của Domain Conf. nginx: [emerg] unknown directive "[.....:4
            Vậy nginx -t của bạn ra kết quả gì. Nó sẽ báo 1 domain cấu hình sai. Bạn paste Nginx Conf của domain đó lên đây (paste qua pastebin.com cho gọn

          5. Nam Duy 110 comment

            Nó báo bt Phương ơi:
            [root@INHANOI3 home]# nginx -t
            nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
            nginx: configuration file /etc/nginx/nginx.conf test is successful

          6. Việt Phương Moderator

            Tốt nhất bạn gửi VPS qua support@hocvps.com cho nhanh. Chứ hum trước thì vừa lỗi như thế này mà
            May 15 00:37:57 INHANOI3 nginx[1957]: nginx: [emerg] unknown directive "[.....:4

          7. Việt Phương Moderator

            Done. Backup với các HocVPs phiên bản trước 2.0 thì dùng phiên bản 2 nhé các bạn

  24. Viet Pham 16 comment

    Anh cho em hỏi trước em có cái rclone này lâu rùi, mà lúc đó cài ko biết sao thiếu mất cái tự động xóa bên vps sau khi đã up lên GG drive xong. Em nên làm gì lúc này ạ? Gỡ rclone cài lại theo tut mới nhất này hay chạy lệnh nào thêm ạ? Nếu gỡ rclone thì dùng lệnh nào ạ? Cảm ơn anh nhiều ạ

    1. Việt Phương Moderator

      Bạn sửa script là được. Script quy định việc nén, upload lên cloud qua rclone và xóa trên vps

          1. Viet Pham 16 comment

            Hiện em bị lỗi này ko backup dc db ạ:
            Starting Backup Database
            ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO)
            Em dùng script hocvps luôn ạ

          2. Viet Pham 16 comment

            em mới để ý thấy mình đang dung hocvps v1.7 . Nên chắc em phải dùng script 2 đúng ko ạ. Anh cho em hỏi cách nào coi lại hoặc đổi MYSQL_PASSWORD

          3. Việt Phương Moderator

            Script 2 thì bạn điền thẳng user và mật khẩu mysql vào trong nội dung script ý
            MYSQL_USER=”root”
            MYSQL_PASSWORD=$mariadbpass

          4. Viet Pham 16 comment

            Em biết cách điền luôn vào rồi vì e có setup thanh công 1 vps chay vpssim. Anh cho e hỏi cách lấy lại pass root mysql bên hocvps với ạ.

          5. Việt Phương Moderator

            Mật khẩu lưu trong /etc/hocvps/scripts.conf. Ban kiểm tra nếu mật khẩu trong đó đăng nhập được MySQL không
            Nếu không thì bạn phải reset mật khẩu tài khoản root của MySQL: https://hocvps.com/reset-mysql-root-password/
            Sau khi reset thì bạn cập nhật lại mật khẩu vào file trên hoặc điền thẳng mật khẩu vào nội dung script

      1. Việt Phương Moderator

        Lỗi này do nhiều vấn đề nên kiểm tra xung quanh Nginx, PHP-FPM nhé. Kiểm tra cả log bthg và error log. Cũng như xem source code có plugin nào xung đột không

          1. Việt Phương Moderator

            Kỳ lạ thật. Well noted with thanks
            Website truy cập gặp lỗi 500 Bad Gateway fix được bằng cách khởi động lại iptables

          2. Nam Duy 110 comment

            Note lại để sau này mình cũng vào để mò lại. Vì k chuyên vps nên mò khổ lắm. Cứ phải lên hocvps để search rồi làm lại :))

  25. Andy 32 comment

    Hello admin

    khi minh chạy thử /root/backup.sh thì nó báo lỗi thế này
    zip error: Nothing to do! (/root/backup/2018-02-24/centos.zip)

    mong bạn chỉ giúp

    Cám ơn admin!

    1. Việt Phương Moderator

      Thư mục centos không có gì thì nó không nén thư mục đó nhé bạn

  26. Huynh Ngoc Duy 10 comment

    Nếu mình không sử dụng Hocvps Script thì ở Bước 3, mình cần chỉnh những thông số nào vậy bạn. ??(mình cũng mới tìm hiều VPS nên không rành lắm).
    Mình cài VestaCp

    Mình cảm ơn

    1. Việt Phương Moderator

      Chỉnh sửa từ script 2
      Điền user và mật khẩu MySQL
      Điền thư mục chứa source code
      Điền thư mục chứa cấu hình webserver cho domain

      1. Huynh Ngoc Duy 10 comment

        Cảm ơn bạn!
        Mình đã điền đúng password của root nhưng bị lỗi này

        ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)
        Finished
        zip error: Nothing to do! (/root/backup/2018-02-08/admin.zip)
        – backup
        zip error: Nothing to do! (/root/backup/2018-02-08/backup.zip)
        Finished
        Starting Backup httpd Configuration
        Finished
        Starting Uploading Backup
        Finished

        là bị lỗi gì vậy bạn?

        1. Việt Phương Moderator

          Sai pass của user root. User trong mysql khác user hệ thống bạn nhé
          Còn admin vs backup kia thì chắc trong thư mục bạn nén có 2 thư mục trống là admin và backup

          1. Huynh Ngoc Duy 10 comment

            Ok ban, mình sửa được rồi, chỉ còn duy nhất cái backup data website thì không được. Nó báo backup website Finished nhưng kiểm tra trên google drive thì chỉ có Database và httpd thôi.

            Starting Backup Database
            Finished

            Starting Backup Website
            Finished

            Starting Backup httpd Configuration
            Finished

            Starting Uploading Backup
            Finished

            Mình cảm ơn!

          2. Việt Phương Moderator

            Bạn tạm xóa phần upload lên GG để kiểm tra xem script đã thực hiện gì trong thư mục backup.
            Cũng như xem lại đường dẫn thư mục website đã sửa trong script. Không nữa thì bạn check thủ công script, chạy trên SSH xem có zip được thư mục website không

          3. Việt Phương Moderator

            Nếu là hocvps thì lưu trong /etc/hocvps/scripts.conf và /root/.my.cnf nhé bạn

  27. Duy 10 comment

    Cho mình hỏi xíu!

    Sau khi cài đặt xong mình muốn thay đổi tài khoản Google Drive để lưu trữ thì làm như thế nào vậy bạn

    thanks

    1. Việt Phương Moderator

      Bạn rclone config để edit cái remote đó. Nhưng thường thì đơn giản hơn là bạn xóa remote cũ và tạo remote mới

  28. tuan 38 comment

    Bây giờ nó không giống rùi có thể làm 1 bài hướng dẫn lại không ạ !!!!

  29. Minh 4 comment

    Issue: Với Google Drive, mình dùng script backup này và bị vượt quá quota của Google Drive (do file trong trash của Google Drive chưa xóa nên vẫn bị chiếm dung lượng).

    Solution: Dùng cleanup của Rclone để empty trash cho Google Drive bằng lệnh

    /usr/sbin/rclone cleanup remote:

    (lưu ý remote: thay bằng tên bạn dùng tương ứng)

  30. Trinh Nguyen 38 comment

    Bữa nay phải chọn số 10 chứ ko còn số 7 nữa.
    Sau khi bỏ trống cái client_id và client_secret thì nó ra cái service_account_file ko biết nên điền sao 🙁
    Admin update dùm với nhé, cám ơn.
    Chúc năm mới nhiều sức khỏe

    1. Việt Phương Moderator

      Bò trống nhé bạn
      Service Account Credentials JSON file path - needed only if you want use SA instead of interactive login