Rclone adalah program baris perintah untuk menyinkronkan file dan direktori ke dan dari:
• Amazon Drive
• Amazon S3
• DigitalOcean Spaces
• Dropbox
• Google Cloud Storage
• Google Drive
• Mega
• Microsoft Azure Blob Storage
• Microsoft OneDrive dll [](https://rclone.org/docs/)
Instalasi Rclone
- Membuat folder untuk menyimpan file script backup data.
[upl-image-preview url=https://i.imgur.com/WaYB8C5.png]
- Melakukan Instalasi Rclone
#Linux 64 bit:
cd /home/backup
wget https://downloads.rclone.org/v1.45/rclone-v1.45-linux-amd64.zip
unzip rclone-v*.zip
\cp rclone-v*-linux-amd64/rclone /usr/sbin/
rm -rf rclone-*
#Linux 32bit
cd /home/backup
wget https://downloads.rclone.org/v1.45/rclone-v1.45-linux-386.zip
unzip rclone-v*.zip
\cp rclone-v*-linux-386/rclone /usr/sbin/
rm -rf rclone-*
[upl-image-preview url=https://i.imgur.com/HSyCYa5.png]
[upl-image-preview url=https://i.imgur.com/z56qW0J.png]
Cek Versi Rclone yang telah diinstall
[upl-image-preview url=https://i.imgur.com/mwAe2Rt.png]
Membuat Credentials API ke Google Drive
Membuat Koneksi dari Server Ke Google Drive
- Konfigurasi Koneksi baru
[upl-image-preview url=https://i.imgur.com/WF5y792.png]
- pilih new remote ketik : n
- kemudian ketik nama koneksi (disesuaikan)
- kemudian pilih storage/penyimpanan yang kita gunakan contoh disini menggunakan google drive , ketik : 12
[upl-image-preview url=https://i.imgur.com/59ejSmf.png]
[upl-image-preview url=https://i.imgur.com/akY2gMz.png]
- konfigurasi rclone bisa ikuti gambar di bawah ini, copy & paste ke terminal (token id , id secret dan root folder
dari Credentials yang telah dibuat tadi
[upl-image-preview url=https://i.imgur.com/GYjq4aS.png]
- Apabila OS/perangkat anda mendukung untuk membuka browser maka secara otomatis akan membuka alamat
url pada OS/Perangkat namun apabila tidak didukung untuk membuka browser silahkan copy url pada
konfigurasi anda dan buka pada perangkat yang mendukung untuk membuka lewat browser.
[upl-image-preview url=https://i.imgur.com/n2Qx0Ed.png]
[upl-image-preview url=https://i.imgur.com/u2RFkjT.png]
- Pilih akun Drive
[upl-image-preview url=https://i.imgur.com/83a010e.png]
- Pilih Lanjutkan

- Copy Kode Otorisasi kemudian pastekan ke terminal


Cek status koneksi rclone ke drive google
- Cek melalui terminal akses drive yang telah dikaitkan :
[upl-image-preview url=https://i.imgur.com/nvfJNJ3.png]
- Drive yang dikaitkan :
[upl-image-preview url=https://i.imgur.com/PbFv6yf.png]
Script auto backup and upload to google drive
- Masuk ke direktori yang telah dibuat diawal tadi dan buat file script auto backup simpan dalam bentuk .py karna
file script akan dieksekusi menggunakan python:
[upl-image-preview url=https://i.imgur.com/SWUd3yD.png]
- Copykan script berikut :
import os
from datetime import datetime
import logging, logging.handlers
import time
#Logging
def setup_custom_logger(name):
formatter = logging.Formatter(fmt='%(asctime)s %(levelname)-2s %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
handler = logging.handlers.RotatingFileHandler("/home/backup/backup.log", maxBytes=900000, backupCount=15)
handler.setFormatter(formatter)
screen_handler = logging.StreamHandler()
screen_handler.setFormatter(formatter)
logger = logging.getLogger(name)
logger.setLevel(logging.DEBUG)
logger.addHandler(handler)
logger.addHandler(screen_handler)
return logger
logger = setup_custom_logger('myapp')
MYSQL_LIST=['db1','db2'] #MYSQL Database
DB_NUM = len(MYSQL_LIST)
WEB_LIST=['a','b','c'] #WEB Folder name
WEB_NUM= len(WEB_LIST)
MYSQL_USER='' #MYSQL user
MYSQL_PW='' #MYSQL Password
GDRIVE_FOLDER='BACKUP_WEB'
logger.info('Web Server Backup Script')
#Create Backup Folder
logger.info('Create Backup Folder')
cmd = "mkdir -p /home/backup/date +%Y%m%d
"
os.system(cmd)
logger.info('Database Backup')
for i in range(0,DB_NUM):
cmd = "mysqldump -u "+MYSQL_USER+" -p"+MYSQL_PW+" "+MYSQL_LIST+" | gzip > /home/backup/date +%Y%m%d
/"+MYSQL_LIST+"-date +%Y%m%d-%H-%M-%S
.sql.gz"
os.system(cmd)
logger.info('Backup database: %s Complete',MYSQL_LIST)
logger.info('Web Source Backup')
for j in range(0,WEB_NUM):
cmd = "zip -r /home/backup/date +%Y%m%d
/"+WEB_LIST[j]+".zip /home/www/"+WEB_LIST[j]+" -q -x /home/www/"+WEB_LIST[j]+"/wp-content/cache/***"
os.system(cmd)
logger.info('Backup Web Source: %s Complete',WEB_LIST[j])
logger.info('Web Server Config Backup')
cmd = "cp -r /etc/nginx/conf.d/ /home/backup/date +%Y%m%d
/nginx/"
os.system(cmd)
logger.info('Backup Web Server Config Complete')
logger.info('Start Upload To Google Drive')
cmd = 'rclone move /home/backup/date +%Y%m%d
"upload_google_drive:'+GDRIVE_FOLDER+'/date +%Y%m%d
" >> /var/log/rclone.log 2>&1'
os.system(cmd)
logger.info('Upload Complete')
logger.info('Delete Backup File')
cmd = "rm -rf /home/backup/date +%Y%m%d
"
os.system(cmd)
logger.info('Delete Complete')
logger.info("Remove all backups older than 3 days")
cmd = 'rclone -q --min-age 3d delete "upload_google_drive:'+GDRIVE_FOLDER+'"'
os.system(cmd)
logger.info("Remove all empty folders older than 3 days")
cmd = 'rclone -q --min-age 3d rmdirs "upload_google_drive:'+GDRIVE_FOLDER+'"'
os.system(cmd)
logger.info("Cleanup Trash")
cmd = 'rclone cleanup "upload_google_drive:"'
os.system(cmd)
logger.info("Finish Backup and Upload to Google Drive")
*Catatan : untuk script diatas silahkan menyesuaikan sesuai kebutuhan
Buat backup cron
crontab -e
tambahkan perintah cron untuk mengeksekusi file script : 0 3 * * * python /home/backup/backup.py > /dev/null 2>&1
Semoga Berhasill !!!!!