abonnel-siteweb/data/pages/informatique/linux/cfp/controle-des-ordinateurs-di...

58 lines
2.5 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

====== 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 sexé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>