Je dispose d'un système de production d'électricité photovoltaïque, incluant les panneaux, un onduleur et une petite application, qui permet de transférer les données de l'onduleur vers mon PC, installé avec un dual boot Windows + Linux. Les données de tout un mois sont stockées par l'onduleur dans un fichier mensuel et les données détaillées journalières le sont dans un fichier journalier. Le transfert du fichier mensuel peut être fait n'importe quand, mais celle du fichier journalier ne peut être faite que dans les 24h suivantes, sinon elles sont perdues (l'application qui les mémoriserait aussi est de niveau professionnel et est d'un prix inabordable pour un particulier),

Pour récupérer toutes les données, il faut donc lancer l'application chaque jour sans en omettre un ! Sur un système multiboot (Windows + Linux), ceci impose de lancer chaque jour Windows, puis Linux, puis récupérer les donnés de Windows. Sur un système Linux seul, il faut alors lancer Linux, puis un Windows virtualisé, puis récupérer les donnés de Windows. Le tout manuellement.

Le petit script que je propose permet de récupérer les données dans l'un et l'autre cas, et complètement automatiquement.


#!/bin/bash
#Transfert des fichiers de Windows vers Linux

# À partir du Windows en multiboot
# montage de la partition contenant Windows
mount LABEL=WINDOWS /mnt/WINDOWS
# copie récursive des fichiers de Windows vers Linux, uniquement si le fichier source est plus récent que le fichier destination ou si celui-ci n'existe pas (-u)
cp -Ru /mnt/WINDOWS/chemin_complet_de_mes_donnees/* /home/mon_compte/recuperation_de_mes données/
# démontage du disque contenant Windows
umount /mnt/WINDOWS

# À partir du Windows sur machine virtuelle
# il faut avoir configuré la machine virtuelle avec un répertoire de partage de données entre le Windows virtualisé et votre compte utilisateur Linux
# copie récursive des fichiers de /home/mon_compte/partage_données vers votre compte utilisateur sous Linux, uniquement si le fichier source est plus récent que le fichier destination ou si celui-ci n'existe pas (-u)
cp -Ru /home/mon_compte/partage_Windows/mes_données/* /home/mon_compte/recuperation_de_mes données/

# Changement des UID et GID des fichiers de root:root vers mon_compte:mon_compte pour les fichiers transférés
chown -R mon_compte:mon_compte /home/mon_compte/recuperation_de_mes données/*


Copiez ces lignes dans un éditeur de texte, puis enregistrez le fichier sous un nom approprié, et changez ses permissions pour le rendre exécutable par l'utilisateur du compte.

Pour que ce script s'exécute automatiquement, vous pouvez utiliser l'utilitaire anacron, en modifiant son fichier de configuration anacrontab pour qu'il soit exécuté après le démarrage de Linux.

Le transfert des données ne fonctionnera bien sûr que si les données existent dans Windows. Il faut donc, pour que tout soit automatique, configurer l'application sous Windows pour qu'elle se lance automatiquement au démarrage de Windows, grâce à la fonction Tâches Planifiées.