Script shell linux [Fermé]

Signaler
-
 coolmomodu31 -
Salut a tous c'est le premier exercice de ce genre que j'ai trouvé SVP aider moi, j’ai fait un éphore quand même mais sans résultat, ou résultat faux. En effet je suis en 1ére année technique de réseau informatique ça veut dire on a étudier qu’une initialisation en Linux (notion de base : commandes fondamentales). Voici l'exercice :

La système linux stocke ses utilisateurs dans un fichier texte appelé /etc/passwd.le but de cet exercice est de fournir un script Shell qui permet d’éditer des statistiques sur les utilisateurs connectés sur le serveur .le script reçoit un seul paramètre qui représente le nom de fichier dans lequel on récupère les statistiques.
Les données à extraire sont ; les noms de login et UID des utilisateurs actuellement connectés à trier suivant les UID, ainsi que le nom du terminal d’attachement et l’heur de la connexion et le temps écoulé depuis leur connexion .il se peut qu’un même utilisateur soit connecté (comme le cas de l’utilisateur student2 des témoin d’exécution)

Témoin d’exécution :

$ script stat.txt

$ cat stat.txt

UID USER TERMINAL HEUR CONNECXION TEMPS ECOULE

1 root TTY09 09:12 00:12
1234 student1 TTY01 12:34 03:45
4563 student2 TTY05 05:12 00:39
4563 student2 TTY06 05:19 00:32
8973 admin TTY07 07:23 00:14


(Je veut savoir : 1/ si ce fichier va devenir exécutable !2/ et est ce que ce fichier si on le prend dans une clé USB va fonctionner sur un autre ordinateur (pour la correction) !!! 3/ le correcteur vas voir les propres utilisateurs de son ordinateur ou les miens, sa veut dire les utilisateurs de l’ordinateur ou il s’est créer le script !!)
Merci de m’écrire (bien me tracer les étapes une par une)
Aussi me répondre pour les questions 1, 2 et 3 sa seras vraiment très gentil.)

2 réponses

Messages postés
125
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
21 mars 2010
17
je veux bien t'aider mais ce n'est pas clair....

stat.txt = le résultat du script?
Tu as besoin du script c'est ça?

1/ stat.txt ne sera pas exécutable, le script oui.
2/ tu devras faire un .tar pour garder les droits de tes fichiers, sinon ta clé usb (fat32) var prendre tous les droits.
3/ si le script fonctionne, il prendra ses utilisateurs, à part si on doit prendre les utilisateurs du serveur via ssh par exemple.

Un peu de précision stp ;)

#!/bin/bash
id -u
who

le probleme c'est que j'éspére métre le resultat dans un tableau(sa veut dire dans une meme ligne je peu voire l'ID , l'utilisateurs ,terminal,heure de connéction,temps ecoule)
est ce qu'il ya autres commande a ajouté ???
et comnet aire le tableau??


voici le témoin d'execution:

$script stat.txt

$cat stat.txt

UID USER TERMINAL HEURE CONNEXION TEMPS ECOULE
.... ...... ............ ...................... ..................
.... ...... ............ ...................... . ................
.... ..... . ........... ..................... ..................



(
$script stat.txt

$cat stat.txt )!!!!

que represente ça!!ce qui est entre parentéze
Messages postés
125
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
21 mars 2010
17 > coolmomodu31
Alors je viens de faire ça:
script: list-user-ccm.sh (droit d'exécution évidemment)
fichier de sortie: resultat.txt

aperçu:
13:48 maxime@MaXinuX ~/ccm% cat resultat.txt 
1000 maxime tty7 09:09
1000 maxime pts/0 09:13
1000 maxime pts/1 11:06
1000 maxime pts/2 09:39
1000 maxime pts/3 12:01


Le code du script:
#!/bin/bash 

who > whoishere.txt
touch resultat.txt

cat whoishere.txt | while read ligne
do
  user=$(echo "$ligne" |  awk '// {print $1}')
  id=$(id -u $user)
  console=$(echo "$ligne" |  awk '// {print $2}')
  #date=$(echo "$ligne" |  awk '// {print $3}')
  heure=$(echo "$ligne" |  awk '// {print $4}')

echo "$id $user $console $heure" >> resultat.txt
done

rm -f whoishere.txt


Je ne suis pas un expert en code, teste le chez toi, je n'ai pas trouvé la durée, mais je pense qu'on doit pouvoir faire une soustraction avec l'heure actuelle, à part si quelqu'un connait une commande de base.

1/Merci c'est trés gentil ;mais le problem ce que je veux savoir pourquoi moi quand je tappe $cat resultat.txt ça m'affiche les commande (script),quand à toi le fichier s'éxecute!!pour que je peurrai executer moi le script il faut que je tappe $./resultat
comment je peut moi aussi executer le script en tapent $cat resultat.txt !!!! et merci


2/pouquoi dasn l'aperçu d'execution de l'exercice ya:
$script ressultat.txt
$cat resultat.txt

UID USER TERMINAL HEUR CONNECXION TEMPS ECOULE
.... ...... ............ .......................... ....................
.... ...... ............ ......................... ....................
.... ..... ............ .......................... ....................

j'ai pas comprie la premiere ligne "$script ressultat.txt" c'est quoi ça et pourquoi il existe

merci bouceaup c'est grace à vous et a des gens comme toi q'on peut évoluer
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 851
Salut,

j'ai pas comprie la premiere ligne "$script ressultat.txt" c'est quoi ça et pourquoi il existe
Il semblerait que "script" est en fait le nom du script lui même et que "resultat.txt" soit le nom du fichier passé en paramètre dans lequel seront enregistrées les données extraites par ton script.
Messages postés
125
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
21 mars 2010
17 >
Messages postés
40805
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020

+1
bien trouvé ;)

L'exercice aurai dû contenir: 'sh script resultat.txt' ou './script resultat.txt' ça aurai été plus clair!

coolmomodu31 > fait les choses bien, appelle ton script: 'script.sh' et résultat sans '.txt' (Linux n'en a pas besoin).

;)
>
Messages postés
125
Date d'inscription
vendredi 30 mai 2008
Statut
Membre
Dernière intervention
21 mars 2010

salut j'ai pas compris!!! ça me soule ça !!.est ce que tu peu STP m'ajouter temporairement dans votre liste de contacte pour bien m'expliquer et merci d'avance .en effet aprés dem:ain j'ai examen et je doit connaitre ça!!!!!