Bonjour
J’avance bien sur la mise en place de mon scenario pour effectuer une sauvegarde sur le Cloud en utilisant RCLONE (voir sujet précédent), merci encore à @jpty
J’effectuerai une petite publication pour expliquer tout le détail pour partage d’expérience.
Pour rappel mon objectif est d’effectuer une copie de sauvegarde sur le Cloud après la réalisation d’une sauvegarde par Jeedom
Pour utiliser Rclone il faut copier le fichier rclone.conf (fichier de configuration) dans le répertoire ’ /var/www/.config/rclone/rclone.conf.
Jusque là pas de soucis, tout fonctionne bien quand je lance manuellement le script.
Pour finaliser le test, j’ai décidé de lancer une sauvegarde manuel de Jeedom, grace à l’évènement provoqué '#end_backup#", mon scénario se déclenche bien automatiquement à la fin de la sauvegarde par contre ma commande Rclone ne fonctionne pas
Le ‹ contexte › utilisateur ne semble pas être le même, en regardant les log, il semblerait que le scénario soit lancé en ‹ Root ›, est ce possible ?
Dans le log il est maintenant indiqué root.config ce qui me semble très surprenant.
Si je relance mon scénario manuellement, tout fonctionne bien, il y a donc bien une différence de comportement entre un lancement manuel et le lancement automatique par Jeedom après la sauvegarde.
Le Log du script via le lancement automatique après sauvegarde Jeedom
Erreur avec Root
2022/01/31 19:08:28 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
2022/01/31 19:08:28 Failed to create file system for "onedrive:/00jeedom/backup": didn’t find section in config file
Puis lancement manuelle du scénario
L’exécution fonctionne sans problème
<6>INFO : backup-Jeedom-4.1.28-2022-01-31-19h06.tar.gz: Copied (new)
<6>INFO :
Transferred: 131.142 MiB / 131.142 MiB, 100%, 7.653 MiB/s, ETA 0s
Checks: 11 / 11, 100%
Transferred: 1 / 1, 100%
Elapsed time: 18.5s
Si dessous le code
/* Lancement de la sauvegarde Jeedom sur OnedDrive */
$cmd = "rclone copy /var/www/html/backup onedrive:/00jeedom/backup -v 2>&1";
$scenario->setLog('Lancement de la commande : '.$cmd);
$result = shell_exec($cmd);
/*$scenario->setLog('Retour de la commande');
$scenario->setLog($result); */
/* Update to tag 'scmessage' pour envoyer au centre de notification */
$tags = $scenario->getTags();
$tags['#scmessage#'] = "<strong>Résultat de la Sauvegarde </strong> <br> <br>".$result;
$scenario->setTags($tags);
Lancement du mail pour informer de la fin de la sauvegarde (juste pour votre info)