informatique:linux:cfp:controle-des-ordinateurs-distance

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
informatique:linux:cfp:controle-des-ordinateurs-distance [2021/01/16 05:01] – ↷ Page déplacée de informatique:se:linux:cfp:controle-des-ordinateurs-distance à informatique:linux:cfp:controle-des-ordinateurs-distance Cédric ABONNELinformatique:linux:cfp:controle-des-ordinateurs-distance [2023/01/09 23:34] (Version actuelle) Cédric ABONNEL
Ligne 1: Ligne 1:
 +====== Contrôle des ordinateurs à distance ======
 +
 +{{tag>"Linux commande"}}
 +{{ :informatique:1200px-gnulinux.jpg?nolink&75x75|Scripts de Contrôle des ordinateurs à distance}}
 +À la maison, chaque enfant à au moins un ordinateur Linux (ordinateur fixe et Rapsberry Pi). Le contrôle à distance s'est posé pour deux raisons : comment moduler à volonté le débit de leur carte réseau et comment arrêter leur ordinateur en dehors des horaires autorisés ?
 +
 +Évidemment que j'ai un accès administrateur sur leur machine et qu'il met possible de m'y connecter avec **ssh** en root. Mais me connecter sur chaque machine enfin d'envoyer les commandes nécessaires systématiquement, cela devient rébarbatif et lassant. Donc, j'ai développer un script qui me permet de :
 +  - se connecter à la machine distante
 +  - envoyer des commandes de maintenance - sauvegarde et mise à jour
 +  - envoyer des commandes de contrôle - restriction horaire et modulation du débit réseau
 +
 +Enfin ça, c'est l'idéal. Pour l'instant c'est plutôt une ébauche mais qui est riche d'enseignement. Pour une connexion à distance réussie, il faut déjà avoir réalisé une [[informatique:linux:commandes:ssh#connexion-ssh-avec-cle|connexion ssh par clé]] sur les machines désirées. Ensuite, toutes les commandes envoyées au PC s’exécutent par **ssh**.
 +
 +===== - Quelques exemples de commandes =====
 +
 +
 +==== - Éteindre le PC à distance ====
 +
 +<code>
 +pc_rsync=dskluc001
 +
 +ssh -t root@$pc_rsync 'systemctl poweroff'
 +</code>
 +
 +
 +==== - Limiter le débit de la carte réseau ====
 +
 +
 +<code>
 +pc_rsync=dskluc001
 +
 +ssh root@$pc_rsync "wondershaper eth0 $limit_eth 1000000"
 +</code>
 +
 +
 +==== - Sauvegarder des documents ====
 +
 +
 +Le sauvegarde est une sauvegarde incrémentielle : le programme copie toutes les nouveautés et modifications de la source et efface tous les dossiers et fichiers plus présent sur la source.
 +
 +Pendant le processus de sauvegarde, un fichier **.pid** est créé afin de ne pas avoir plusieurs sauvegarde en cours, de manière simultanée. Le dossier ''/media/disk_21/users/'' correspond à l'espace de stockage des sauvegarde sur le NAS.
 +
 +La commande ''$$'' permet d'envoyer le PID actuel du process.
 +
 +<code>
 +user_rsync=luc
 +pc_rsync=dskluc001
 +
 +if [ ! -f /root/rsync_$pc_rsync_$user_rsync.pid ]; then
 +   echo $$>>/root/rsync_$pc_rsync_$user_rsync.pid
 +   rsync --delete -azvPe ssh root@$pc_rsync:/home/$user_rsync/ /media/disk_21/users/$user_rsync/sauvegarde/
 +   rm /root/rsync_$pc_rsync_$user_rsync.pid
 +fi
 +</code>
 +
 +
 +