Bash: Programmer démarrage et arret mandriva
Pawels
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
fab64 -
fab64 -
Bonjour,
Utilisateur de linux (Mandrake, puis Mandriva) depuis plusieurs années, mais nul en bash, je souhaiterais néanmoins écrire un petit programme qui me permette d'empêcher mon fils Christophe (17ans), de trop trainer sur internet alors qu'il a des devoirs à faire... :-(
Comme je ne souhaite pas lui interdire l'accès à la machine qui lui sert (aussi) pour de la bureautique, j'ai envisage le système suivant:
- Chris se logue avec son nom d'utilisateur et son mot de passe.
- Un script vérifie à quand remonte sa dernière connexion (jour, h, min)
- Si la connexion remonte a PLUS d'une heure, l'accès est libre pour tous programmes, sinon le système s'arrête en affichant dans un message envoyé a l'écran: "Quota dépassé, connexion possible dans XX min". L'idéal serait de désactiver uniquement la connexion internet, (ifconfig ethX down ??) mais cela me parait un peu trop complexe à réaliser a mon niveau.
- Si il poursuit, il peut le faire librement, MAIS s'il lance la connexion internet (firefox, amsn) (ou plus généralement le démon internet ???) un drapeau est positionné à 1 au lieu de 0, et un compteur, lié au lancement de l'application démarre pour une période d'une heure, avec une commande du type: '/opt/firefox/firefox' & '/opt/nil' associé au raccourci clavier des applications correspondantes où nil est un petit exécutable, du type: sleep 3600;halt
c'est ce que j'utilise en ce moment.
Le système fonctionne très bien mais n'interdit pas de relancer l'ordinateur juste après l'arrêt.
Dans mon idée ce drapeau que je n'exploite pas pour le moment devrait permettre au démarrage, de tester la dernière connexion par une ligne du type:
last -R christophe > dirusr1c
qui transfèrerait le contenu de la commande dans un fichier dirusr1c, (ou autre nom)
ensuite un $h=$(cut '' -b 42-43 dirusr1c)
devrait me permettre d'extraire l'heure puis la minute de la dernière connexion, reste à transformer le tout en variable numérique et l'utiliser, ensuite faire un test conditionnel (plus de une heure apres le précédent arrêt, ou moins de une heure... et en fonction, soit remettre le flag a 0 et poursuivre, soit le laisser inchangé et arrêter l'ensemble.
pour plus de clarté j'ai pondu un petit organigramme fonctionnel qui se trouve http://imageshack.com/f/d7organigrammecj7j
Tout est améliorable, vous aurez surement des idées plus raffinées que ma grossière approche.
Pour info, je tourne avec Mandriva 2007, connecté sur internet par adsl ethernet au moyen d'une freebox, et j'utilise essentiellement kde...
Merci de votre aide et de vos éventuelles suggestions.
Utilisateur de linux (Mandrake, puis Mandriva) depuis plusieurs années, mais nul en bash, je souhaiterais néanmoins écrire un petit programme qui me permette d'empêcher mon fils Christophe (17ans), de trop trainer sur internet alors qu'il a des devoirs à faire... :-(
Comme je ne souhaite pas lui interdire l'accès à la machine qui lui sert (aussi) pour de la bureautique, j'ai envisage le système suivant:
- Chris se logue avec son nom d'utilisateur et son mot de passe.
- Un script vérifie à quand remonte sa dernière connexion (jour, h, min)
- Si la connexion remonte a PLUS d'une heure, l'accès est libre pour tous programmes, sinon le système s'arrête en affichant dans un message envoyé a l'écran: "Quota dépassé, connexion possible dans XX min". L'idéal serait de désactiver uniquement la connexion internet, (ifconfig ethX down ??) mais cela me parait un peu trop complexe à réaliser a mon niveau.
- Si il poursuit, il peut le faire librement, MAIS s'il lance la connexion internet (firefox, amsn) (ou plus généralement le démon internet ???) un drapeau est positionné à 1 au lieu de 0, et un compteur, lié au lancement de l'application démarre pour une période d'une heure, avec une commande du type: '/opt/firefox/firefox' & '/opt/nil' associé au raccourci clavier des applications correspondantes où nil est un petit exécutable, du type: sleep 3600;halt
c'est ce que j'utilise en ce moment.
Le système fonctionne très bien mais n'interdit pas de relancer l'ordinateur juste après l'arrêt.
Dans mon idée ce drapeau que je n'exploite pas pour le moment devrait permettre au démarrage, de tester la dernière connexion par une ligne du type:
last -R christophe > dirusr1c
qui transfèrerait le contenu de la commande dans un fichier dirusr1c, (ou autre nom)
ensuite un $h=$(cut '' -b 42-43 dirusr1c)
devrait me permettre d'extraire l'heure puis la minute de la dernière connexion, reste à transformer le tout en variable numérique et l'utiliser, ensuite faire un test conditionnel (plus de une heure apres le précédent arrêt, ou moins de une heure... et en fonction, soit remettre le flag a 0 et poursuivre, soit le laisser inchangé et arrêter l'ensemble.
pour plus de clarté j'ai pondu un petit organigramme fonctionnel qui se trouve http://imageshack.com/f/d7organigrammecj7j
Tout est améliorable, vous aurez surement des idées plus raffinées que ma grossière approche.
Pour info, je tourne avec Mandriva 2007, connecté sur internet par adsl ethernet au moyen d'une freebox, et j'utilise essentiellement kde...
Merci de votre aide et de vos éventuelles suggestions.
A voir également:
- Bash: Programmer démarrage et arret mandriva
- Bingo bash - Télécharger - Divers Jeux
- Bash list ✓ - Forum Shell
- Bash permission non accordée - Forum Shell
- Bash pause ✓ - Forum Shell
- Bash addition - Forum Programmation
D'ailleurs même windose n'existerai pas si tout le monde pensait comme ça.
@ Pawels
Je n'ai pas vraiment de compétences en bash (je bidouille quand j'ai besoin) donc je ne peux trop t'aider.
Par contre je suis sûr que tu trouvera sur le net des tutos qui pourront t'aider (si j'ai bien compris le point sur lequel tu butte c'est pour sauvegarder des données dans un fichier, il y a plein de doc là-dessus).