ovski

Conditionner le lancement des tâches planifiées

Recommended Posts

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 by ovski

Share this post


Link to post
Share on other sites

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 ?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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 by ovski

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now