Le tutoriel précédent étant compatible avec quasi n’importe quelle installation existante de serveur (ou aucune si vous venez de l’avoir), ça permet de faire tout ce qu’on veut avec notre remote chiffré du team drive.
Voici un cas d’utilisation basique (selon moi). Bien entendu on peut aller plus loin en passant par des scripts basés sur Docker comme GPBlitz/PGSuite/Plex Guide ou CloudBox ou encore S.S.D (français, avec un super Discord, une bonne ambiance ainsi qu’un SAV efficace !).
Comme vu, le team drive chiffré est monté dans /home/SDrive0Crypted. Tout ce qu’on y met est alors copié sur le team drive tout en étant chiffré. On peut donc lire/utiliser les fichiers depuis le serveur (ou un autre PC sur lequel on met rClone + son fichier de configuration) sans qu’ils soient stockés en clair chez Google.
On pourrait donc simplement copier tout ce qu’on télécharge dans ce montage en l’organisant un peu avec par exemples /home/SDrive0Crypted/Films, /home/SDrive0Crypted/Films4k, /home/SDrive0Crypted/Series…
Mais. Y’a un mais. Déjà… je suis Aerya, donc par définition « pas simple » :P Ensuite, ce que je n’aime pas trop en faisant comme ça c’est que tout ce qu’on dépose dans /home/SDrive0Crypted est envoyé automatiquement sur team drive.
En effet, y’a une limite d’upload de 750GB/24h, si on la dépasse, on est banni 24h (donc plus d’accès au team drive sur ce serveur ou un autre). Pareil, j’ai des dossiers de fichiers que je souhaite avoir sur mon serveur mais pas sur le Cloud (/Ratio, /SD, /Reseed, /Repost…). Puis j’aime bien aussi avoir mes logs de rClone séparés pour pouvoir vérifier l’upload de fichiers et à quelle vitesse.
C’est pour ces raisons que je préfère assurer l’upload sur le remote via un script à part. Et donc en ne les déposant pas directement dans /home/SDrive0Crypted.
On va créer ce script dans /home/scripts/move.sh
mkdir /home/scripts nano /home/scripts/move.sh #!/bin/bash LOG="/home/logs/rclone.log" EXC1="/SD/**" EXC2="/Ratio/**" EXC3="/PreSeries/**" EXC4="/PreFilms/**" if pidof -o %PPID -x "$0"; then exit 1 fi sleep 30 while true do echo "$(date "+%d.%m.%Y %T") RCLONE UPLOAD STARTED" | tee -a "$LOG" rclone copy -c -v --copy-links --exclude='**partial~' --exclude="**_HIDDEN~" --exclude=".unionfs/**" --exclude=".unionfs-fuse/**" --exclude="$EXC1" --exclude="$EXC2" --exclude="$EXC3" --exclude="$EXC4" --min-age 5m --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36" --fast-list --drive-stop-on-upload-limit --transfers=10 --checkers=10 --stats 5s --log-file="$LOG" /home/local SDrive0Crypt:/ sleep 480 echo "$(date "+%d.%m.%Y %T") RCLONE UPLOAD ENDED" | tee -a "$LOG" done
Notez quelques paramètres à adapter à votre utilisation/configuration :
- l’emplacement des logs
- les exclusions : EXC1= »/SD/** » fait que rien de ce qui sera dans /home/local/SD/ ne sera envoyé sur le team drive
- en fin de script : /home/local SDrive0Crypt:/ sont le dossier dont le contenu est à envoyer sur le remote indiqué
Ensuite on le rend exécutable et on y reviendra plus tard dans les services.
chmod a+x /home/scripts/move.sh
Nous allons ajouter un dossier de temporisation (/home/local), depuis lequel un script viendra copier (ou déplacer), avec options/exclusions, les fichiers vers le remote.
Nous allons coupler ce nouveau dossier avec le /home/SDrive0Crypted afin que n’importe quelle application sur le serveur (Plex, Sonarr, Radarr, NextCloud…) puisse voir l’ensemble des fichiers, qu’ils soient déjà sur le team drive (/home/SDrive0Crypted) ou en attente/en cours d’upload (/home/local). Et on va fusionner ces dossiers dans un seul : /home/unionfs
C’est ce que je fais depuis que le pratique rClone, avec Amazon Cloud au début, via unionFS. On peut aussi utiliser mergerfs, un peu plus performant et dont le principe de fonctionnement reste le même.
Normalement unionfs est déjà installé. On passe donc à la création des dossiers adéquates. J’en ajoute un pour les logs.
mkdir /home/local /home/unionfs /home/logs
Passons aux services Systemd. Nous avons déjà celui du montage rClone, il faut en ajouter 2 : 1 pour le dossier de fusion /unionfs et 1 pour l’upload des fichiers sur le remote.
On peut les créer directement dans /etc/systemd/system
J’édite le mount.service du tutoriel précédent pour modifier le chemin des logs. On les passe de /home/rclonecache.log à /home/logs/mount.log
nano /etc/systemd/system/mount.service [Unit] Description=RClone Service Wants=network-online.target After=network-online.target [Service] Type=notify Environment=RCLONE_CONFIG=/root/.config/rclone/rclone.conf KillMode=none RestartSec=5 ExecStart=/usr/bin/rclone mount SDrive0Crypted: /home/SDrive0Crypted --allow-other --allow-non-empty --dir-cache-time 240h --log-level INFO --log-file /home/logs/mount.log --poll-interval 15s --umask 002 --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36" --cache-dir=/cache --vfs-cache-mode full --vfs-cache-max-size 250G --vfs-cache-max-age 240h --bwlimit-file 16M --fast-list ExecStop=/bin/fusermount -uz /home/SDrive0Crypted Restart=on-failure [Install] WantedBy=multi-user.target
On le lance et le rend exécutable à chaque boot de la machine.
[email protected]:/etc/systemd/system# systemctl start mount.service [email protected]:/etc/systemd/system# systemctl enable mount.service Created symlink /etc/systemd/system/multi-user.target.wants/mount.service → /etc/systemd/system/mount.service. [email protected]:/etc/systemd/system
Puis on vérifie que tout a fonctionné = voir les 1.2P de montés dans /home/SDrive0Crypted
[email protected]:/etc/systemd/system# df -H Filesystem Size Used Avail Use% Mounted on /dev/mapper/pve-vm--100--disk--0 43G 873M 39G 3% / none 504k 0 504k 0% /dev udev 4.1G 0 4.1G 0% /dev/tty tmpfs 4.1G 0 4.1G 0% /dev/shm tmpfs 820M 91k 819M 1% /run tmpfs 5.3M 0 5.3M 0% /run/lock tmpfs 4.1G 0 4.1G 0% /sys/fs/cgroup SDrive0Crypted: 1.2P 0 1.2P 0% /home/SDrive0Crypted
On passe ensuite au service unionfs.service qui va fusionner /home/local et /home/SDrive0Crypted dans /home/unionfs
nano /etc/systemd/system/unionfs.service [Unit] Description=UnionFS Daemon After=multi-user.target mount.service [Service] Type=simple User=0 Group=0 ExecStartPre=/bin/sleep 10 ExecStart=/usr/bin/unionfs -o cow,allow_other,nonempty /home/local=RW:/home/SDrive0Crypted=RO /home/unionfs ExecStop=/bin/fusermount -uz /home/unionfs TimeoutStopSec=20 KillMode=process RemainAfterExit=yes [Install] WantedBy=multi-user.target
On le lance et le rend exécutable à chaque boot de la machine.
[email protected]:/etc/systemd/system# systemctl start unionfs.service [email protected]:/etc/systemd/system# systemctl enable unionfs.service Created symlink /etc/systemd/system/multi-user.target.wants/unionfs.service → /etc/systemd/system/unionfs.service. [email protected]:/etc/systemd/system
Et là aussi on vérifie que tout fonctionne. On doit voir un nouveau montage de 1.2P dans /home/unionfs
[email protected]:/etc/systemd/system# df -H Filesystem Size Used Avail Use% Mounted on /dev/mapper/pve-vm--100--disk--0 43G 873M 39G 3% / none 504k 0 504k 0% /dev udev 4.1G 0 4.1G 0% /dev/tty tmpfs 4.1G 0 4.1G 0% /dev/shm tmpfs 820M 91k 819M 1% /run tmpfs 5.3M 0 5.3M 0% /run/lock tmpfs 4.1G 0 4.1G 0% /sys/fs/cgroup SDrive0Crypted: 1.2P 0 1.2P 0% /home/SDrive0Crypted unionfs 1.2P 1.2P 39G 100% /home/unionfs
Là on peut déjà vérifier qu’en effet tout fichier placé dans /home/unionfs sera bien visible dans /home/local mais pas envoyé automatiquement sur le team drive donc pas visible dans /home/SDrive0Crypted
[email protected]:/home# ls SDrive0Crypted local logs scripts unionfs [email protected]:/home# touch unionfs/testunionfs.encoremoi [email protected]:/home# ls -l unionfs/ total 0 -rw-rw-r-- 1 root root 0 Oct 15 00:46 testfile.coucou -rw-r--r-- 1 root root 0 Oct 15 10:13 testunionfs.encoremoi [email protected]:/home# ls -l local/ total 0 -rw-r--r-- 1 root root 0 Oct 15 10:13 testunionfs.encoremoi [email protected]:/home# ls -l SDrive0Crypted/ total 0 -rw-rw-r-- 1 root root 0 Oct 15 00:46 testfile.coucou [email protected]:/home#
J’ai toujours bien qu’un seul fichier de visible sur mon team drive

Par conséquent on termine avec le service qui va uploader les fichiers contenus dans /home/local sur le team drive. Service qui va exécuter notre script move.sh créé plus haut. (dans /etc/systemd/system)
nano move.service [Unit] Description=Move Service Daemon After=multi-user.target [Service] Type=simple User=0 Group=0 ExecStart=/bin/bash /home/scripts/move.sh TimeoutStopSec=20 KillMode=process RemainAfterExit=yes Restart=always [Install] WantedBy=multi-user.target
On le lance et le rend exécutable à chaque boot de la machine.
[email protected]:/etc/systemd/system# systemctl start move.service [email protected]:/etc/systemd/system# systemctl enable move.service Created symlink /etc/systemd/system/multi-user.target.wants/move.service → /etc/systemd/system/move.service. [email protected]:/etc/systemd/system
Cette fois-ci mon fichier de test est bien envoyé sur le team drive et apparaît dans son montage /home/SDrive0Crypted.
[email protected]:/home# ls -l SDrive0Crypted/ total 0 -rw-rw-r-- 1 root root 0 Oct 15 00:46 testfile.coucou -rw-rw-r-- 1 root root 0 Oct 15 10:13 testunionfs.encoremoi [email protected]:/home#
Côté team drive…

Amusez-vous bien :)