Script de connexion ssh sur windows + commandes

Forum dédié à la distribution du même nom et que vous pourrez télécharger sur http://www.contribs.org. La nouvelle version de cette distribution se nomme SME Server

Modérateur: modos Ixus

Script de connexion ssh sur windows + commandes

Messagepar calissis » 18 Avr 2008 12:17

Bonjour à toutes et à tous,

Je cherche à créer un script de connexion à windows depuis la sme7.3 en ssh qui lancerait également des commandes, le tous, automatiquement.

En gros, j'utilise la contrib affa dont le job tourne la nuit et je voudrais faire rebooter tous les pc clients pour sauvegarder leurs profiles itinérents à jour. (bien sur le serveur ssh tourne sur les client windows, la commande "ssh -l XXXXXX IPduclient" fonctionne)

Merci d'avance pour l'aide,
Calissis
calissis
Quartier Maître
Quartier Maître
 
Messages: 18
Inscrit le: 26 Août 2006 14:01

Messagepar jibe » 18 Avr 2008 19:45

Salut,

Je ne sais pas si je vais bien pouvoir t'aider pour faire ça sur Windows...

Mais bon, le principe est le même que sous Linux : il faut établir une connexion SSH avec le poste, et cela sans avoir à donner de mot de passe. Il faut donc procéder par échange de clés. Ensuite, il suffit de faire un script sur SME qui lance les commandes voulues sur le poste windows (le plus simple étant de lancer un script .BAT qui fasse ce que tu veux).

Je pense que google devrait t'aider à trouver un bon tuto ou les explications voulues pour faire une authentification SSH par échange de clés entre linux et W$ :wink:
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie

Messagepar sibsib » 18 Avr 2008 21:54

Hello,

En fait, on ne comprend pas bien ton problème : apparemment, tu as déjà un sshd opérationel sur les postes Windows ?

Alors, quel est le problème ?
Tu cherches une commande shutdown.exe pour tes PC ? il y en a pleins le net, et il y en a dans le resourse kit Microsoft (si tu as çà sous la main)
Ou alors, tu cherches un moyen de lancer une commande au moment approprié sur ta SME ?
Dans ce cas, je suppose que la bonne solution est d'écrire un bout de shell sur ta SME qui fait ce que tu souhaites (c'est assez simple comme shell, mais il faut traiter le cas du PC éteint).
Après,ne connaissant pas affa, je ne sais pas si la 'bonne' manière est de demander à affa d'effectuer ton shell script avant le lancement de la sauvegarde, ou s'il est plus logique de lancer ton script via une tache cron (par exemple à 22 heures si tes backups sont lancés à 23 heures).

A+,
Pascal
Sibsib, admin heureux d'un petit SME !!!
- SME 8.0 beta 6 dans une VM :-)
- ESXI 4.1 sur hardware noname
Ma petite page sur SME
Avatar de l’utilisateur
sibsib
Amiral
Amiral
 
Messages: 2368
Inscrit le: 11 Mai 2002 00:00
Localisation: France - région parisienne

Messagepar jibe » 19 Avr 2008 22:08

Salut,

sibsib a écrit:Après,ne connaissant pas affa, je ne sais pas si la 'bonne' manière est de demander à affa d'effectuer ton shell script avant le lancement de la sauvegarde, ou s'il est plus logique de lancer ton script via une tache cron (par exemple à 22 heures si tes backups sont lancés à 23 heures).

Est-ce que connaitre Affa y change quelque chose ?

Oui, Affa peut lancer un script "pre-job". Mais le problème n'est pas tant de lancer le script faisant rebooter les W$ avant Affa ou par sa fonction "script pre-job" que de faire en sorte que la sauvegarde ne démarre qu'une fois que les W$ ont bien rebooté et sont à nouveau opérationnels.

J'entrevois deux solutions, à creuser et il y en a probablement d'autres :

- Donner un délai suffisant entre l'ordre de reboot des W$ et le lancement des sauvegardes, qui peut soit être programmé dans le script, soit par cron qui lancera le script un temps suffisant avant Affa (attention, Affa crée lui-même les tâches cron qui lui sont nécessaires).
- Tester par des ping ou autre moyen que les postes W$ ont bien redémarré, et suspendre la sauvegarde jusqu'à ce qu'ils soient opérationnels.

En fait, personnellement j'ai mis en place un système semblable, mais pour le démarrage de mon NAS. Affa sauvegarde sur un serveur NAS qui ne sert qu'à cela et qui est démarré par WOL via un script pre-job (ce qui m'économise la mise en place d'une tâche cron : Affa est programmé pour se lancer automatiquement, et appelle un script pre-job qui démarre le NAS). Le script démarre le NAS, attend je crois 50s, effectue les mount nécessaires et rend la main. Affa effectue alors la sauvegarde, appelle un script post-job qui unmounte les volumes voulus puis arrête le NAS.

Tout ça me donne entière satisfaction, et le seul problème que j'ai eu, c'est un jour où la sauvegarde s'est lancée alors que j'étais en train de travailler sur le NAS. Bien sûr, le mount du script pre-job a renvoyé une erreur "already mounted", et Affa n'a pas effectué la sauvegarde puisque le pre-job s'est terminé sur une erreur...
"Le monde ne sera pas détruit par ceux qui font le mal, mais par ceux qui les regardent sans rien faire" (Albert Einstein)

Autrefois, l'Etat défendait des valeurs. Maintenant, il défend des profits... (Anne Haunnime)
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie

Messagepar jibe » 23 Avr 2008 22:06

Salut,

Comme ça peut t'intéresser et qu'un autre demande des exemples concrets dans un autre fil, je donne mes scripts. Ils sont tout simplement dans /root sur la SME.

Dans ceux-ci, on considérera que :
00:11:22:33:44:55 est l'adresse mac de la carte réseau du NAS
192.168.x.y est l'adresse IP du NAS
/mnt/NAS300/backup est le répertoire de réception des sauvegardes sur le NAS (via NFS)
/mnt/affa est le point de montage du NAS sur SME

Il ne faut pas oublier d'installer le client NFS sur SME. On peut pour cela suivre le howto de Landry. Pourquoi NFS ? Parce que c'est plus rapide, ce qui est appréciable lors de la première sauvegarde qui est inévitablement très longue. Mais on peut bien sûr aussi utiliser Samba...

Le premier script est le "pre-job" lancé au démarrage d'un job Affa, qui met en route le NAS et monte le volume de sauvegarde :
Code: Tout sélectionner
! /bin/bash
/sbin/ether-wake -b -i eth0 00:11:22:33:44:55
sleep 50
mount 192.168.x.y:/mnt/NAS300/backup /mnt/affa


Le second est le "post-job" lancé par Affa à la fin de la sauvegarde. Comme il ne peut pas démonter le volume de sauvegarde et donc arrêter le NAS avant qu'Affa ait totalement terminé, il se contente de lancer un troisième script nommé post-svg-b avec une tempo suffisante (par sécurité, 5 minutes ! Je pense qu'on peut faire moins, mais comme ça n'avait pas beaucoup d'importance pour moi...) pour qu'Affa soit bien terminé :
Code: Tout sélectionner
! /bin/bash
D=`date`
echo $D " -- post-svg : lancement de post-svg-b --" >> /var/log/affa
at -f /root/post-svg-b now + 5 minutes


Enfin, le dernier script qui termine tout :
Code: Tout sélectionner
! /bin/bash
cd /root
pwd >> /var/log/affa
umount /mnt/affa >> /var/log/affa
ssh root@192.168.x.y "shutdown -p now"
echo " ---- FIN ----" >> /var/log/affa


Voilà. Rien de sorcier en fait :wink:
Avatar de l’utilisateur
jibe
Amiral
Amiral
 
Messages: 4366
Inscrit le: 17 Oct 2003 00:00
Localisation: Haute Savoie


Retour vers E-Smith / SME Server

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité