Mount Google Drive บนเซิฟเวอร์ VPS Cloud ด้วย Rclone

ใครใช้ Google Workspace Starter จะรู้ว่าเรามีพื้นที่เก็บข้อมูลฟรีๆ 30GB /per user แต่หากเป็นแพ็คเกจ Enterprise เราจะมีพื้นที่เก็บข้อมูลเท่าที่คุณต้องการ (As Much As You Need)

คำเตือน: อย่าหาทำ คิดเอา Google Drive มาแชร์แบ่งขายนะครับ! 55++

โพสนี้พาไปรู้จักกับ Rclone และวิธีการ Backup ข้อมูลในเซิร์ฟเวอร์ หรือ Cloud VPS ไปยัง Cloud Storage กันครับ โดยวิธีการที่เรียบง่ายผ่านการ Mount Google Drive บนเซิฟเวอร์ VPS Cloud ด้วย Rclone

Backup ข้อมูลในเซิร์ฟเวอร์ (Cloud VPS) ไปยัง Cloud Storage แล้ว Decentralized storage ทำไง?

credit image: https://dariusz.wieckiewicz.org/

Rclone (rsync for cloud storage) เป็นซอฟต์แวร์ open source ที่พัฒนาต่อจาก Rsync และเขียนด้วยภาษา Go รองรับการติดตั้งบนแพลตฟอร์ม Windows, macOS, Linux ได้หมด ทำให้สามารถเข้าถึง Cloud Storage ได้เสมือนหนึ่งเป็นไดรฟ์หรือโฟลเดอร์หนึ่งในเครื่อง (อารมณ์คล้ายๆ กับ One Drive ใน Windows) อีกทั้งยังสนับสนุนทั้งแบบ GUI และ command line หรือ API สามารถเรียกใช้ไฟล์ได้เลยหรือเขียนสคริปต์ Backup ข้อมูลที่ต้องการขึ้นเก็บบน Cloud Storage ได้แบบง่ายๆ

ทำไมต้องใช้ Rclone นอกจากฟรี!

วัตถุประสงค์ใช้ Rclone ก็เพื่อใช้เป็นเครื่องมือแบคอัพไฟล์ขึ้นไปเก็บบน Google Drive หรือผู้ให้บริการ Cloud Storage ต่างๆ โปรแกรมรองรับมากกว่า 40 cloud storage (Centralized provider) แล้วถ้า Decentralized storage ล่ะ?  backend ตอนนี้รองรับไหม? (ใครรีบเลื่อนลงอ่านข้างล่าง)

ไปเริ่มติดตั้งโปรแกรม Rclone กันเลย

  1. ติดตั้งโปรแกรมบนเซิฟเวอร์
    ดาวน์โหลดไฟล์ติดตั้งได้ที่https://rclone.org/downloads/
  2. ตั้งค่า IAM Service accounts  และอนุญาตให้เข้าถึง Google Drive ได้
    สร้างไฟล์ Credentials (OAuth 2 Client ID) สำหรับ Drive บนเซิฟเวอร์ 
  3. เมื่อเรามี user credential แล้ว ก็จะนำ Client ID และ Client Secret key มาใส่ (หรือจะใช้ JSON ไฟล์ก็ได้)

รันคำสั่งเพื่อคอนฟิก

rclone config

หลังจากติดตั้งเสร็จเรียบร้อยแล้ว

ทำการ Mount Drive ไปยัง File system (Linux)

สร้างโฟลเดอร์ที่ต้องการ mount โดยรัน

mkdir /gdrive

rclone mount --daemon gdrive: /gdrive

กรณีคอนฟิกผ่าน GUI (Web-based)
rclone rcd –rc-web-gui –rc-user gui –rc-pass 1234

วิธี Copy ไฟล์ ไปยัง Cloud Storage

รูปแบบคำสั่ง clone copy source:sourcepath dest:destpath

rclone copy filename.csv /gdrive/folder/

อธิบาย:
# rclone copy คัดลอกไฟล์ใหม่หรือไฟล์ที่เปลี่ยนแปลงไปยังที่เก็บข้อมูลบนคลาวด์
# rclone sync ซิงค์ (ทางเดียว) เพื่อทำให้ข้อมูลไดเร็กทอรีเหมือนกัน
# rclone mount ใช้ FUSE mount

การ mount นี้รันเป็น daemon 

rclone mount --daemon gdrive: /gdrive

หากมีการปิดเครื่องหรือรีสตาร์ทเซิร์ฟเวอร์ โฟลเดอร์ที่ทำการ mount ไว้นี้จะหายไปนะครับ หากต้องการให้เซิฟเวอร์ทำการ mount อัตโนมัติทุกๆ ครั้งที่เปิดเครื่องทำได้หลายวิธีง่ายๆ ก็ต้อง crontab แล้ววางคำสั่ง rclone mount –daemon gdrive: /gdrive

ท่ายากขึ้นมาหน่อยก็สร้างเป็น systemd service เพื่อ mount อัตโนมัติ และยังสามารถสั่ง start, stop ได้ด้วยครับ

สร้งไฟล์ gdrive-mount.service

vi /usr/lib/systemd/system/gdrive-mount.service
[Unit]
Description = Mount Google Drive
Wants=network-online.target
After=network.target network-online.target

[Service]
Type=oneshot
RemainAfterExit=yes
User=root
ExecStart = /usr/bin/rclone mount gdrive: /gdrive
ExecStop=/bin/umount /gdrive

[Install]
WantedBy = multi-user.target

รูปแบบการใช้

systemctl enable gdrive-mount
systemctl start gdrive-mount 
systemctl stop gdrive-mount
systemctl restart gdrive-mount

ส่วนใครอยากประยุกต์ไปใช้กับ Samba (smb.conf) ก็ได้เช่นกันครับ

[GDrive]
comment = Google Drive
browseable = yes
path = /gdrive
read only = no
guest ok = no
create mask = 0777
directory mask = 0777
writeable = yes
valid users = %U

สร้างกลุ่ม/ผู้ใช้สำหรับ rclone

groupadd GDrive
useradd -G GDrive -M rclone -p p@ssw0rd
smbpasswd -a rclone

ดูค่า GID (–gid) พิมพ์คำสั่ง

cat /etc/group | grep

พิมพ์คำสั่ง Mount แบบ manual

rclone mount GDrive: /gdrive --allow-other --vfs-cache-mode full --vfs-cache-max-size 5G --gid 10001 --umask 0002 --daemon

รู้หรือไม่: Rclone รองรับ Decentralized storage โลก Web3 ด้วยนะครับ (Sia, Skynet)

ผู้ที่สนใจสามารถดูข้อมูลเพิ่มเติมได้ที่นี่ https://rclone.org, Google Drive on Linux (OAuth) https://rclone.org/drive/#making-your-own-client-id

source: https://www.section.io/engineering-education/encrypting-gdrive-using-rclone/

Scroll to top