ovski Posted October 1, 2017 #1 Posted October 1, 2017 (edited) Bonjour, J'ai un petit souci auquel je ne trouve pas de solution. Pour sauvegarder mes données stockées sur le NAS allumé J7/H24, je fais un backup quotidien sur une machine windows distante via rsync. tous les jours : - Le NAS réveille la machine par wol à 9h55 - 3 tâches de sauvegarde se succèdent à 10h, 11h et 11h30 - à 12h, le NAS éteint la machine windows distante via net rpc ça marche, mais ce n'est pas optimisé, car la durée des sauvegardes est estimée au max alors que d'un jour à l'autre elle ne prennent pas le même temps. Souvent elles se finissent en moins de 5 minutes, mais le process entier dure quand même 2 heures. Y a-t-il un moyen un moyen de conditionner le lancement d'une tâche planifiée par la fin d'une autre, afin d'avoir un fonctionnement comme ceci : - Le NAS réveille la machine distante par wol à 9h55 - A 10h, lancement de la 1ère tâche de sauvegarde. une fois finie, lancement de la 2ème, puis de la 3ème - Une fois la 3ème finie, lancement de l'extinction de la machine distante. Je suis en DSM 5.2-5644 Update 5 Si quelqu'un connait une façon de faire ceci, ce serait cool. Merci d'avance de votre aide Edited October 1, 2017 by ovski Quote
nicoueron Posted October 4, 2017 #2 Posted October 4, 2017 Salut cela s'appelle un ordonnanceur et nécessite du développement pour qu'on reste à l'écoute de la fin d'une tache asynchrone. Après pourquoi ne pas simplement faire un script-shell qui lance les 3 commandes rsync enchainées de façon sychrone ? Quote
ovski Posted October 5, 2017 Author #3 Posted October 5, 2017 merci nicoueron pour ton retour, j'ai pensé au script avec les commandes rsync, mais je voudrais bénéficier des notifications de syno en cas d'échec de la sauvegarde. je vais regarder la possibilité de déclencher une tâche du DSM par ligne de commande et s'il est possible de détecter la fin de son exécution. Quote
ovski Posted October 6, 2017 Author #4 Posted October 6, 2017 (edited) Bonjour, La solution à mon problème est bien le déclenchement des tâches de sauvegarde en ligne de commande. une fois trouvé la syntaxe, le reste c'est du gâteau L'idée est donc de faire un script shell qui gère tout ça comme ça : # Wake on Lan sur le PC distant /opt/bin/wakelan XX:XX:XX:XX:XX:XX # Lancement des taches de sauvegarde /usr/syno/bin/synonetbkp --backup -k 1 /usr/syno/bin/synonetbkp --backup -k 2 /usr/syno/bin/synonetbkp --backup -k 3 # Extinction du PC distant net rpc shutdown -C "Le PC va s'etteindre dans 5 minutes." -I 192.168.xxx.yyy -t 300 -U User%passwd Ce script n'est pas très aboutit mais présente juste les commandes principales. Il peut donc être enrichi au besoin pour contrôler le fonctionnement et apporter un peu plus d'intelligence. Les commandes renvoient des codes erreurs en cas d'échec de backup. Voilà, ça pourrait peut être servir à quelqu'un. Edited October 6, 2017 by ovski Quote
JacquesF Posted November 5, 2017 #5 Posted November 5, 2017 Bonjour, En shell, tu peux facilement conditionner l'exécution d'une tâche à la bonne fin de la précédente. Dans ton petit script, j'ajouterai un test avec un ping sur ta machine que tu réveille avant de commencer à envoyer des données. Je ne suis pas chez moi, donc je n'ai pas accès au shell (limité) du NAS pour tester les commandes, mais quelque chose comme : # Pause de 5 minutes sleep 300 # Test sur l'adresse de la machine Windows (-c 1 = 1 paquet, -t 1 = 1s d'attente de réponse de mémoire) ping -c 1 -t 1 X.X.X.X > /dev/null 2>&1 || exit 1 # Les 2 barres en fin de commande indiquent ce qu'il faut faire en cas d'échec, si on && c'est en cas de réussite # # Ensuite tu lances les 3 commandes de backup, chacune d'elle ne peut être lancée que si la précédente a réussi (ce n'est pas une obligation, à toi de voir) /usr/syno/bin/synonetbkp --backup -k 1 && \ /usr/syno/bin/synonetbkp --backup -k 2 && \ /usr/syno/bin/synonetbkp --backup -k 3 On peut faire mieux, comme dans tous les scripts, c'est une question de temps et de recherche sur le web. Jacques Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.