JavaScript is required to for searching.
Ignorer les liens de navigation
Quitter l'aperu
Gestion des informations système, des processus et des performances dans Oracle Solaris 11.1     Oracle Solaris 11.1 Information Library (Français)
search filter icon
search icon

Informations document

Préface

1.  Gestion des informations système (tâches)

2.  Gestion des processus système (tâches)

3.  Surveillance des performances du système (tâches)

4.  Tâches de planification du système (tâches)

Méthodes d'exécution automatique des tâches système

Planification de travaux répétitifs : crontab

Planification d'un travail unique : at

Planification des tâches système

Création et modification de fichiers crontab (liste des tâches)

Planification d'une tâche système répétitive (cron )

Contenu d'un fichier crontab

Gestion de la planification par le démon cron

Syntaxe des entrées du fichier crontab

Création et modification de fichiers crontab

Création ou modification d'un fichier crontab

Vérification de l'existence d'un fichier crontab

Affichage des fichiers crontab

Affichage d'un fichier crontab

Suppression des fichiers crontab

Suppression d'un fichier crontab

Contrôle de l'accès à la commande crontab

Refus d'accès à la commande crontab

Restriction de l'accès à la commande crontab aux utilisateurs spécifiés

Vérification de l'accès restreint à la commande crontab

Planification de tâches à l'aide de la commande at

Utilisation de la commande at (liste des tâches)

Planification d'une seule tâche système (at)

Description de la commande at

Contrôle de l'accès à la commande at

Création d'un travail at

Affichage de la file d'attente at

Vérification d'un travail at

Affichage des travaux at

Suppression des travaux at

Refus d'accès à la commande at

Vérification du refus d'accès à la commande at

5.  Gestion de la console système, des périphériques terminaux et des services d'alimentation (tâches)

Index

Planification des tâches système

Cette section inclut des tâches permettant de planifier les tâches système à l'aide de fichiers crontab.

Création et modification de fichiers crontab (liste des tâches)

Tâche
Description
Voir
Création ou modification d'un fichier crontab
Utilisez la commande crontab -e pour créer ou modifier un fichier crontab.
Vérification de l'existence d'un fichier crontab
Utilisez la commande ls -l pour vérifier le contenu du fichier /var/spool/cron/crontabs.
Affichage d'un fichier crontab
Utilisez la commande ls -l pour afficher le fichier crontab.
Suppression d'un fichier crontab
Le fichier crontab est configuré avec des autorisations restrictives. Utilisez la commande crontab -r plutôt que la commande rm pour supprimer un fichier crontab.
Refus de l'accès à crontab
Pour refuser aux utilisateurs l'accès aux commandes crontab, ajoutez des noms d'utilisateurs au fichier /etc/cron.d/cron.deny en modifiant ce fichier.
Limitation de l'accès à crontab aux utilisateurs spécifiés
Pour permettre aux utilisateurs d'accéder à la commande crontab, ajoutez des noms d'utilisateurs au fichier /etc/cron.d/cron.allow.

Planification d'une tâche système répétitive (cron )

Les sections suivantes décrivent la création, la modification, l'affichage et la suppression des fichiers crontab, ainsi que la façon d'en contrôler l'accès.

Contenu d'un fichier crontab

Le démon cron système planifie les tâches système en fonction des commandes contenues dans chaque fichier crontab. Un fichier crontab se compose de commandes, une par ligne, à exécuter à intervalles réguliers. Le début de chaque ligne indique la date et l'heure auxquelles le démon cron doit exécuter la commande.

Par exemple, un fichier crontab nommé root est fourni pendant l'installation du logiciel SunOS. Le contenu du fichier inclut les lignes de commande suivantes :

10 3 * * * /usr/sbin/logadm (1)
15 3 * * 0 /usr/lib/fs/nfs/nfsfind (2)
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1 (3)
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean (4)

La section suivante décrit la sortie de chacune de ces lignes de commande :

Pour plus d'informations sur la syntaxe des lignes dans un fichier crontab, reportez-vous à la section Syntaxe des entrées du fichier crontab.

Les fichiers crontab sont stockés dans le répertoire /var/spool/cron/crontabs. Plusieurs fichiers crontab en plus de root sont fournis pendant l'installation du logiciel SunOS. Consultez le tableau ci-dessous.

Tableau 4-2 Fichiers crontab par défaut

Fichier crontab
Fonction
adm
Comptabilisation
root
Fonctions générales du système et nettoyage du système de fichiers
sys
Collecte des données sur les performances
uucp
Nettoyage uucp général

Outre les fichiers crontab par défaut, les utilisateurs peuvent créer des fichiers crontab pour planifier leurs propres tâches système. D'autres fichiers crontab sont nommés d'après les comptes utilisateur dans lesquels ils sont créés, tels que bob, mary, smith ou jones.

Pour accéder aux fichiers crontab appartenant à root ou à d'autres utilisateurs, des privilèges de superutilisateur sont requis.

Les procédures de création, de modification, d'affichage et de suppression des fichiers crontab sont décrites dans les sections suivantes.

Gestion de la planification par le démon cron

Le démon cron gère la planification automatique des commandes crontab. Le rôle du démon cron consiste à vérifier dans le répertoire /var/spool/cron/crontab la présence de fichiers crontab.

Le démon cron effectue les tâches suivantes au démarrage :

De la même façon, le démon cron contrôle la planification des fichiers at. Ces fichiers sont stockés dans le répertoire /var/spool/cron/atjobs . Le démon cron reçoit également les notifications des commandes crontab relatives aux travaux at soumis.

Syntaxe des entrées du fichier crontab

Un fichier crontab comprend des commandes, une par ligne, qui s'exécutent automatiquement à l'heure spécifiée par les cinq premiers champs de chaque ligne de commande. Ces cinq champs, décrits dans le tableau suivant, sont séparés par des espaces.

Tableau 4-3 Valeurs acceptables pour les champs d'heure crontab

Champ d'heure
Valeurs
Minute
0-59
Heure
0-23
Jour du mois
1-31
Mois
1-12
Jour de la semaine
0-6 (0 = dimanche)

Suivez les instructions ci-dessous pour utiliser des caractères spéciaux dans les champs d'heure crontab :

Par exemple, l'entrée de commande crontab suivante affiche un message de rappel dans la fenêtre de la console utilisateur à 16 heures, le premier et le quinze de chaque mois.

0 16 1,15 * * echo Timesheets Due > /dev/console

Chaque commande contenue dans un fichier crontab doit comporter une ligne, même si cette dernière est très longue. Le fichier crontab ne reconnaît pas les retours chariot supplémentaires. Pour plus d'informations sur les entrées et options de commande crontab, reportez-vous à la page de manuel crontab(1).

Création et modification de fichiers crontab

La façon la plus simple de créer un fichier crontab consiste à utiliser la commande crontab -e. Cette commande ouvre l'éditeur de texte qui a été défini pour votre environnement système. L'éditeur par défaut de votre environnement système est défini dans la variable d'environnement EDITOR. Si cette variable n'a pas été définie, la commande crontab utilise l'éditeur par défaut, ed. Vous devez choisir, de préférence, un éditeur que vous connaissez bien.

L'exemple suivant illustre comment déterminer si un éditeur a été défini et comment configurer vi comme éditeur par défaut.

$ which $EDITOR
$ 
$ EDITOR=vi
$ export EDITOR

Lorsque vous créez un fichier crontab, il est automatiquement placé dans le répertoire /var/spool/cron/crontabs et reçoit votre nom d'utilisateur. Vous pouvez créer ou modifier un fichier crontab pour un autre utilisateur ou pour l'utilisateur root si vous disposez des privilèges d'utilisateur root.

Création ou modification d'un fichier crontab

Avant de commencer

Si vous créez ou modifiez un fichier crontab appartenant à root ou à un autre utilisateur, vous devez prendre le rôle root. Reportez-vous à la section Utilisation de vos droits d’administration du manuel Administration d’Oracle Solaris 11.1 : Services de sécurité.

Vous n'avez pas besoin de prendre le rôle root pour modifier votre propre fichier crontab.

  1. Créez un fichier crontab ou modifiez un fichier existant.
    # crontab -e [username]

    username indique le nom du compte utilisateur pour lequel vous souhaitez créer ou modifier un fichier crontab. Vous pouvez créer votre propre fichier crontab sans privilèges de superutilisateur, mais vous devez disposer des privilèges de superutilisateur pour créer ou modifier un fichier crontab pour root ou un autre utilisateur.


    Attention

    Attention - Si vous saisissez accidentellement la commande crontab sans option, appuyez sur le caractère d'interruption de l'éditeur. Ce caractère vous permet de quitter sans enregistrer les modifications. En revanche, si vous avez enregistré les modifications et quitté le fichier, le fichier crontab est remplacé par un fichier vide.


  2. Ajoutez des lignes de commande au fichier crontab.

    Suivez la syntaxe décrite dans Syntaxe des entrées du fichier crontab. Le fichier crontab est placé dans le répertoire /var/spool/cron/crontabs.

  3. Vérifiez les modifications apportées au fichier crontab.
    # crontab -l [username]

Exemple 4-1 Création d'un fichier crontab

L'exemple suivant décrit la création d'un fichier crontab pour un autre utilisateur.

# crontab -e jones

L'entrée de commande suivante ajoutée à un nouveau fichier crontab supprime automatiquement les fichiers journaux du répertoire personnel d'un utilisateur à 1:00 chaque dimanche matin. L'entrée de commande ne redirigeant pas la sortie, les caractères de redirection sont ajoutés à la ligne de commande après *.log. L'exécution correcte de la commande est ainsi garantie.

# This command helps clean up user accounts.
1 0 * * 0 rm /home/jones/*.log > /dev/null 2>&1

Vérification de l'existence d'un fichier crontab

Affichage des fichiers crontab

La commande crontab -l affiche le contenu d'un fichier crontab de la même façon que la commande cat affiche le contenu d'autres types de fichiers. Vous n'avez pas besoin d'accéder au répertoire /var/spool/cron/crontabs (contenant les fichiers crontab) pour utiliser cette commande.

Par défaut, la commande crontab -l affiche votre propre fichier crontab. Pour afficher les fichiers crontab qui appartiennent à d'autres utilisateurs, vous devez être connecté en tant que superutilisateur.

Affichage d'un fichier crontab

Avant de commencer

Prenez le rôle root pour afficher un fichier crontab appartenant à root ou à un autre utilisateur. Reportez-vous à la section Utilisation de vos droits d’administration du manuel Administration d’Oracle Solaris 11.1 : Services de sécurité.

Vous n'avez pas besoin de prendre le rôle root pour afficher votre propre fichier crontab.

Exemple 4-2 Affichage d'un fichier crontab

Cet exemple illustre l'utilisation de la commande crontab -l pour afficher le contenu du fichier crontab par défaut de l'utilisateur.

$ crontab -l
13 13 * * * chmod g+w /home1/documents/*.book > /dev/null 2>&1

Exemple 4-3 Affichage du fichier root crontab par défaut

Cet exemple illustre l'affichage du fichier root crontab par défaut.

$ suPassword:

# crontab -l
#ident  "@(#)root       1.19    98/07/06 SMI"   /* SVr4.0 1.1.3.1       */
#
# The root crontab should be used to perform accounting data collection.
#
#
10 3 * * * /usr/sbin/logadm
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
#10 3 * * * /usr/lib/krb5/kprop_script ___slave_kdcs___

Exemple 4-4 Affichage du fichier crontab d'un autre utilisateur

Cet exemple illustre l'affichage du fichier crontab d'un autre utilisateur.

$ su
Password:
# crontab -l jones
13 13 * * * cp /home/jones/work_files /usr/backup/. > /dev/null 2>&1

Suppression des fichiers crontab

Par défaut, les fichiers crontab sont protégés de sorte que vous ne puissiez pas supprimer par inadvertance un fichier crontab en utilisant la commande rm. Utilisez plutôt la commande crontab -r pour supprimer des fichiers crontab.

Par défaut, la commande crontab -r supprime votre propre fichier crontab.

Vous n'avez pas besoin d'accéder au répertoire /var/spool/cron/crontabs (contenant les fichiers crontab) pour utiliser cette commande.

Suppression d'un fichier crontab

Avant de commencer

Prenez le rôle root pour supprimer un fichier crontab appartenant à root ou à un autre utilisateur. Les rôles contiennent des autorisations et des commandes privilégiées. Reportez-vous à la section Utilisation de vos droits d’administration du manuel Administration d’Oracle Solaris 11.1 : Services de sécurité.

Vous n'avez pas besoin de prendre le rôle root pour supprimer votre propre fichier crontab.

  1. Supprimez le fichier crontab.
    # crontab -r [username]

    username indique le nom du compte utilisateur pour lequel vous souhaitez supprimer un fichier crontab. La suppression des fichiers crontab d'un autre utilisateur exige des privilèges de superutilisateur.


    Attention

    Attention - Si, par mégarde, vous saisissez la commande crontab sans option, appuyez sur le caractère d'interruption de l'éditeur. Ce caractère vous permet de quitter sans enregistrer les modifications. En revanche, si vous avez enregistré les modifications et quitté le fichier, le fichier crontab est remplacé par un fichier vide.


  2. Vérifiez que le fichier crontab a bien été supprimé.
    # ls /var/spool/cron/crontabs

Exemple 4-5 Suppression d'un fichier crontab

L'exemple suivant illustre comment l'utilisateur smith emploie la commande crontab -r pour supprimer son propre fichier crontab.

$ ls /var/spool/cron/crontabs
adm     jones     root    smith    sys     uucp
$ crontab -r
$ ls /var/spool/cron/crontabs
adm     jones    root    sys    uucp

Contrôle de l'accès à la commande crontab

Vous pouvez contrôler l'accès à la commande crontab en utilisant deux fichiers du répertoire /etc/cron.d : cron.deny et cron.allow. Ces fichiers permettent uniquement aux utilisateurs spécifiés d'exécuter les tâches de commande crontab telles que la création, la modification, l'affichage ou la suppression de leurs propres fichiers crontab.

Les fichiers cron.deny et cron.allow contiennent une liste de noms d'utilisateur, chaque ligne comportant un seul nom.

Ces fichiers de contrôle d'accès fonctionnent comme suit :

Les privilèges de superutilisateur sont requis pour modifier ou créer les fichiers cron.deny et cron.allow.

Le fichier cron.deny, qui est créé pendant l'installation du logiciel SunOS, contient les noms d'utilisateur suivants :

$ cat /etc/cron.d/cron.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess

Aucun des noms d'utilisateur du fichier cron.deny par défaut ne peut accéder à la commande crontab. Vous pouvez modifier ce fichier afin d'ajouter d'autres noms d'utilisateur qui n'auront pas accès à la commande crontab.

Aucun fichier cron.allow n'est fourni par défaut. Par conséquent, une fois le logiciel Oracle Solaris installé, tous les utilisateurs (à l'exception de ceux qui figurent dans le fichier cron.deny par défaut) peuvent accéder à la commande crontab. Si vous créez un fichier cron.allow, seuls ces utilisateurs peuvent accéder à la commande crontab.

Refus d'accès à la commande crontab

  1. Prenez le rôle root.

    Reportez-vous à la section Utilisation de vos droits d’administration du manuel Administration d’Oracle Solaris 11.1 : Services de sécurité.

    $ su -
    Password:
    #
  2. Modifiez le fichier /etc/cron.d/cron.deny et ajoutez des noms d'utilisateur, un par ligne. Ajoutez les utilisateurs qui n'auront pas accès aux commandes crontab.
    daemon
    bin
    smtp
    nuucp
    listen
    nobody
    noaccess
    username1
    username2
    username3
    .
    .
    .
  3. Vérifiez que le fichier /etc/cron.d/cron.deny contient les nouvelles entrées.
    # cat /etc/cron.d/cron.deny
    daemon
    bin
    nuucp
    listen
    nobody
    noaccess

Restriction de l'accès à la commande crontab aux utilisateurs spécifiés

  1. Prenez le rôle root.

    Reportez-vous à la section Utilisation de vos droits d’administration du manuel Administration d’Oracle Solaris 11.1 : Services de sécurité.

  2. Créez le fichier /etc/cron.d/cron.allow.
  3. Ajoutez le rôle root au fichier cron.allow.

    Si vous n'ajoutez pas root au fichier, l'accès superutilisateur aux commandes crontab sera refusé.

  4. Ajoutez les noms d'utilisateur, un par ligne.

    Ajoutez les utilisateurs qui seront autorisés à utiliser la commande crontab.

    root
    username1
    username2
    username3
    .
    .
    .

Exemple 4-6 Restriction de l'accès à la commande crontab aux utilisateurs spécifiés

L'exemple suivant illustre un fichier cron.deny qui empêche les noms d'utilisateur jones, temp et visitor d'accéder à la commande crontab.

$ cat /etc/cron.d/cron.deny
daemon
bin
smtp
nuucp
listen
nobody
noaccess
jones
temp
visitor

L'exemple suivant illustre un fichier cron.allow. Les utilisateurs root, jones et smith sont les seuls à pouvoir accéder à la commande crontab.

$ cat /etc/cron.d/cron.allow
root
jones
smith

Vérification de l'accès restreint à la commande crontab

Pour vérifier si un utilisateur spécifique peut accéder à la commande crontab, utilisez la commande crontab -l lorsque vous êtes connecté au compte d'utilisateur.

$ crontab -l

Si l'utilisateur peut accéder à la commande crontab et s'il a déjà créé un fichier crontab, le fichier s'affiche. Dans le cas contraire, si l'utilisateur peut accéder à la commande crontab, mais si aucun fichier crontab n'existe, un message similaire à celui ci-dessous s'affiche :

crontab: can't open your crontab file

Soit l'utilisateur est répertorié dans le fichier cron.allow (si ce fichier existe), soit il n'est pas répertorié dans le fichier cron.deny.

Si l'utilisateur ne peut pas accéder à la commande crontab, le message suivant s'affiche, qu'un fichier crontab antérieur existe ou non :

crontab: you are not authorized to use cron. Sorry.

Ce message signifie que l'utilisateur ne figure pas dans le fichier cron.allow (si ce fichier existe) ou qu'il figure dans le fichier cron.deny.