Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Optimisation et consomation de ressources


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Optimisation et consomation de ressources
    Bonjour,
    Je suis un petit informaticien avec encore peu d'expérience et si je me tourne vers vous c'est pour grandir !
    Donc voici le contexte.
    J'ai un ami qui veux monter un petit NAS avec une Raspberry pi 4 - 2go de ram
    On est des bricoleurs
    Donc je lui ai filé un vieux disque SATA 2.5 de 640 GO branché directement sur la RPI mais comme il est un peu vieux et qu'on ne veut pas le faire tourner h24 pour rien j'ai fait un petit script (avec tache cron) pour monter le disque sur le systeme quand un ou plusieurs des utilisateurs whitelistés sont connectés.
    Le script s'execute toutes les minutes via la cronjob et quand plus aucun des utilisateurs whitelistés n'est connectés le disque est proprement démonté et arrêté.
    Voila le souci, si je neme trompe pas une cronjob peut s'executer maximum toutes les minutes (en tous cas c'est come ca sur raspbian). Ce que nous souhaitons c'est faire les 2 vérifications (connexion et deconnexion des utilisateurs pour savoir si on monte ou demonte le disque) toutes les 5 secondes environs.
    Donc j'avais pensé a faire une boucle infinie qui englobe le script de base et d'y mettre un sleep 5.

    Je souhaiterai avoir vos avis sur la consomation de ressource et les optimisations possibles de cette solution !
    Un grand merci a toutes et tous ceux qui voudront bien apporter un peu de leur temps et connaissances !

    Vincent

  2. #2
    Modérateur

    Bonjour,

    incron surveille les événements système.
    mais, je ne sais pas ce qu'il faut surveiller, quelles modifications sont faites au système quand un utilisateur se (dé)connecte.

    aujourd'hui, est-ce que systemd ne saurait pas faire ça ?...
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Responsable 2D/3D/Jeux

    Bonjour,

    Donc je lui ai filé un vieux disque SATA 2.5 de 640 GO branché directement sur la RPI mais comme il est un peu vieux et qu'on ne veut pas le faire tourner h24 pour rien j'ai fait un petit script (avec tache cron) pour monter le disque sur le systeme quand un ou plusieurs des utilisateurs whitelistés sont connectés.
    Le script s'execute toutes les minutes via la cronjob et quand plus aucun des utilisateurs whitelistés n'est connectés le disque est proprement démonté et arrêté.
    Même monté, un disque qui n'est pas utilisé est mis en veille par l'OS. Par conséquent, je vous suggère de ne pas faire un tel script (sauf pour la curiosité ).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  4. #4
    Modérateur

    un disque qui n'est pas utilisé est mis en veille par l'OS
    je suis scurieux :
    · peut-on l'observer ?
    · est-ce paramétrable ?
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  5. #5
    Nouveau membre du Club
    Plus de précision
    Bonjour,
    En premier merci de prendre un peu de votre temps pour moi.
    En fait ce que je souhaite surveiller c'est la connexion/déconnexion de certains utilisateurs. Par exemple si l'utilisateur (exemple bidon) gilles se connecte il faudrait executer une série d'action afin de monter le disque.
    Alors oui le disque est mis en veille automatiquement mais c'est plus par curiosité que je souhaite le réaliser.
    Du coup il faudrait que le script démarre avec le systeme (histoire de ne pas le lancer manuellement) et qu'il surveille les connexions ssh et si possible par l'interface graphique (et encore plus si possible par web https)
    Avez vous une idée de la démarche ? J'ai l'algo mais pas toutes les fonctions. Je peux facilement les trouver mais je souhaite que le script consome le moins de ressources possible.
    Merci

    Vincent

  6. #6
    Responsable 2D/3D/Jeux

    Citation Envoyé par N_BaH Voir le message
    je suis scurieux :
    · peut-on l'observer ?
    · est-ce paramétrable ?
    Voici : https://serverfault.com/questions/93...up-when-needed (je ne connaissais pas la méthode, juste sous Windows, y a une fonction pour dire si on veut la veille ou pas).
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Responsable Systèmes

    la commande hdparm, pas sûr que ça marche avec tous les disques, notamment les disques externes.

    si l'utilisateur (exemple bidon) gilles se connecte il faudrait executer une série d'action
    ça tu peux le faire avec le .profile. Attention au comportement avec une connexion ssh (peut-être nécessité d'utiliser .bashrc)
    Pour un script à la déconnexion, il y a .bash_logout : pareil : tester le comportement avec ssh.

    Pour aller plus loin, n_bah pour t'éclairer mieux que moi.
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur la création d'un système : http://chrtophe.developpez.com/tutor...s/minisysteme/
    Mon article sur le P2V : http://chrtophe.developpez.com/tutoriels/p2v/
    Consultez nos FAQ : Windows, Linux, Virtualisation

  8. #8
    Nouveau membre du Club
    Merci
    Merci de vos réponses claires !
    De ce que j'ai pu voir, le incron ne gére pas les connexions/déconnexions des utilisateurs.
    Mais je pense qu'avec un sleep dans une boucle cela devrait passer.
    Je vasis continuer a rechercher.
    Merci de vos réponses

    Vincent

  9. #9
    Modérateur

    plus j'y pense, plus je me dis que la solution se trouve dans le création d'un service systemd qui dépendra de la connexion des utilisateurs connus du système.
    la solution d'un script qui tourne en boucle peut être plus consommatrice de ressources.

    à noter qu'un service systemd ne détectera pas les connexions sur http(s) qui sont gérées par le serveur web.
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  10. #10
    Expert éminent sénior
    Bonjour

    Est-ce que mettre une commande dans /etc/profile qui remplit un fichier, et mettre une surveillance incron sur ce fichier, n'est pas suffisant pour atteindre l'objectif ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  11. #11
    Expert éminent sénior
    Question: comment gérer le cas des commandes lancées par un utilisateur en nohup qui utilise le disque ?
    Cordialement.

  12. #12
    Modérateur

    Citation Envoyé par Flodelarab Voir le message
    Est-ce que mettre une commande dans /etc/profile qui remplit un fichier, et mettre une surveillance incron sur ce fichier, n'est pas suffisant pour atteindre l'objectif ?
    ça ne couvrira pas les "connexions" ssh qui exécutent une commande, type ssh serveur 'doStuff'.
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  13. #13
    Expert éminent sénior
    autofs ?
    Cordialement.

  14. #14
    Modérateur

    bonne idée.
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  15. #15
    Expert éminent sénior
    Citation Envoyé par N_BaH Voir le message
    ça ne couvrira pas les "connexions" ssh qui exécutent une commande, type ssh serveur 'doStuff'.
    Même attitude. La cible sera alors /etc/ssh/sshrc, par exemple, non ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  16. #16
    Modérateur

    /etc/ssh/sshrc fonctionne bien.
    avec /etc/profile, ça fait deux fichiers à modifier (si je compte bien )
    alors qu'un service (dont je n'ai pas encore trouvé la teneur) n'en demande qu'un, comme autofs.
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.