Hello everyone, continuing on the topic of Linux today, I share with everyone a backup tool that is quite useful in backing up and backing up the system on Linux, which is Rclone.




Rclone can be said to be an effective synchronous data backup solution to the cloud that helps your data to be backed up periodically and kept absolutely safe.


The advantages of using a cloud storage service are high speed (due to having servers located around the world), data security (not worrying about hardware and network problems) and most of all. are all free. Rclone supports many popular Cloud services such as:


Google Drive

Amazon S3

Openstack Swift / Rackspace cloud files / Memset Memstore


Google Cloud Storage

Amazon Drive

Microsoft OneDrive


Back Blaze B2

Yandex Disk


The local filesystem

Instead of backing up to another VPS for storage, I switched to using Google Drive , 15GB free capacity , buying more is also quite cheap, only 45k/month is 100GB already. If you have a free Google Apps account , even better.



Install the latest version with Linux 64bit operating system


cd /root/



\cp rclone-v*-linux-amd64/rclone /usr/sbin/

rm -rf rclone-*


Commonly used Rclone commands :


rclone config – Configure the connection to the cloud service.

rclone copy – Copy files from server to cloud, skip if data already exists.

rclone sync – Synchronize between server and cloud, only update data on cloud.

rclone move – Move files from server to cloud.

rclone delete – Deletes the data of the folder.

rclone purge – Deletes the data of the folder and all its contents.

rclone mkdir – Create folder.

rclone rmdir – Delete empty folder at path.

rclone rmdirs – Delete all empty folders at the path. The timer includes:

ms – Milliseconds

s – Seconds

m – Minutes

h – Hours

d – Days

w – Weeks

M – Months

y – Years

rclone check – Check if the server and cloud data is in sync or not.

rclone ls – List all data including size and path.

rclone lsd – List entire directories.

rclone lsl – List all data including modification time, size and path.

rclone size – Returns the directory size.

View more commands


Create Backup to Cloud

Now run the rclone config command and follow the steps as below.


[root@vps1 ~]# rclone config

2020/01/12 14:08:20 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults

No remotes found - make a new one

n) New remote

s) Set configuration password

q) Quit config

n/s/q> n

name> backupdaily


Here you choose n to create a new one and name it backupdaily


Type of storage to configure.

Enter a string value. Press Enter for the default ("").

Choose a number from below, or type in your own value

1 / 1Fichier

\ "fichier"

2 / Alias for an existing remote

\ "alias"

3 / Amazon Drive

\ "amazon cloud drive"

4 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, SeaweedFS, and Tencent COS

\ "s3"

5 / Backblaze B2

\ "b2"

6 / Box

\ "box"

7 / Cache a remote

\ "cache"

8 / Citrix Sharefile

\ "sharefile"

9 / Compress a remote

\ "compress"

10 / Dropbox

\ "dropbox"

11 / Encrypt/Decrypt a remote

\ "crypt"

12 / Enterprise File Fabric

\ "filefabric"

13 / FTP Connection

\ "ftp"

14 / Google Cloud Storage (this is not Google Drive)

\ "google cloud storage"

15 / Google Drive

\ "drive"

Storage> 15


I Backup to Google Drive , so I choose 15


** See help for drive backend at: **


Google Application Client Id

Setting your own is recommended.

See for how to create your own.

If you leave this blank, it will use an internal key which is low performance.

Enter a string value. Press Enter for the default ("").


Google Application Client Secret

Setting your own is recommended.

Enter a string value. Press Enter for the default ("").


Scope that rclone should use when requesting access from drive.

Enter a string value. Press Enter for the default ("").

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


Choose 1 here


ID of the root folder

Leave blank normally.


Fill in to access "Computers" folders (see docs), or for rclone to use

a non root folder as its starting point.


Note that if this is blank, the first time rclone runs it will fill it

in with the ID of the root folder.


Enter a string value. Press Enter for the default ("").



Do not enter anything, Press Enter to use default


Service Account Credentials JSON file path

Leave blank normally.

Needed only if you want use SA instead of interactive login.

Enter a string value. Press Enter for the default ("").



Do not enter anything, Press Enter to use default


Edit advanced config? (y/n)

y) Yes

n) No

y/n> n


Select n For no advanced customization, just basic use


Remote config

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


Choose n


If your browser doesn't open automatically go to the following link:


Log in and authorize rclone for access


Enter verification code> 4/vQEo6HRbnnZb98tetr0ZpNb28a6sf8e84fHfT65wfBTz8xvbKUAE6EI


Configure this as a Shared Drive (Team Drive)?


y) Yes

n) No (default)

y/n> n


Select N to not configure Drive team




type = drive

scope = drive

token = {"access_token":"ya29.a0ARrdaM_z8fvjB4QmGeNmNyAOgjGtRj773tnXBZMa5AiT47npTjQEBXgNxv4B8HhNEO6ADh6PEX8kTjQ_J2pWdzgYpCSLpOJDxq8EJ5DNkgP3i85YyJiu476fL6ImPzmoR1LhC9A3xl6zsTqo5aYSWMBruZPW","token_type":"Bearer","refresh_token":"1//0g6QqPuoh3HBaCgYIARAAGBASNwF-L9Ir9dhX4soUISXlchHljWi1cYF2ybXySMDW19pmWemjtj7SyCXQ6uGzh4PnbJZv4pU_KP0","expiry":"2020-01-12T15:21:11.384653782+07:00"}

team_drive =


y) Yes this is OK (default)

e) Edit this remote

d) Delete this remote

y/e/d> y


Select Y to agree


Current remotes:


Name Type

==== ====

backupdaiy 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


Select q to exit




That's it, now you can test with the list directory command in the remote connection:


rclone lsd remote:backupdaily


Create Script Backup to Cloud

nano /root/






DATE=`date +%Y-%m-%d`

TIMESTAMP=$(date +%F)










exec >$BAK_DIR/logs/${DATE}.log

exec 2>&1


mkdir -p "$BACKUP_DIR/mysql"


echo "Starting Backup Database";

databases=`$MYSQL -u $MYSQL_USER -p$MYSQL_PASSWORD -e "SHOW databases;" | grep -Ev "(Database |information_schema | performance_schema | mysql | sys)" `


for db in $databases; do

echo ${db}

$Mysqldump -u $MYSQL_USER -p$MYSQL_PASSWORD --databases $db --quick --lock-tables=false | gzip> "$BACKUP_DIR/mysql/$db.gz"


echo "Finished";

echo '';


echo "Starting Backup Website";

mkdir -p $BACKUP_DIR/data

domain=${D##*/} # Domain name

echo "-" $domain;

zip -r -y -q $BACKUP_DIR/data/$ /var/www/html/ #Exclude cache



echo "Finished";

echo '';


echo "Starting compress file";

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

cd ${BAK_DIR}

tar -czf ${TIMESTAMP}".tgz" $TIMESTAMP

cd $cwd

size2=$(du -sh ${BACKUP_DIR}".tgz"| awk '{print $1}')

rm -rf ${BACKUP_DIR}

echo "File compress from "$size1" to "$size2

echo "Finished";

echo '';


echo "Starting Backup Uploading";

$rclone copy ${BACKUP_DIR}.tgz "$REMOTE_NAME:/$SERVER_NAME/"

#$rclone -q delete --min-age 1m "$REMOTE_NAME:/$SERVER_NAME" #remove all backups older than 1 week

find ${BAK_DIR} -mindepth 1 -mtime +6 -delete

echo "Finished";

echo '';



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


chmod +x /root/


Try checking on the Cloud for a new folder with backup data:


rclone lsl remote:backupdaily


Create automatic cronjob with daily backup


crontab -e


0 2 * * * /root/ > /dev/null 2>&1


This schedule is that every day at exactly 2 am, Backup move Google Drive will automatically run .


Download backup files from Cloud to VPS

The easiest way to restore that data is to download the backup file from the Cloud to your computer, and then upload it back to VPS depending on your needs. However, if you want to download the backup file directly to the VPS, you can always use Rclone with the copy command.


rclone copy "remote:/backupdaily/2021-01-12" /var/www/html/


The above command will copy the folder in the backupdaily folder on the Cloud to your 2021-01-12folder/var/www/html/ in the backupdaily folder on the Cloud to the VPS