ใช้ Google Drive อย่างเทพ ด้วย rClone

เพิ่มศักยภาพการใช้ Google Drive ด้วย rClone ทำให้เรา เข้าถึงข้อมูลใน Google Drive ได้ไม่ว่าจะใส่ไฟล์หรือดึงไฟล์ จนกระทั่งเอา Google Drive มาแชร์เหมือน NAS ตัวนึงในระบบ LAN เมื่อรวมกับ Gsuite ที่เก็บข้อมูลได้ไม่จำกัด เท่ากับเราได้ NAS พื้นที่ไม่จำกัด และแชร์หากันได้จากหลายๆ ที่บนโลกอินเตอร์เน็ตเลย

หลังติดตั้ง Linux Distro ที่ถนัดแล้ว สามารถใช้คำสั่งด้านล่างนี้ไล่ไปทีละคำสั่งเพื่อติดตั้ง rClone / Samba แล้วทำการ mount เพื่อแชร์ได้เลยครับ โดยในบรรทัดสุดท้าย จะมีค่า –gid ที่อาจจะมีค่าเปลี่ยนแปลงไปในแต่ละคน ซึ่งสามารถหาได้โดยใช้คำสั่ง cat /etc/group | grep usersShare

apt install mc
apt install rclone
apt install samba
mkdir /mnt/gdrive
rclone config

************************
ทำการ config Google Drive ในชื่อ Gdrive (ถ้าแก้ไขเป็นชื่ออื่น ต้องตรวจสอบและเปลี่ยนชื่อในสคริปต์ที่เหลือทั้งหมดให้ตรงกับชื่อที่เปลี่ยน)
************************

rclone ls GDrive:
ls /mnt/gdrive/
mc -ad
/etc/init.d/smbd restart
nano /etc/samba/smb.conf

*****************
นำข้อความ ต่อไปนี้ copy & paste ต่อท้ายข้อความเดิมในไฟล์ smb.conf

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

จากนั้น save file แล้วใช้คำสั่งถัดไปด้านล่าง
***************

/etc/init.d/smbd restart
smbstatus
groupadd usersShare
useradd -G usersShare -M rclone -p rclone1234
smbpasswd -a rclone

*********************
ค่า --gid ที่อาจจะมีค่าเปลี่ยนแปลงไปในแต่ละคน แนะนำใช้คำสั่งดังต่อไปนี้ เพื่อหาค่าแล้วเพื่อนำไปแก้ไขตัวเลขหลัง --gid ที่คำสั่งด้านล่างนี้ cat /etc/group | grep usersShare
*********************
rclone mount GDrive: /mnt/gdrive/ --allow-other --vfs-cache-mode full --vfs-cache-max-size 10G --gid 1001 --umask 0002 --daemon

ถ้าต้องการให้ rClone ทำงานเองอัตโนมัติเมื่อเราเปิดเครื่อง ให้นำสคริปต์นี้ใส่ในส่วนของ service เพื่อเรียกขึ้นมาทำงาน โดยใช้คำสั่ง nano /etc/init.d/rclone-service แล้ว copy&paste script ด้านล่างนี้ในไฟล์ จากนั้นใช้คำสั่ง chmod +x /etc/init.d/rclone-service เพื่อให้ rclone-service สามารถถูกเรียกขึ้นมาทำงานได้ และสุดท้ายปิดด้วยคำสั่ง update-rc.d rclone-service defaults เพื่อกำหนดให้ถูกเรียกทำงานอัตโนมัติเมื่อเปิดเครื่อง

หลังจากดำเนินการคำสั่งข้างบนแล้ว ถ้าเครื่องยังไม่ถูก reboot ตัว rclone-service จะยังไม่ถูกเรียกขึ้นมาทำงาน ดังนั้นในครั้งแรก เราจะใช้คำสั่งต่อไปนี้เพื่อ rclone-service ทำงานโดยไม่ต้อง reboot ด้วยคำสั่ง systemctl daemon-reload

#!/bin/sh

## BEGIN INIT INFO
# Provides:          rclone-service
# Required-Start:    $network $local_fs $remote_fs
# Required-Stop:     $network $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Should-Start:      slapd cups
# Should-Stop:       slapd cups
# Short-Description: rclone-service daemon (smbd)
# Description: server to provide rClone services to clients
### END INIT INFO


# See if the daemons are there
test -x /usr/bin/rclone || exit 0

. /lib/lsb/init-functions

case $1 in
	start)
		/usr/bin/rclone mount gDrive:/ /mnt/gdrive/ --allow-other --vfs-cache-mode full --vfs-cache-max-size 10G --gid 1001 --umask 0002 --daemon
		log_end_msg 0
		;;
	stop)
		echo "Stoping rClone..."
		/etc/init.d/smbd stop
		umount /mnt/gdrive/
		/etc/init.d/smbd start
		#log_end_msg 0
		echo "rClone Stop."
		exit 1
		;;
	reload)
		log_end_msg 0
		;;
	restart|force-reload)
		$0 stop
		sleep 1
		$0 start
		;;
        status)
		;;
	*)
,		echo "Usage: /etc/init.d/rclone-service {start|stop|reload|restart|force-reload|status}"
		exit 1
		;;
esac

exit 0