We are in the process of migrating this forum. A new space will be available soon. We are sorry for the inconvenience.

client huibC et ligne de commande ?


mdidish
06-01-2016, 11:25 AM
J'ai mis à jour mon script :
- les sauvegardes ne s'exécutent automatiquement au démarrage de l'application que si le délai depuis la dernière sauvegarde est supérieur au délai indiqué dans "Mise à jour automatique" ;
- pour les lancer en ligne de commande, il faut attendre que l'application se soit connectée à notre compte, ce qui est fait en détectant l'apparition de la ligne "Renew Swift token..." dans le nouveau fichier log.

jbra
06-01-2016, 10:04 AM
les fichiers sqlite s'ouvrent à travers la librairie qui se trouve sur sqlite.org. Il n'y a pas besoin de configuration, cela marche à l'identique et immédiatement en environnements Windows et Linux.

jbra
05-31-2016, 09:33 PM
Merci. Amusant le ping !

mdidish
05-31-2016, 09:11 PM
J'ai un peu regarder les fichiers sqlite, qui regorgent d'informations, mais je ne sais pas du tout comment les traiter depuis un script.
Du coup je reste sur mon idée, mais je renomme le fichier application.log en lui ajoutant l'heure et date actuelle au lieu de le supprimer.

Je vous propose le batch que j'ai fait si ça intéresse quelqu'un.
J'insère ce code dans un script à la fermeture de ma session, ce qui permet d'exécuter toutes mes sauvegardes et d'attendre la fin de ces sauvegardes avant d'éteindre l'ordinateur.

Bon ce soir j'ai une erreur sur hubiC "Impossible de se connecter au serveur distant", du coup je ne peux pas le vérifier en situation réelle.
Il faudra que je m'assure qu'une ligne "Done cleaning up HubiC-DeskBackup" apparaît à la fin de chaque sauvegarde même si un fichier n'a pu être uploadé (en cas de got unexpected HTTP status 500, par exemple ...), sinon l'ordinateur ne s'éteindra jamais.


@echo off

REM fermeture de hubiC en récupérant le PID, arrêt du processus correspondant, attente de 2sec
echo Fermeture de hubiC
for /F "usebackq tokens=2 delims= " %%i IN (`tasklist /FI "IMAGENAME eq hubic.exe"`) DO set PID=%%i
taskkill /PID %PID% /T /F
ping -n 3 127.0.0.1 >nul

REM renommer le fichier log actuel en ajoutant l'heure et la date en suffixe
echo Renommer le fichier log actuel
set dateheure=%date:~0,2%-%date:~3,2%-%date:~6,4%_%time:~0,2%h%time:~3,2%min%time:~6,2%s
set dateheure=%dateheure: =%
ren %appdata%\hubiC\application.log "application_%dateheure%.log"

REM démarrer hubiC et attendre la connexion ("Renew Swift token..." dans le nouveau fichier log)
echo.
echo D‚marrage de hubiC
cd "C:\Program Files\OVH\hubiC\" & Start hubic.exe
ping -n 6 127.0.0.1 >nul
:while0
for /F "usebackq tokens=3 delims= " %%i IN (`find /C "Renew Swift token..." %appdata%\hubiC\application.log`) DO set myvar=%%i
if "%myvar%"=="0 " (
ping -n 4 127.0.0.1 >nul
goto :while0
)

REM attendre que "Done cleaning up HubiC-DeskBackup_Nom Sauvegarde 1" apparaisse dans le nouveau fichier log
"C:\Program Files\OVH\hubiC\hubiC.exe" update "Nom Sauvegarde 1"
echo.
echo Sauvegarde 1 en cours
:while1
for /F "usebackq tokens=3 delims= " %%i IN (`find /C "Done cleaning up HubiC-DeskBackup_Nom Sauvegarde 1" %appdata%\hubiC\application.log`) DO set myvar=%%i
if "%myvar%"=="0 " (
ping -n 6 127.0.0.1 >nul
goto :while1
)
echo Sauvegarde 1 finie

REM attendre que "Done cleaning up HubiC-DeskBackup_Nom Sauvegarde 2" apparaisse dans le nouveau fichier log
"C:\Program Files\OVH\hubiC\hubiC.exe" update "Nom Sauvegarde 2"
echo.
echo Sauvegarde 2 en cours
:while2
for /F "usebackq tokens=3 delims= " %%i IN (`find /C "Done cleaning up HubiC-DeskBackup_Nom Sauvegarde 2" %appdata%\hubiC\application.log`) DO set myvar=%%i
if "%myvar%"=="0 " (
ping -n 6 127.0.0.1 >nul
goto :while2
)
echo Sauvegarde 2 finie

pause

jbra
05-31-2016, 07:41 PM
Dans le dossier AppData\...\Hubic les fichiers bases de données sont des fichiers sqlite, donc on peut peut-être chercher là dedans plus fiablement que dans des logs (en plus c'est parfois ennuyeux de ne plus avoir les logs).

mdidish
05-31-2016, 04:24 PM
Je le tue pour pouvoir supprimer le fichier :
%appdata%\hubiC\application.log

(sinon ce fichier contient déjà des lignes Ovh.Hubic.Sync.RootPathController.IndexBackupVersi ons] Done cleaning up HubiC-DeskBackup_Sauv1).
Le fait que la sauvegarde soit finie ou en pause ne permet pas la suppression du fichier log, il faut que l'application soit fermée.

CM63
05-31-2016, 04:20 PM
Pourquoi tuer le process, il suffit de le mettre en pause.

mdidish
05-31-2016, 04:16 PM
Même chose que jbra.

Du coup j'essaye de faire un script batch :
- je tue le processus hubic
- je supprime le fichier %appdata%\hubiC\application.log
- je démarre C:\Program Files\OVH\hubiC\hubiC.exe, ce qui lance automatiquement mes sauvegardes (par ex Sauv1, Sauv2)
- je détecte dans le fichier %appdata%\hubiC\application.log l'apparition des lignes :
-- Ovh.Hubic.Sync.RootPathController.IndexBackupVersi ons] Done cleaning up HubiC-DeskBackup_Sauv1
-- Ovh.Hubic.Sync.RootPathController.IndexBackupVersi ons] Done cleaning up HubiC-DeskBackup_Sauv2

jbra
05-31-2016, 03:44 PM
Dans ma version, il n'y a que les commandes pause, resume, run, speed, et update. La commande status n'existe pas.

CM63
05-31-2016, 12:33 PM
Bonjour,

Il y a aussi la commande:

Code:
$ hubic status
Qui renvoit ce qu'il est en train de faire. Si dans la sortie de cette commande il y a "iddle" , cela veut dire qu'il a terminé ses synchronisations. S'il y a "busy", cela veut dire qu'il y a encore des synchronisations en cours.

Dans votre cas, ce serait :

Code:
"C:\Program Files\OVH\hubiC\hubiC.exe" status
mais je ne sais pas comment on récupère les sorties d'une commande sous Windows.

mdidish
05-31-2016, 11:29 AM
Bonjour
Merci à vous deux pour ces pistes.
Effectivement on retrouve des éléments dans ce poste :
https://forums.hubic.com/showthread....ll=1#post15827

En ligne de commande ça fait :
"C:\Program Files\OVH\hubiC\hubiC.exe" update "Nom Sauvegarde"

Autres arguments à la place de update :
- pause : met l'application en pause
- resume : enlève la pause
- speed --upload=NNN --download=NNN: change la limite de vitesse en octets par seconde, il n'est pas obligatoire de préciser les deux.

En revanche je ne trouve pas comment détecter la fin de la sauvegarde (quand le petit rond qui tourne à côté de la sauvegarde concernée disparaît dans l'onglet Sauvegarde) ?
J'ai essayé en monitorant le taux d'utilisation du processeur du processus hubic.exe, mais il passe régulièrement à 0% pendant l'upload.

Avez-vous une idée ?
A la fin de chaque sauvegarde, la ligne :
Ovh.Hubic.Sync.RootPathController.IndexBackupVersi ons] Done cleaning up HubiC-DeskBackup_Nom Sauvegarde
est ajoutée à la fin du fichier log, est-ce qu'on pourrait s'en servir ?

Merci

jbra
05-31-2016, 07:10 AM
Il me semble que oui, il y a dans le présent forum un article expliquant comment piloter hubic avec le planificateur de tâches sous windows pour les sauvegardes.
Faut le retrouver !

CM63
05-30-2016, 11:14 PM
Bonjour,

Sous Windows je ne sais pas. Mais sous linux, je procédais comme suit:
- j'avais lancé le programme en tapant une commande telle que :
$ hubic synchronise
Puis, lorsque la première synchronisation était terminée, je faisais:
$ hubic pause
Pour redémarrer la synhronisation, je faisais:
$ hubic resume
Pour voir où en était la synchronisation, je tapais :
$ hubic status
Si le status était "busy", je laissais tourner la synchronisation. Si le status était "idle", je la mettais en pause, et je pouvaios éteindre la machine.

Donc en l'occurence, il faudrait non seulement retrouver l'équivalent des commandes sous Windows, mais aussi savoir comment tester le status, de façon à savoir quand arrêter la machine.

mdidish
05-30-2016, 10:51 PM
Bonjour
Est-il possible de piloter le client hubiC (Windows) en ligne de commande ?

L'idée serait de faire un fichier batch qui se lance à l'extinction de la machine pour exécuter l'ensemble des sauvegarde avant extinction complète de l'ordinateur.

Merci
Marc