Cours 3 : Jobs d été et TDs (travaux différés) 4/32. 1 Processus et jobs. Les pipelines. Les processus. Christophe Gonzales

Documents pareils
Le système GNU/Linux IUP NTIC /11/05

Séance n o 5 : Alternatives, gestion des utilisateurs et des processus

Introduction aux Systèmes et aux Réseaux

Cours Programmation Système

La Comptabilité UNIX System V Acctcom

Configurer une sauvegarde FTP simple et efficace

Formation Technicien Supérieur de Support en Informatique T2SI. Le module LINUX. Session J04 Version 01

Qu'est-ce qu'un processus: Définitions

Programmation système en C/C++

Chapitre IX : Virtualisation

Premiers pas. Shell? Les processus vu comme des filtres. commandes

Systèmes d exploitation Gestion de processus

«Astrophysique et instrumentations associées» Cours UNIX Benoît Semelin


TP LINUX : MISE EN PLACE DU SERVEUR DE MESSAGERIE QMAIL

TP1 - Prise en main de l environnement Unix.

INSTALLATION ET CONFIGURATION DE OPENLDAP

Outils pour la pratique

Shell Bash Niveau débutant

Système et réseaux (SR1) Gestion des utilisateurs

2011 Hakim Benameurlaine 1

Année Cours Unix-Shell. par. Karam ALLALI. Ecole Spéciale d Informatique

Chapitre 2. Cluster de calcul (Torque / Maui) Grid and Cloud Computing

Polycopié Cours Système d Exploitation I. Programme : Filière SMI S3

LEs processus coopèrent souvent pour traiter un même problème. Ces

Programmation système I Les entrées/sorties

1 Démarrage de Marionnet

Cours Linux. Cours en ligne Administrateur Systèmes Linux. Académie Libre

3IS - Système d'exploitation linux - Programmation système

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Pharmed. gestion de pharmacie hospitalière. Installation / déploiement

Premiers pas en Linux

Les processus 2/54. Qu est-ce qu un processus? 3(6)/54. Se souvenir 1(1)/54. Le système de fichiers (exemple du disque dur)

L informatique en BCPST

Préparation LPI. Exam Securité. Document sous licence Creative commons «by nc sa» nc sa/2.

Client windows Nagios Event Log

Programmation C. Apprendre à développer des programmes simples dans le langage C

La mémoire. Un ordinateur. L'octet. Le bit

Environnements informatiques

Architecture de la plateforme SBC

Service Déposant: Procédure d installation. Page 1. Service déposant. Procédure d installation Version 2.3

Unix/Linux I. 1 ere année DUT. Université marne la vallée

Performances et optimisations

JES Report Broker. Campus Technologies. SAE de CHALEMBERT 1 Rue Blaise PASCAL JAUNAY-CLAN info@campustec.

TP 1 Prise en main de l environnement Unix

TP 4 de familiarisation avec Unix

Guide de démarrage rapide

VoD ( Video on Demand ) avec VLC

PUPPET. Romain Bélorgey IR3 Ingénieurs 2000

Serveur Linux : FTP. Mise en place d un service FTP sous Linux. Bouron Dimitri 20/04/2014

1 Mesure de la performance d un système temps réel : la gigue

Structure d un programme

DOCKER MEETUP. Christophe Labouisse

INFO-F-309 Administration des Systèmes. TP7: NFS et NIS. Sébastien Collette Résumé

Domaine Name System. Auteur: Congduc Pham, Université Lyon 1. Figure 1: Schéma des salles TP11 et TD4

MISE EN PLACE D UN FIREWALL ET D UN SERVEUR PROXY SOUS LINUX MANDRIVA.

Manuel de System Monitor

Exercice sur les Dockers

arcopole Studio Annexe 4 Intégration LDAP et processus d authentification Site du programme arcopole :

NON URGENTE TEMPORAIRE DEFINITIVE OBJET : RÉCUPÉRATION DES DONNÉES CLIENT SUR DISQUE DUR DÉFECTUEUX OU INVALIDÉ

Entraide-Info. Entraide pour les informaticiens LINUX FEDORA CORE 4 : ADMINISTRATION DU SYSTEME OLIVIER D.

Contents. 1 Premiers pas en Linux. 1.2 Généralités. 1.1 Bref historique Linux

Commandes Linux. Gestion des fichiers et des répertoires. Gestion des droits. Gestion des imprimantes. Formation Use-IT

1 ) INSTALLATION DE LA CONSOLE 2 2 ) PREMIER DÉMARRAGE DE LA CONSOLE 3 3 ) LES JOBS 4 4 ) LES ORDINATEURS 6

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

PNTS. L informatique au Service de l Assurance et de la Prévoyance

Sendmail milter/greylisting

Documentation FOG. Déploiement d images de systèmes d exploitation à travers le réseau.

DAns un système multi-utilisateurs à temps partagé, plusieurs processus

TP : Introduction à TCP/IP sous UNIX

TP1 : Initiation à l algorithmique (1 séance)

ASR4 Réseaux Département Informatique, IUT Bordeaux 1. DHCP Prénom : Nom : Groupe :

Première partie. Qu est-ce qu un script?

UBUNTU Administration d'un système Linux (4ième édition)

Open Source Job Scheduler. Installation(s)

Manuel d utilisation de ndv 4

Installation et mise en œuvre de OpenSSH sous AIX 5L

Etude de l ENT de l Université de Paris 5. Mise en place d outils de suivi de la charge de l ENT (monitoring)

Logiciel : GLPI Version : SYNCRHONISATION DE GLPI AVEC ACTIVE DIRECTORY. Auteur : Claude SANTERO Config. : Windows 2003.

Guide de rapports ADT Sélecte

Surveillance de Scripts LUA et de réception d EVENT. avec LoriotPro Extended & Broadcast Edition

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

INFO-F-404 : Techniques avancées de systèmes d exploitation

PPe jaune. Domingues Almeida Nicolas Collin Leo Ferdioui Lamia Sannier Vincent [PPE PROJET FTP]

Serveur de sauvegardes incrémental

Table des matières Hakim Benameurlaine 1

Ladibug TM Document Camera Manuel de l Utilisateur de Logiciel d image

Introduction au Système d Exploitation Unix/Linux

Les différentes méthodes pour se connecter

KWISATZ_TUTO_module_magento novembre 2012 KWISATZ MODULE MAGENTO

Cours Unix 1. Présentation d UNIX. Plan du cours 1

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

IceWarp serveur sur Linux : Guide d'installation

Procédure d installation de la Sauvegarde de Windows Server

Synchro et Threads Java TM

On appelle variable condition une var qui peut être testée et

Stage SambaÉdu Module B. Jour 9 Outils complémentaires et problèmes récurrents divers

Cours de Systèmes d Exploitation

Les GPO 2012 server R2 (appliqués à Terminal Serveur Edition)

Transcription:

Cours 3 : Jobs d été et TDs (travaux différés) Christophe Gonzales 1 Processus et jobs 3I015 Principes et pratiques de l administration des systèmes Cours 3 : Jobs d été et TDs (travaux différés) 2/32 Les pipelines Les processus pipeline (définition du manuel du bash) pipeline = séquence de commandes simples séparées par Dans un pipeline, commandes exécutées dans leur propre sous-shell Valeur de retour du pipeline = celle de la dernière commande format d un pipeline : [time [-p]] [!] command1 [ command2...] Exemples : [gonzales@msldap /]$ ls -l grep toto [gonzales@msldap /]$ ls -l Process process = instance d un programme en exécution contient les ressources : le code machine exécuté une zone mémoire réservée des descripteurs de ressources (fichiers, etc.) des attributs de sécurité (permissions) état (registre processeur, etc.) Cours 3 : Jobs d été et TDs (travaux différés) 3/32 Cours 3 : Jobs d été et TDs (travaux différés) 4/32

Les états des processus (1/2) Les états des processus (2/2) created waiting running terminated main memory blocked [gonzales@msldap /]$ ps u USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND gonzales 1910 0.0 0.0 108436 1848 pts/0 Ss 12 :59 0 :00 bash gonzales 1932 1.0 0.0 108088 1080 pts/0 R+ 13 :00 0 :00 ps u swapped out and waiting swapped out and blocked page file / swap space 1 création chargement en mémoire en attente 2 scheduler exécution 3 attente de ressources état bloqué 4 fin d exécution : terminated sigle D R S T X Z signification Uninterruptible sleep (usually IO) Running or runnable (on run queue) Interruptible sleep (waiting for an event to complete) Stopped, either by a job control signal or because it is being traced dead (should never be seen) Defunct ( zombie ) process, terminated but not reaped by its parent Cours 3 : Jobs d été et TDs (travaux différés) 5/32 Arbres de processus Cours 3 : Jobs d été et TDs (travaux différés) 6/32 Effective UID (1/3) [gonzales@msldap /]$ ps j PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 2149 2153 2153 2153 pts/0 3187 Ss 500 0 :00 bash 2153 2210 2210 2153 pts/0 3187 S 500 0 :13 emacs cours5.tex 2153 3187 3187 2153 pts/0 3187 S+ 500 0 :00 man ps 3187 3198 3187 2153 pts/0 3187 S+ 500 0 :00 pager -s 2149 3207 3207 3207 pts/2 3214 Ss 500 0 :00 bash 3207 3214 3214 3207 pts/2 3214 R+ 500 0 :00 ps j 2210 emacs 2149 gnome-terminal 2153 bash 3207 bash 3187 man ps 3198 pager -s 3214 ps j UIDs associés à un process Process UNIX X = 3 UID : Real UID (RUID) = UID de l utilisateur ou du process qui a créé X Peut être modifié seulement si EUID = 0 Effective UID (EUID) = l UID utilisé pour évaluer les droits de X à exécuter certaines actions EUID 0 EUID peut être modifié en RUID ou SUID EUID = 0 EUID peut être changé en n importe quoi { UID du propriétaire de X si bit SUID on Saved UID (SUID) = RUID sinon Cours 3 : Jobs d été et TDs (travaux différés) 7/32 Cours 3 : Jobs d été et TDs (travaux différés) 8/32

Effective UID (2/3) Effective UID (3/3) change id.c #include <sys/types.h> #include <unistd.h> process usuels : exécutés sous l UID de l utilisateur programmes SUID permettent des accès privilégiés Cours 3 : Jobs d été et TDs (travaux différés) 9/32 Les jobs int main () { seteuid(502) ; getchar() ; return 0 ; } [root@msldap /]# gcc -o change uid change uid.c [root@msldap /]# chmod u+s change uid [root@msldap /]# exit [gonzales@msldap /]$./change uid RUID EUID SUID COMMAND 500 500 500 bash 500 502 0 /change uid 500 500 500 ps -eo ruid,euid,suid,command Cours 3 : Jobs d été et TDs (travaux différés) 10/32 Le contrôle des jobs (1/6) job Job = ensemble de processus : comportant un pipeline tous les processus descendant de lui qui appartiennent au même groupe de process job = numéro de job : JID (Job IDentifier) la commande jobs permet de lister les jobs contrôle d un job contrôle d un job = suspendre/continuer l exécution de processus. Le système d exploitation maintient la notion d ID de groupe de processus du terminal courant. Les processus dont l ID correspond à celui-ci reçoivent les signaux du clavier tels que SIGINT = en foreground. Les autres sont en background et ne reçoivent pas les signaux du clavier. Seuls les process en foreground peuvent lire et écrire sur le terminal. Cours 3 : Jobs d été et TDs (travaux différés) 11/32 Cours 3 : Jobs d été et TDs (travaux différés) 12/32

Le contrôle des jobs (2/6) Commandes de contrôle : CTRL-Z lorsqu un process tourne : = stoppe le process et redonne la main au bash CTRL-Y lorsqu un process tourne : = stoppe le process lorsque celui-ci essaye de lire à partir du terminal, et rend la main au bash bg : continuer le job en arrière plan fg : continuer le job en avant-plan kill : envoyer un signal à un process/un job Exécuter un process en terminant la commande par & lance celui-ci en arrière-plan. Le contrôle des jobs (3/6) Exemple : commande sleep = processus sommeillant N secondes activée en mode interactif (avant-plan). risque d annuler l effet d interactivité pendant tout ce temps. Ctrl-Z suspend le processus associé. Le contrôle est alors redonné au terminal. [gonzales@msldap /]$ sleep 500 ^Z [1]+ stopped sleep 500 [gonzales@msldap /]$ ps PID TT STAT TIME COMMAND 1020 co TW 0:00 sleep 500 [gonzales@msldap /]$ jobs [1]+ stopped sleep 500 Cours 3 : Jobs d été et TDs (travaux différés) 13/32 Le contrôle des jobs (4/6) Comment désigner un job donné : Le caractère % %n = le job numéro n. %% et %+ = job courant, c.-a.-d. le dernier job stoppé pendant qu il tournait en avant-plan ou lancé en arrière-plan. %- = job précédent. Un job peut être désigné en utilisant un préfixe du nom utilisé pour le lancer (ex : %em pour désigner emacs), ou une sous-chaîne apparaissant dans la commande (%?ma pour emacs). Les commandes fg et bg peuvent prendre comme paramètre un job identifié par l un des % ci-dessus. Cours 3 : Jobs d été et TDs (travaux différés) 14/32 Le contrôle des jobs (5/6) [gonzales@msldap /]$ emacs ^Z [1]+ Stopped emacs [gonzales@msldap /]$ sleep 500 & [2] 20253 [gonzales@msldap /]$ jobs -l [1]+ 20251 Stopped emacs [2]- 20253 Running sleep 500 & [gonzales@msldap /]$ bg %em [1]+ emacs & [gonzales@msldap /]$ jobs -l [1]- 20251 Running emacs & [2]+ 20253 Running sleep 500 & [gonzales@msldap /]$ fg %2 [gonzales@msldap /]$ sleep 500 ^C [gonzales@msldap /]$ jobs -l [1]+ 20251 Running emacs & [gonzales@msldap /]$ kill %1 ; jobs -l [1]+ Terminated emacs Cours 3 : Jobs d été et TDs (travaux différés) 15/32 Cours 3 : Jobs d été et TDs (travaux différés) 16/32

Le contrôle des jobs (6/6) Priorité des processus/jobs Quelques caractères de contrôle (certains générateurs de signaux) : Ctrl nom action ^C interrupt envoie le signal SIGINT au process en cours ^Z suspend envoie le signal SIGTSTP au process en cours ^\ quit envoie le signal SIGQUIT au process en cours ^S stop arrête le défilement de l écran. ^Q start reprend le défilement de l écran. [gonzales@msldap /]$ emacs & sleep 500 & [1] 20856 [2] 20858 [gonzales@msldap /]$ jobs [1]- Running emacs & [2]+ Running sleep 500 & [gonzales@msldap /]$ kill -INT %2 [2]+ Interrupt sleep 500 [gonzales@msldap /]$ jobs [1]+ Running emacs & Cours 3 : Jobs d été et TDs (travaux différés) 17/32 SIGHUP possibilité de donner des priorités aux process nice -n priorité commande priorité { 19,..., 19} 19 = le plus prioritaire renice -n priorité -p pid Cours 3 : Jobs d été et TDs (travaux différés) 18/32 nohup et screen nohup commande entrées/sorties standard/d erreur! SIGHUP = signal HangUP terminaison de bash envoi SIGHUP à tous les jobs = logout envoi SIGHUP comportement normal : terminaison du job screen : multiplexeur de terminaux en mode texte persistant aux déconnexions/reconnexions partage de sessions = session utilisable simultanément par plusieurs ordinateurs simultanément partage de terminaux = plusieurs terminaux dans un même screen entrées/sorties standards Cours 3 : Jobs d été et TDs (travaux différés) 19/32 Cours 3 : Jobs d été et TDs (travaux différés) 20/32

Les travaux différés 3 manières d exécuter des travaux en différé : 2 Travaux différés at (arbitrary time) : exécute une commande à une date précise batch : exécution quand le niveau d utilisation du système le permet (< 80%) cron (chronograph) :exécution à intervalles réguliers at et batch dépendent du démon atd (/usr/sbin/atd). cron dépend du démon crond (/usr/sbin/crond). Cours 3 : Jobs d été et TDs (travaux différés) 21/32 La commande at invocation de la commande at at -f script TIME où TIME vaut : HH:MM : aujourd hui si heure est venir, sinon le lendemain midnight, noon, teatime (4 heures de l après midi) ; une heure suivie de AM ou PM pour le matin ou l après midi ; une date MMDDYY ou MM/DD/YY ou MM.DD.YY. La date doit être écrite après l heure ; now + N unités de temps, où unité de temps = minutes, hours, days, weeks ; heure suffixée de today ou de tomorrow. Exemple : at -f job 4pm + 3 days at -f job 10:00am July 31 at -f job 10:00am 07/31/10 at -f job 01:00 tomorrow Cours 3 : Jobs d été et TDs (travaux différés) 23/32 Cours 3 : Jobs d été et TDs (travaux différés) 22/32 at, queues, atq et atrm (1/2) at -f script TIME exécute commandes du fichier script. at TIME lit les commandes sur l entrée standard. Commandes placées dans une queue. Le démon atd vérifie régulièrement l état des queues et exécute les commandes qui doivent être exécutées. Possibilité d utiliser plusieurs queues at -q queue TIME avec des priorités différentes. queue désignée par une lettre de a à z, ou bien A à Z. La queue a est celle par défaut de at, et la b celle de batch. La priorité d exécution baisse avec la lettre. Queue spéciale = pour les jobs en cours d exécution. possibilité de visualiser les queues avec la commande atq. possibilité de supprimer un travail en queue avec atrm. Cours 3 : Jobs d été et TDs (travaux différés) 24/32

at, queues, atq et atrm (2/2) la commande at (fin) le working directory, l environnement (à part TERM, DISPLAY et ), et le umask utilisés par les travaux exécutés sont ceux au [gonzales@msldap /]$ atq moment de l invocation de at. [gonzales@msldap /]$ echo echo toto > toto && at -f toto -q c now + 11 minutes job 6 at 2007-03-21 19:14 [gonzales@msldap /]$ echo echo toto at now + 22 minutes job 7 at 2007-03-21 19:25 [gonzales@msldap /]$ atq 6 2007-03-21 19:14 c gonzales Sécurité : 7 2007-03-21 19:25 a gonzales [gonzales@msldap /]$ ls -l /var/spool/at total 16 -rwx------ 1 gonzales users 2557 Mar 21 19:03 a00007012ab0f1 -rwx------ 1 gonzales users 2557 Mar 21 19:03 c00006012ab0e6 drwx------ 2 daemon daemon 4096 Mar 21 18:44 spool les affichages sur stdout et stderr sont envoyés par mail à l utilisateur invoquant at en utilisant la commande /usr/sbin/sendmail. root peut invoquer les commandes at et batch Si le fichier /etc/at.allow existe, seuls les utilisateurs mentionnés dans ce fichier peuvent exécuter at et/ou batch Syntaxe du fichier : un seul nom par ligne, pas d espace Si /etc/at.allow n existe pas, tout utilisateur n appartenant pas à /etc/at.deny peut exécuter at et/ou batch. lire man 1 at et man 8 atd Cours 3 : Jobs d été et TDs (travaux différés) 25/32 la commande Cron Cours 3 : Jobs d été et TDs (travaux différés) 26/32 le démon Crond Cron cron (chronograph) : permet d exécuter des commandes à intervalles réguliers Principe d utilisation : la crontab contient les commandes à exécuter /usr/bin/crontab -e = éditer pour ajouter, supprimer, modifier des commandes à exécuter /usr/bin/crontab -l = lister la crontab de l utilisateur le démon crond (/usr/sbin/crond) vérifie régulièrement s il doit exécuter des process et, le cas échéant, les exécute Démon crond lancé au démarrage de linux crond recherche dans /var/spool/cron les fichiers de crontab des utilisateurs (nommés d après leur login) il examine le fichier /etc/crontab et ceux du répertoire /etc/cron.d crond se réveille toutes les minutes et vérifie si, d après ces tables, certains processus doivent être exécutés. Les affichages de ceux-ci sont envoyés par mail au propriétaire de la crontab crond vérifie les changements dans les différentes crontabs toutes les minutes Cours 3 : Jobs d été et TDs (travaux différés) 27/32 Cours 3 : Jobs d été et TDs (travaux différés) 28/32

la syntaxe de crontab (1/2) chaque ligne de job a le format : minute heure jour-du-mois mois jour-de-la-semaine commande valeurs des champs : champ valeurs possibles minute 0 59 heure 0 23 jour-du-mois 1 31 mois 1 12 (ou les 3 premières lettres du mois (jan, feb)) jour-de-la-semaine 0 7 (0 ou 7 = dimanche) des listes de valeurs pour chaque champ, séparées par des, la notation = intervalles. Exemple : 8 11 8,9,10,11. la notation /nombre = pas des intervalles. Exemple : 0 11/3 0,3,6,9. une astérisque = toutes les valeurs possibles. */nombre pour spécifier un pas. Cours 3 : Jobs d été et TDs (travaux différés) 29/32 Exemple de crontab la syntaxe de crontab (2/2) Les lignes vides ou commençant par une espace ou une tabulation sont ignorées Les lignes commençant par un # sont ignorées Une ligne active est soit une ligne de commande, soit une définition d environnement de la forme : nom = valeur crond définit automatiquement les variables LOGNAME et HOME à partir de l /etc/passwd. HOME et SHELL peuvent être redéfinis. si la variable MAILTO est définie, tous les affichages provoqués par les exécutions de processus seront envoyés par mail. Cours 3 : Jobs d été et TDs (travaux différés) 30/32 Le démon crond (fin) # utiliser /bin/tcsh au lieu de /bin/sh pour exécuter les commandes SHELL=/bin/tcsh # envoyer les affichages a toto MAILTO=toto@titi.fr # exécuter une commande tous les jours, # 5 minutes après minuit 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # exécuter une commande à 14h15 le 1er jour de chaque mois 15 14 1 * * $HOME/bin/monthly # exécuter une commande à 22h00 tous les jours de la # semaine excepté le week-end 0 22 * * 1-5 mail -s "It s 10pm" joe%joe,%%coucou% # exécution toutes les 2 heures, tous les jours 23 0-23/2 * * * echo "run 23 minutes after midn, 2am, 4am..." # exécution tous les dimanches à 4h05 5 4 * * sun echo "run at 5 after 4 every sunday" Syntaxe des fichiers cron de /etc légèrement différente de celle des crontabs des utilisateurs. crond utilise /var/spool/cron pour les crontabs des utilisateurs possibilité d interdire des soumissions de travaux avec les fichiers /etc/cron.allow et /etc/cron.deny lire man 5 crontab, man 1 crontab, man 8 cron utiliser anacron pour les jobs à exécuter périodiquement (avec des fréquences en termes de jours) sur des machines qui ne sont pas allumées 24h/24. Cours 3 : Jobs d été et TDs (travaux différés) 31/32 Cours 3 : Jobs d été et TDs (travaux différés) 32/32