Chapitre 15 : Compléments
La Crontab
Le mécanisme cron permet l’exécution régulière et automatique de commandes. A chaque démarrage de la machine (en fait suivant le niveau d’init) un service (daemon) est lancé, généralement appelé cron ou crontab (/usr/sbin/cron, /etc/cron, /sbin/cron, …) qui lit une table spécifique appelée crontab.
La crontab est généralement placée dans /var/adm/cron ou /etc/cron ou /usr/lib/cron. Tous les utilisateurs n’ont pas forcément le droit d’utiliser la crontab (cron.allow et cron.deny).
La commande crontab permet d’accéder et de modifier les données de la table.
Pour lister une crontab, on utilise l’option -l. L’option -r permet de supprimer tous les ordres de sa crontab. Pour éditer sa crontab personnelle, on utilise l’option -e. Un éditeur vi est lancé. A la sauvegarde, le contenu qui aura été saisi sera le contenu de la crontab de l’utilisateur. le format est le suivant :
- minutes (0 à 59)
- heures (0 à 23)
- jour dans le mois (1 à 31)
- mois ( de 1 à 12)
- jour de la semaine ( de 0 dimanche à 6 samedi)
- commande
Une étoile * à la place d’un paramètre indique que se paramètre ne doit pas être pris en compte. Le tiret entre deux valeur définit une plage. Par exemple :
0 0 * * * rm -rf /tmp/* >/dev/null 2>&1
va exécuter la commande rm (ici effacement du contenu de /tmp) tous les jours à minuit pile.
0,30 9-18 * * 1-5 who >> /tmp/presence
Toutes les demi-heures, de 9 heures à 18 heures, du lundi au vendredi, liste de tous les utilisateurs connectés.
Messages aux utilisateurs
La commande write permet d’envoyer un message à un utilisateur. Par défaut l’utilisateur doit être connecté sur la même machine (sur un autre terminal). On peut aussi tenter d’écrire à un utilisateur sur une autre machine. La syntaxe est :
write user terminal [ligne]
write user@machine [ligne]
write -n machine user [ligne]
La commande *write est interactive, une fois la connexion établie les utilisateurs peuvent communiquer en direct. Pour quitter la saisie : ctrl+d.
La commande wall permet d’envoyer une information à tous les utilisateur connectés.
L’utilisateur qui ne souhaite pas voir les messages, ou l’administrateur qui veut en empêcher l’utilisation abusive, peut utiliser la commande mesg.
mesg y (autorisation)
mesg n (interdiction)
FTP
Bien que n’étant pas une commande propre à Unix, il est utile de connaître la commande ftp. Elle permet le transfert de fichiers entre deux machines. Elle prend comme paramètre le nom de la machine distante. Pour que la commande ftp fonctionne, il faut que le service FTP fonctionne sur la machine distante et sur le port 21.
Voici un exemple (peu pratique) de connexion avec erreur et nouvel essai.
ftp\> open
(to) machine
Connected to machine.
220 machine FTP server (Digital UNIX Version 5.60) ready.
Name (machine:root): root
331 Password required for root.
Password:
530 Login incorrect.
Login failed.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp\> user
(username) root
331 Password required for root.
Password:
230 User root logged in.
ftp\> pwd
257 "/" is current directory.
Le plus simple est tout de même :
$ ftp machine
Connected to machine.
220 machine FTP server (Digital UNIX Version 5.60) ready.
Name (machine:root): root
331 Password required for root.
Password:
230 User root logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp\>
Voici une liste de commandes ftp.
| Commande | Action |
|---|---|
open |
Suivi d’un nom de machine, ouvre une connexion sur la machine spécifiée. |
user |
Saisie de l’utilisateur distant pour une connexion. |
quit |
Fin de la connexion et fin de la commande ftp. |
ascii |
Transfert des fichiers en mode ASCII (conversion des caractères spéciaux et fin de ligne en MS et Unix par exemple). |
binary |
Transfert des fichiers en mode binaire. |
glob |
Supprime l’interprétation des caractères spéciaux. |
help |
Affiche l’aide. |
prompt |
Suivi de on ou off, active ou désactive la confirmation individuelle de transfert pour chaque fichier (mget ou mput). |
pwd |
Affiche le répertoire distant courant. |
cd |
Suivi du chemin, déplacement dans l’arborescence distante. |
ls |
liste les fichiers de la machine distante. |
delete |
Suivi d’un nom de fichier, supprime le fichier distant. |
mdelete |
Multiple. Supprime les fichiers distants. |
get |
Récupère le fichier distants. |
mget |
Multiple. Récupère les fichiers distants (liste ou modèle). |
put |
Envoie le fichier local vers la machine distante. |
mput |
Multiple. Envoie les fichiers locaux sur la machine distante (liste ou modèle). |
close / disconnect |
ferme la session actuelle. |
lcd |
Change de répertoire sur la machine locale. |
hash |
Durant les transferts, écrit un « # » sur écran pour chaque buffer transféré. |
system |
Informations sur le système distant. |
recv |
Réception d’un fichier. |
send |
Envoi d’un fichier. |
rename |
renomme un fichier distant. |
mkdir |
Crée un répertoire sur la machine distante. |
rmdir |
Supprime un répertoire sur la machine distante. |
!commande |
exécute la commande locale |
Photo de Bruno Nascimento sur unsplash