Automount Google Drive with rclone
First of all we must create our mount path
mkdir -vp /mnt/gdrive
Here is an example how to build an automounter of an rclone setup with /etc/init.d/rclone-gdrive
#!/sbin/openrc-run
# /etc/init.d/rclone-gdrive
description="Mount Google Drive via rclone (FUSE) at /mnt/gdrive"
command="/usr/bin/rclone"
command_user="wuseman:wuseman"
# No --daemon (OpenRC backgrounds), and your rclone doesn't support --foreground here
command_args="mount --allow-non-empty --allow-other gdrive:/ /mnt/gdrive"
pidfile="/run/rclone-gdrive.pid"
start_stop_daemon_args="--background --make-pidfile \
--stdout /var/log/rclone-gdrive.out \
--stderr /var/log/rclone-gdrive.err"
depend() {
need net
after dbus
}
start_pre() {
checkpath -d -m 0755 -o wuseman:wuseman /mnt/gdrive
checkpath -f -m 0644 -o wuseman:wuseman /var/log/rclone-gdrive.out
checkpath -f -m 0644 -o wuseman:wuseman /var/log/rclone-gdrive.err
mountpoint -q /mnt/gdrive && return 0
local i=0
while ! ip route show default 2>/dev/null | grep -q .; do
i=$((i+1))
[ "$i" -ge 30 ] && { eerror "No default route after 30s"; return 1; }
sleep 1
done
[ -e /dev/fuse ] || { eerror "/dev/fuse not present"; return 1; }
}
start_post() {
local i=0
while ! mountpoint -q /mnt/gdrive; do
i=$((i+1))
if [ "$i" -ge 20 ]; then
eerror "Not mounted after 20s"
eerror "stderr tail: $(tail -n 3 /var/log/rclone-gdrive.err 2>/dev/null | tr '\n' ' ')"
return 1
fi
sleep 1
done
einfo "Mounted /mnt/gdrive"
}
stop() {
ebegin "Unmounting /mnt/gdrive"
if mountpoint -q /mnt/gdrive; then
/bin/fusermount -u /mnt/gdrive 2>/dev/null || umount -l /mnt/gdrive 2>/dev/null
fi
if [ -f "$pidfile" ]; then
start-stop-daemon --stop --pidfile "$pidfile" 2>/dev/null
rm -f "$pidfile"
fi
eend 0
Mount rclone-gdrive server to /mnt/gdrive
/etc/init.d/rclone-gdrive start
Unmount and stop rclone-gdrive server
/etc/init.d/rclone-gdrive stop
- or
Unmount and stop rclone-gdrive server
rc-service rclone-gdrive stop
Add rclone-gdrive to default runlevel
rc-update add rclone-gdrive default