Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Programmation linux


july
 Partager

Messages recommandés

Bonjour,

Je suis actuellement etudiante a l universite de Montreal et j ai ete dans l obligation de prendre un cours qui ne m interresse absoluement pas afin de suivre les cours ici. Le cours est le suivant : Systeme Linux !!! On vient de me remettre un premier TD a faire avant le 11 fevrier, mais je suis tellement nulle que je ne comprend rien a ce qu il faut faire.... Je recherche donc un programmeur Linux sympa qui aurait 1 heure a perdre pour me remdre service.

 

Dans l ensemble, on me pose certains problemes, mais aussi certaines auestions sur des commandes Linux.

 

Si qq1 est pret a me rendre service, qu il me le fasse savoir en repondant a ce message et je lui ferai parvenir le sujet par mail.

 

Merci a tous et a toutes.

Lien vers le commentaire
Partager sur d’autres sites

Salut,

Tout d'abord je te remercie de tenter de m'aider....

Voivi donc le sujet dans son intégralité :

 

SUJET :

1- Commandes du système.

a) Donnez la commande Unix (Linux) et les bons paramètres qui permet d’afficher tous les processus qui tournent sur un système et leurs “owner”, listés par ordre alphabétique d’usagers.

b) Donnez la commande qui permet d’afficher à l’écran en temps réel les processus les plus actifs d’un système.

2- Fichiers du système. (utilisez deimos.iro comme système de référence)

Supposons que vous avez un script x.sh qui contient des commandes pour avertir les usagers lorsque le système s’arrête (halt) ou redémarre (reboot). Indiquez dans quel(s) répertoire(s) vous placeriez le script et quel sera le nouveau nom du script x.sh pour qu’il soit exécuté au tout début d’un “halt” ou d’un “reboot”, avant l’arrêt de tous les services et processus.

3- Help-desk.

Un usager possède un fichier du nom de & qu’il veut détruire. Malheureusement à chaque fois qu’il fait rm & ça donne une erreur. Trouvez une façon simple d’éliminer ce fichier.

4-

Faites un script en Shell du nom de whichare X (X est un nombre entier valide positif) qui parcoure la variable $PATH et écrit tous les programmes exécutables dans les répertoires de $PATH qui n’ont pas été accédés depuis au moins X jours, en indiquant les sous-arbres recherchés. Vous devez utiliser la commande find pour ce script. Par exemple, whichare 2 pourrait donner:

/usr/local/bin :

/usr/local/bin/formail

/usr/local/bin/mailstat

/usr/local/bin/metamail

/usr/bin :

/usr/bin/Rnmail

/usr/bin/cmail

etc.

5-

Faites un script en Shell du nom de cleandir avec un nombre variable de paramètres qui sont des répertoires existants dans le répertoire courant. Pour chacun des répertoires nommés, votre script doit déplacer tous ses fichiers au répertoire courant. Si les noms des fichiers sont identiques, votre script doit concatener les fichiers sous un même nom dans le répertoire courant. Quand les répertoires nommés sont vides, ils doivent être détruits.

N.B. On suppose que les répertoires nommés ne contiennent que des fichiers (pas de sous-répertoire), et que lorsque votre programme trouve un nom identique au répertoire courant, ce dernier est un fichier valide à concaténer.

 

 

Si d'autres personnes ont des réponses à certaines questions, merci de m'aider...

Lien vers le commentaire
Partager sur d’autres sites

1a) la commande en question, c'est ps par contre pour les switches derrière, en pur style BSD on utilise "pas aux" alors qu'en pur style SystemV c'est "ps -e -f". A priori sous Linux c'est un ps qui accepte les deux styles, donc pas de problème : ps -e -f | sort

 

1b) top

 

2) Supposons que nous utilisions des scripts de démarrage style BSD (c'est ce qui est mis en oeuvre sur ma Slackware, pour les autres systèmes je ne pourrai que faire des hypothèses), pour exécuter un script shell lors de l'arrêt de la machine, il faut l'appeler depuis le script "/etc/rc.d/rc.6". L'emplacement et le nommage du script en question sont totalement libres, mais il est tout de même conseillé de le mettre dans /etc/rc.d et de l'appeler rc.<un truc en rapport avec "alerter les gens">

Pour les autres systèmes (Debian, Red Hat et autres) je crois savoir qu'il s'agit de sous-répertoires de /etc qui contiennent tous les scripts à exécuter, triés par runlevel. Il faut donc placer ton script x.sh dans le répertoire correspondant au runlevel 6 (arrêt de la machine) et qui doit être /etc/rc.d/rc6.d/ (?)

 

3) Ah ! Rien de tel pour énerver un admin que d'appeler un fichier avec un nom contenant des caractères "chiants" tels que | [ - ( ! ? * ' et " (ou des noms de fichiers qui se terminent par un espace, ou commencent par un Ctrl-G)

Le truc con, c'est qu'il faut penser à placer un \ devant le caractère pour qu'il ne soit pas interprété par le shell mais bel et bien pris en compte comme faisant partie du nom du fichier...

rm \&

[mon favori ? créer un répertoire non vide qui s'appelle * (étoile) ! ]

 

4) Si quelqu'un est passé par là pour "optimiser" l'accès au disque en mettant l'option "noatime" sur le filesystem, ça ne marchera pas !

Bref...

En gros on va commencer par lister nos répertoires : for rep in `echo $PATH | sed -e 's/:/ /g'`

ensuite on va boucler sur chacun pour chercher tous les fichiers : do find $rep -print ; done

A partir de là, on a tous les fichiers à tester, et il est déjà tard pour que je m'attarde sur les commandes utilisées pour le faire (et puis si qqu'un d'autre s'en sent le courage)...

Est-ce que tu as suivi, jusque là ?

 

5) J'en garde un peu pour demain, mais le principe est le même : boucles for imbriquées (répertoires, fichiers) avec un "cat $rep/$fichier >> ./$fichier" puis un "rm $rep/* ; rmdir $rep"

Lien vers le commentaire
Partager sur d’autres sites

Salut à toi KewlCat!!!

Je tiens vraiment à te remercier pour toutes ces réponses qui me sont d'une très grande aide. Je pense avoir compris certain truc mais pas tout.... ça aurait été trop beau.

 

En tout cas, merci encore de m'avoir accordé de ton temps !!!

 

@+

Lien vers le commentaire
Partager sur d’autres sites

Un petit coup de "man find" et on trouve ça :

 

       -atime n
             File was last accessed n*24 hours ago.

 

La solution pour la question 4 s'aproche à grands pas...

On est maintenant capables de lister tous les fichiers des répertoires et de lister tous les fichiers mis à jour après la limite passée en paramètre au script...

Tuyau : un petit coup de "diff" et le tour est joué

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous publiez en tant qu’invité. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

 Partager

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...