Site perso d'un administrateur systèmes & réseaux

Catégorie : TSSR Page 4 of 6

analytics, information, innovation

Créer et utiliser des clefs RSA

Explications

L’utilisation des clés RSA est une méthode courante pour sécuriser les communications sur Internet.

L’algorithme RSA, nommé d’après ses créateurs Rivest, Shamir et Adleman, est un système de cryptage asymétrique qui utilise une paire de clés, une publique et une privée, pour chiffrer et décrypter les données.

La création de clés RSA peut être réalisée à l’aide de l’outil open source OpenSSL, qui est inclus sur toutes les principales plates-formes et offre une interface de ligne de commande simple pour générer des clés.

La commande openssl genrsa -out private_key.pem 1024 permet de créer une paire de clés RSA, où « private_key.pem » est le nom du fichier de clé et « 1024 » est la taille de la clé en bits.

Une fois les clés créées, il est possible de visualiser le contenu du fichier de clé privée avec la commande cat private_key.pem.

Pour visualiser les clés RSA, on utilise la commande openssl rsa -in private_key.pem -text -noout.

Il est également possible de crypter un fichier de clés privées RSA avec la commande openssl rsa -in encrypted_private_key.pem -des3 -out encrypted_private_key.pem, où « -des3 » spécifie l’algorithme de cryptage symétrique à utiliser.

L’exportation d’une clé publique se fait avec la commande openssl rsa -in encrypted_private_key.pem -pubout -out public_key.pem, et la vérification de l’exportation peut être réalisée avec la commande openssl rsa -in public_key.pem -pubin.

La cryptographie asymétrique, en intégrant une deuxième clé dans le processus de cryptage/décryptage, offre un bon niveau de sécurité. La clé privée est conservée par chacun des interlocuteurs, tandis que la clé publique de chacun sert à décrypter les données reçues. Attention à bien respecter les étapes de cryptage et de partage des clés et de ne pas oublier la passphrase qui les protège.

Procédure d’utilisation détaillée

Création de la paire de clés RSA

Ouvrez votre terminal.

Entrez la commande suivante pour créer une paire de clés RSA :

openssl genrsa -out private_key.pem 1024

Cette commande générera une paire de clés RSA, où « private_key.pem » est le nom du fichier de clé privée et « 1024 » est la taille de la clé en bits.

Affichage du fichier de la clé privée RSA

Entrez la commande suivante pour visualiser le contenu du fichier de clé privée :

cat private_key.pem

Visualisation des clés RSA

Entrez la commande suivante pour visualiser les clés RSA :

openssl rsa -in private_key.pem -text -noout

Cryptage d’un fichier de clés privées RSA

Entrez la commande suivante pour crypter un fichier de clés privées RSA :

openssl rsa -in private_key.pem -des3 -out encrypted_private_key.pem

Vous serez invité à entrer une passphrase pour protéger l’accès à la clé.

Exportation d’une clé publique

Entrez la commande suivante pour exporter une clé publique :

openssl rsa -in encrypted_private_key.pem -pubout -out public_key.pem

Vous devrez entrer votre passphrase pour confirmer l’exportation de la clé.

Vérification de l’exportation de la clé publique

  • Entrez la commande suivante pour vérifier l’exportation de la clé publique :
openssl rsa -in public_key.pem -pubin

Ces étapes vous permettront de créer et de gérer des clés RSA avec OpenSSL. Assurez-vous de suivre chaque étape attentivement et de ne pas oublier votre passphrase.

Préparer un système sous Debian 11 : ajouter un utilisateur aux sudoers et installer SSH

Étape 1 :

Par défaut, les droits d’utiliser les commandes en mode « sudo » (superutilisateur) ne sont pas installés sur Debian.

Vous allez commencer par les installer.

Connectez-vous en « root » et saisissez :

apt install sudo

Étape 2 :

Configurez les droits « sudo » pour votre utilisateur en modifiant le fichier « sudoers » :

nano /etc/sudoers

Pour aller + vite on peut également utiliser la commande visudo

visudo

Il suffit d’ajouter un utilisateur avec les droits que vous souhaitez, cherchez simplement la ligne # User privilege specification

Ne pas oublier de sortir du mode root pour reprendre le travail avec l’utilisateur sudo 😉

Étape 3 :

Mettez à jour votre système :

sudo apt update

Étape 4 :

Installez le serveur SSH :

sudo apt-get install openssh-server

Étape 5 :

Démarrez le service SSH :

sudo systemctl start ssh

Étape 6 :

Démarrez le « daemon SSHD » afin que le service soit activé automatiquement au démarrage du système :

sudo systemctl enable ssh

Étape 7 :

Vérifiez le statut du service SSH :

sudo systemctl status ssh

Étape 8 :

À moins d’avoir attribué une IP fixe à votre Debian, vérifiez l’adresse IP de votre serveur pour vous connecter à distance :

ip a

Le serveur OpenSSH est maintenant installé et activé. Vous allez pouvoir vous connecter à distance.

Configurer SSH

Bonnes pratiques pour sécuriser SSH :

  1. Désactiver l’accès SSH avec le compte root
    • Évitez de laisser un accès total au serveur en cas d’attaque.
  2. Utiliser uniquement la version 2 de SSH
    • Configurez la connexion exclusive des clients avec la version 2 de SSH.
  3. Modifier le port d’écoute par défaut (port 22)
    • Évitez les ports réservés par des protocoles et applications connues.
  4. Limiter les utilisateurs pouvant se connecter en SSH
    • Définissez une politique de refus par défaut et spécifiez les utilisateurs autorisés.
  5. Utiliser des mots de passe forts
    • Désactivez la connexion avec des comptes sans mot de passe.
  6. Diminuer la durée maximale d’authentification
    • Par défaut, elle est fixée à 2 minutes, réduisez-la si nécessaire.
  7. Vérifier les logs SSH régulièrement
    • Analysez les logs SSH pour détecter d’éventuelles anomalies.

Configurations de sécurité de base ou « minimum syndical » !

Voici quelques lignes à ajouter à la fin du fichier /etc/ssh/sshd_config :

Désactiver l’accès SSH pour le compte root

PermitRootLogin no

Utiliser uniquement la version 2 de SSH

Protocol 2

Modifier le port d’écoute par défaut

  • Remplacez 22 par un autre numéro de port de votre choix (évitez les ports réservés).
Port <numéro_de_port>

Limiter les utilisateurs pouvant se connecter en SSH

  • Remplacez <utilisateur> par le nom d’utilisateur autorisé.
AllowUsers <utilisateur>

Utiliser des mots de passe forts

  • Assurez-vous que la ligne suivante est commentée ou absente pour désactiver la connexion avec des comptes sans mot de passe.
#PermitEmptyPasswords no

Diminuer la durée maximale d’authentification

  • Remplacez 30 par le nombre de secondes souhaité.
LoginGraceTime 30

Configuration de sécurité avancée

Désactiver l’authentification par mot de passe

  • Si vous utilisez des clés SSH pour l’authentification, vous pouvez désactiver l’authentification par mot de passe pour renforcer la sécurité.
PasswordAuthentication no

Désactiver l’authentification par clé héritée

PubkeyAuthentication yes

Désactiver l’authentification basée sur l’hôte

HostbasedAuthentication no

Désactiver l’authentification rhosts

IgnoreRhosts yes

Désactiver l’authentification rhosts RSA

RhostsRSAAuthentication no

Désactiver l’authentification basée sur l’hôte

HostbasedAuthentication no

Désactiver l’authentification GSSAPI

GSSAPIAuthentication no

Désactiver l’authentification Kerberos

KerberosAuthentication no

Après avoir effectué ces modifications, n’oubliez pas de redémarrer le service SSH pour que les changements prennent effet :

sudo systemctl restart sshd

Installer Syslog sur Debian 12

Pour installer Syslog sur Debian 12, suivez ces étapes :

  1. Ouvrez le terminal et passez en mode « root » avec la commande « su » et entrez votre mot de passe root.
  2. Installez les services LAMP et PHP avec la commande :
apt-get install apache2 mariadb-server php php-mysql php-gd
  1. Installez Mysql pour Rsyslog avec la commande :
apt-get install rsyslog-mysql -y
  1. Pendant l’installation de Rsyslog-Mysql, laissez la configuration automatique et validez « Oui » pour créer une base de données Syslog.
  2. Entrez un mot de passe pour l’utilisateur Rsyslog et retenez-le pour plus tard.
  3. Accédez au fichier Rsyslog.conf avec la commande :
nano /etc/rsyslog.conf
  1. Décommentez « IMTPC » et le port 514 en supprimant le signe « # » au début des lignes correspondantes.
  2. Ajoutez la ligne suivante à la fin du fichier Rsyslog.conf pour renvoyer automatiquement les logs dans la base de données :
*.* :ommysql:localhost,Syslog,rsyslog,motdepasseRsyslog

Remplacez « motdepasseRsyslog » par le mot de passe que vous avez choisi à l’étape 5.

  1. Enregistrez et quittez le fichier avec « ctrl+x » et « O » pour « oui ».
  2. Redémarrez le service Rsyslog avec la commande :
sudo service rsyslog restart

Résoudre les problèmes de LogAnalyzer 1.13 et php 8.2

Environnement

Système d’exploitation : Debian 12

Version de php : 8.2

Version de Log Analyzer : 4.1.13

Problème détecté

Après l’installation de Log Analyzer, on peut rencontrer quelques soucis. Le premier et le plus courant étant celui-ci :

« Could not find the configured table, maybe misspelled or the tablenames are case sensitive« 

Pistes de résolutions (testées et approuvées) :

1. Vérifier la casse de l’info sur la table « SystemEvents » dans le fichier de configuration de LogAnalyzer

sudo nano /var/www/html/loganalyzer/config.php

Chercher la ligne contenant le terme « SystemEvents » (à la fin du fichier) et s’assurer que la casse est respectée :

2. Se connecter à l’admin center dans l’interface web,

Aller dans « sources », cliquer sur « modifier » puis vérifier que la casse est également respectée ici :

A ce stade, il se peut que l’interface fonctionne de nouveau dans son ensemble, sauf pour la page d’index de LogAnalyzer qui peut afficher une page blanche.

Dans ce cas, le bon réflexe est le suivant : activer les rapports d’erreur dans php.ini :

sudo nano /etc/php/8.2/apache2/php.ini

Cherche la ligne « display_errors » et la passer à « On »

Puis relancer apache2

systemctl restart apache2

En rechargeant la page d’accueil de Log Analyzer, le message suivant apparaît : « Fatal error: Uncaught mysqli_sql_exception: Unknown column ‘processid’ in ‘field list’« 

Pour résoudre ce problème, rdv dans Mysql pour ajouter manuellement les colonnes manquantes :

mysql -u root -p
USE Syslog;
ALTER TABLE SystemEvents
ADD COLUMN checksum INT NOT NULL;
ALTER TABLE SystemEvents
ADD COLUMN processid VARCHAR(60) NOT NULL;
exit

Après ça, en rafraichissant la page d’accueil, tout apparait comme il faut :

Sources qui m’ont aidé à résoudre ce souci :

https://github.com/rsyslog/loganalyzer/issues/75

Monitorer un ordinateur sous Windows via Centreon

Voici les étapes synthétisées pour superviser un serveur Windows en SNMP avec Centreon :

Prérequis

  • Plateforme Centreon installée et fonctionnelle.

Étape 1 : Installer et configurer SNMP sur le serveur Windows

Installer SNMP en mode graphique ou via PowerShell.

Mode graphique :

Paramètres > Applications et fonctionnalités > Fonctionnalités facultatives > Ajouter une fonctionnalité > SNMP > Installer

PowerShell :

Install-WindowsFeature RSAT-SNMP

Configurer SNMP :

Ouvrir le panneau Services :

services.msc

Configurer le service SNMP :

Onglet Agent : renseigner les paramètres Contact et Emplacement.

Onglet Service : cocher les cases des services à surveiller.

Onglet Sécurité : renseigner la communauté SNMP en lecture seule et ajouter l’adresse IP du serveur Centreon.

Ensuite, clic droit -> Redémarrer le service SNMP.

Étape 2 : Installer le plugin Windows SNMP sur le serveur Centreon (collecteur)

dnf install centreon-plugin-Operatingsystems-Windows-Snmp

Étape 3 : Installer le connecteur de supervision Windows SNMP sur le serveur central

Dans l’interface Web, aller à Configuration > Gestionnaire de connecteurs de supervision et installer le connecteur de supervision Windows SNMP.

Étape 4 : Configurer l’hôte et déployer la configuration

  1. Aller à Configuration > Hôtes > Hôtes et cliquer sur Ajouter.
  2. Remplir les informations :
    • Nom du serveur : Windows10
    • Description du serveur.
    • Adresse IP du serveur.
    • Communauté SNMP et sa version.
    • Collecteur qui supervisera le serveur Windows.
  3. Ajouter le modèle OS-Windows-SNMP-custom.
  4. Aller à Configuration > Services > Services par hôte pour voir les indicateurs déployés automatiquement.
  5. Déployer la configuration.
  6. Aller à Monitoring > Status des Ressources et vérifier les résultats de la supervision.

Pour aller plus loin

  • Utiliser la fonctionnalité de découverte des services pour ajouter rapidement la supervision des cartes réseau, partitions, processus et services.
  • Aller à Configuration > Services > Manuelle, saisir le nom de l’hôte, sélectionner la commande de découverie, cliquer sur Scan, sélectionner les éléments à intégrer à la supervision et cliquer sur Save.
  • Déployer la configuration

Étape 5 : Déployer la configuration

  1. Aller à Configuration > Collecteurs > Collecteurs.
  2. Sélectionner le serveur central, le serveur distant ou le collecteur dont la configuration a changé.
  3. Cliquer sur Exporter la configuration.
  4. Cocher les cases suivantes :
    • Générer les fichiers de configuration.
    • Lancer le débogage du moteur de supervision (-v).
    • Déplacer les fichiers générés.
    • Redémarrer l’ordonnanceur. Utiliser la méthode :
      • Recharger : lorsque vous avez créé, supprimé ou modifié des objets supervisés.
      • Redémarrer : lorsque vous avez apporté des changements à la communication entre un collecteur et le serveur central, ou à la configuration du moteur de collecte. Un redémarrage prend plus de temps qu’un rechargement.
  5. Cliquer sur Exporter. Un log de l’export s’affiche.
  6. Dans le log, vérifier que l’export a bien fonctionné et qu’aucune erreur n’a été remontée.

Après avoir déployé la configuration, vous pouvez aller à Monitoring > Status des Ressources pour vérifier les résultats de la supervision.

Installation et paramétrage d’un serveur Nagios / Centreon

Voici les étapes synthétisées pour installer Centreon à partir d’une machine virtuelle :

Prérequis

  • Processeur : Intel ou AMD récent avec au moins 2vCPU.
  • Mémoire : Minimum 1 Go de RAM, idéalement 2 Go.
  • Espace disque : Minimum 6,5 Go, recommandé 10 Go.

Étape 1 : Télécharger la machine virtuelle

  1. Assurez-vous que votre solution de virtualisation (VirtualBox ou VMWare) est installée et à jour.
  2. Rendez-vous sur la page de téléchargement de Centreon.
  3. Sélectionnez la version de Centreon désirée.
  4. Cliquez sur « Download » à côté de la machine virtuelle désirée.
  5. Si vous le souhaitez, entrez vos informations de contact, puis cliquez sur « Download ». Sinon, cliquez sur « Direct download ».
  6. Extrayez le contenu de l’archive compressée dans le répertoire désiré.

Étape 2 : Installer la machine virtuelle

  1. Importez le fichier centreon-central.ova dans VMWare ou Oracle VirtualBox.
  2. Attendez que le serveur démarre et affiche le message indiquant qu’il est prêt.
  3. Dans la configuration de votre machine virtuelle, ajoutez un adaptateur réseau et sélectionnez le réseau via lequel la machine pourra communiquer avec les ressources à superviser.

Étape 3 : Terminer la configuration

Connectez-vous au serveur Centreon avec les identifiants :

login: root

password: centreon

Tapez la commande suivante pour connaître l’adresse IP de votre serveur :

ip addr 

(optionnel – mais recommandé) Connectez-vous en root au serveur depuis une autre machine avec le terminal de votre choix, à l’aide de l’adresse IP obtenue précédemment.

ssh root@adresse_ip 

Suivez les instructions affichées pour terminer la configuration :

  • Définissez le fuseau horaire du serveur Centreon
timedatectl set-timezone votre_timezone 

Définissez le fuseau horaire du serveur php en ouvrant le fichier suivant :

nano /etc/php.d/50-centreon.ini 

Après date.timezone, entrez le fuseau horaire désiré, puis redémarrez le serveur php :

systemctl restart php-fpm 

Changez le hostname de votre serveur (facultatif) :

hostnamectl set-hostname votre-hostname 

Ajoutez une partition pour la table MariaDB :

su - centreon 
/bin/php /usr/share/centreon/cron/centreon-partitioning.php
exit 
systemctl restart cbd centengine gorgoned

Connexion à l’interface web

Connectez-vous à l’interface web de Centreon en utilisant les identifiants par défaut :

Login: admin

Password: Centreon!123

Mettez à jour votre plateforme Centreon et sécurisez votre serveur en changeant les mots de passe des comptes root et admin, et en définissant un mot de passe pour la base MariaDB.

Vous pouvez maintenant superviser votre premier hôte !

Comment utiliser vi pour éditer un fichier sur Linux ? (Utile pour Alma Linux)

L’éditeur de texte vi est un incontournable sur les systèmes Unix et Linux. Son interface en mode texte et ses nombreuses commandes en font un outil puissant, bien que parfois complexe pour les nouveaux utilisateurs. Voici un guide simple pour vous aider à prendre en main vi sur Linux.

Ouvrir un fichier avec vi

Pour ouvrir un fichier, ouvrez le terminal et tapez vi suivi du nom du fichier :

vi fichier.txt

Comprendre les modes de vi

vi fonctionne avec deux modes principaux :

  • Mode Normal : il permet de naviguer dans le fichier, de supprimer du texte, de copier et coller, etc.
  • Mode Insertion : il permet de saisir du texte.

À l’ouverture d’un fichier, vous êtes en mode Normal. Pour passer en mode Insertion, appuyez sur i. Une fois en mode Insertion, vous pouvez taper du texte normalement. Pour revenir en mode Normal, appuyez sur Échap.

Sauvegarder et quitter vi

  • Pour sauvegarder vos modifications et quitter vi, tapez :wq puis Entrée en mode Normal.
  • Pour quitter sans sauvegarder, tapez :q! puis Entrée.

Quelques commandes utiles en mode Normal

  • h, j, k, l : se déplacer à gauche, en bas, en haut, et à droite.
  • x : supprimer le caractère sous le curseur.
  • dd : supprimer une ligne.
  • yy : copier une ligne.
  • p : coller une ligne copiée.
  • /mot : rechercher « mot » dans le fichier.
  • n : aller à la prochaine occurrence du mot recherché.
  • N : aller à l’occurrence précédente du mot recherché.

Pour en savoir plus

vi est un outil très puissant avec beaucoup de fonctionnalités. N’hésitez pas à consulter le manuel de vi pour plus d’informations :

man vi

En suivant ces étapes simples, vous devriez être capable de prendre en main vi et de commencer à éditer des fichiers texte sur votre système Linux. Bonne chance!

Fiche de révision / Cheat Sheet pour la création de sous-réseaux

Formules de sous-réseaux IPv4:

  • Nombre de sous-réseaux = 2^n, où ‘n’ est le nombre de bits empruntés.
  • Nombre d’hôtes = 2^h – 2, où ‘h’ est le nombre de bits d’hôte.
  • La taille de bloc pour un sous-réseau est 256 moins la valeur du masque de sous-réseau.

Bon à savoir :

  1. Le « nombre de sous-réseaux » donne le nombre total de sous-réseaux possibles dans un réseau. Lorsque vous empruntez des bits du champ d’hôte pour créer des sous-réseaux, vous doublez le nombre de sous-réseaux possibles avec chaque bit emprunté.
  2. Le « nombre d’hôtes » donne le nombre total d’adresses IP disponibles pour les hôtes (machines individuelles) dans un sous-réseau. Les deux adresses qui doivent être soustraites sont l’adresse de réseau et l’adresse de diffusion qui ne peuvent pas être utilisées par les hôtes.
  3. La « taille de bloc pour un sous-réseau » donne le nombre d’adresses IP disponibles dans chaque sous-réseau, y compris l’adresse de réseau et l’adresse de diffusion. La taille du bloc est déterminée en soustrayant la valeur du masque de sous-réseau de 256.

Les sous-réseaux IPV4 :

CIDRMasque sous réseauTotal IPsIPs utilisables
/32255.255.255.25511
/31255.255.255.25422*
/30255.255.255.25242
/29255.255.255.24886
/28255.255.255.2401614
/27255.255.255.2243230
/26255.255.255.1926462
/25255.255.255.128128126
/24255.255.255.0256254
/23255.255.254.0512510
/22255.255.252.01,0241,022
/21255.255.248.02,0482,046
/20255.255.240.04,0964,094
/19255.255.224.08,1928,190
/18255.255.192.016,38416,382
/17255.255.128.032,76832,766
/16255.255.0.065,53665,534
/15255.254.0.0131,072131,070
/14255.252.0.0262,144262,142
/13255.248.0.0524,288524,286
/12255.240.0.01,048,5761,048,574
/11255.224.0.02,097,1522,097,150
/10255.192.0.04,194,3044,194,302
/9255.128.0.08,388,6088,388,606
/8255.0.0.016,777,21616,777,214
/7254.0.0.033,554,43233,554,430
/6252.0.0.067,108,86467,108,862
/5248.0.0.0134,217,728134,217,726
/4240.0.0.0268,435,456268,435,454
/3224.0.0.0536,870,912536,870,910
/2192.0.0.01,073,741,8241,073,741,822
/1128.0.0.02,147,483,6482,147,483,646

Plages privées du RFC 1918

ClassSizeMasque sous réseauPlages d’IPs
A10.0.0.0/8255.0.0.010.0.0.0 – 10.255.255.255
B172.16.0.0/12255.240.0.0172.16.0.0 – 172.31.255.255
C192.168.0.0/16255.255.0.0192.168.0.0 – 192.168.255.255

Ce tableau représente les plages d’adresses IP privées définies dans le RFC 1918. Le RFC 1918 est un document qui décrit les plages d’adresses IP qui sont réservées pour une utilisation privée et qui ne doivent pas être routées sur l’internet public. Ces adresses IP privées sont généralement utilisées dans les réseaux locaux (LAN) et ne sont pas accessibles depuis l’internet.

Ces plages d’adresses sont utilisées pour permettre à différentes organisations de configurer leurs propres réseaux privés sans avoir à se préoccuper des conflits d’adresses IP avec d’autres organisations.

Modèle OSI – TCP/IP

Modèle OSIModèle TCP/IPType de PDUType d’AdresseExemple de Protocole
ApplicationApplicationDonnéeHTTP, FTP, DNS, IMAP, SMTP
Présentation
Session
TransportTransportSegmentPortTCP, UDP
RéseauInternetPaquetIPIP, IPv6, ICMP
Liaison de donnéesInterface réseauTrameMACEthernet, CDP
PhysiqueBit10BASE-T

Fiche de Révision: Syntaxe du Shell Scripting

Introduction

  • Shell scripting permet d’automatiser des commandes Unix/Linux.
  • Les scripts shell se terminent généralement par .sh.
  • Le shebang #!/bin/bash en début de script indique l’interpréteur à utiliser.

Variables

  • Déclaration: variable_name=value
  • Accès: $variable_name ou ${variable_name}

Exemple:

name="ChatGPT" echo "Hello, $name!"

Commandes

  • Exécution de commandes: command arguments
  • Exécution de commandes et stockage de la sortie: output=$(command arguments)

Conditions

  1. Test simple:
if [ condition ]; then # code fi
  1. If-else:
if [ condition ]; then # code else # code fi
  1. If-elif-else:
if [ condition1 ]; then # code elif [ condition2 ]; then # code else # code fi

Opérateurs courants:

  • Égalité numérique: -eq
  • Non égalité numérique: -ne
  • Supérieur: -gt
  • Inférieur: -lt
  • Égalité de chaîne: =
  • Non égalité de chaîne: !=

Boucles

  1. for:
for variable in list; do # code done
  1. while:
while [ condition ]; do # code done

Fonctions

Déclaration:

function_name() { # code }

Appel:

function_name arguments

Paramètres script

  • $0: Nom du script.
  • $1, $2, ...: Arguments positionnels.
  • $#: Nombre d’arguments.
  • $@: Tous les arguments.
  • $?: Code de sortie de la dernière commande exécutée.

Redirections

  • Rediriger la sortie standard: command > file
  • Rediriger la sortie d’erreur: command 2> file
  • Rediriger la sortie standard et d’erreur: command &> file

Pipes

  • Passer la sortie d’une commande à une autre: command1 | command2

Arithmétique

  • Utiliser la double parenthèse: result=$((expression))

Exemple:

a=5 b=10 sum=$((a + b))

Conseils

  • Toujours utiliser des guillemets doubles autour des variables pour éviter des problèmes avec les espaces: echo "$variable"
  • Pour les tests, préférez [[ ... ]] (test avancé) à [ ... ] pour plus de flexibilité et moins d’erreurs.

Fiche de révision sur la création d’une tâche Cron

Qu’est-ce que cron ?

Cron est un outil sous Unix/Linux qui permet de planifier l’exécution automatique de commandes à des dates et heures spécifiées.


Structure d’une entrée cron

Une entrée dans le fichier crontab se présente généralement comme suit:

* * * * * /chemin/vers/commande arguments
- - - - -
| | | | | 
| | | | +-- Jour de la semaine (0 - 7) [0 et 7 représentent Dimanche]
| | | +---- Mois (1 - 12)
| | +-------- Jour du mois (1 - 31)
| +---------- Heure (0 - 23)
+----------- Minute (0 - 59)

Éditer le fichier crontab

Pour éditer la table de l’utilisateur actuel:

crontab -e

Pour afficher les tâches cron de l’utilisateur actuel:

crontab -l

Exemples d’entrées cron

Exécuter ma-commande tous les jours à 3h15:

15 3 * * * /chemin/vers/ma-commande

Exécuter ma-commande tous les lundis à minuit:

0 0 * * 1 /chemin/vers/ma-commande

Exécuter ma-commande toutes les heures:

0 * * * * /chemin/vers/ma-commande

Spécificateurs spéciaux

Il existe des spécificateurs spéciaux pour simplifier la planification:

  • @reboot : Exécute la commande au démarrage.
  • @yearly ou @annually : Exécute une fois par an.
  • @monthly : Exécute une fois par mois.
  • @weekly : Exécute une fois par semaine.
  • @daily ou @midnight : Exécute une fois par jour.
  • @hourly : Exécute une fois par heure.

Logs et redirections

Pour rediriger la sortie et les erreurs d’une tâche cron vers un fichier:

* * * * * /chemin/vers/ma-commande >> /chemin/vers/mon-log.log 2>&1

Conseils

  • Assurez-vous que les scripts ou les commandes exécutées par cron ont les autorisations d’exécution appropriées.
  • Spécifiez toujours le chemin complet vers les commandes ou les scripts.
  • Pensez à utiliser des logs pour suivre les exécutions des tâches.

Page 4 of 6