CodeGym /Cours /Docker SELF /Traitement des données textuelles et mise à jour du systè...

Traitement des données textuelles et mise à jour du système

Docker SELF
Niveau 8 , Leçon 6
Disponible

Traitement des données textuelles et mise à jour du système

1. Traitement des données textuelles

Aujourd'hui, on va rassembler toutes ces connaissances et les appliquer dans la pratique pour traiter les données textuelles et effectuer une mise à jour du système. On va découvrir des scénarios réels d'utilisation : de l'analyse des journaux système à l'automatisation de l'installation et de la configuration des paquets.

Task 1 : Recherche des erreurs dans un journal

Scénario : Imagine que tu es un administrateur système, et que tu dois rapidement comprendre ce qui se passe dans le système. Pour cela, on va analyser les journaux système (/var/log/syslog).

Étape 1 : Filtrage par mots-clés

On commence par chercher des lignes liées aux erreurs, en utilisant grep :

grep "error" /var/log/syslog

Oh, on a trouvé quelque chose ! Mais améliorons un peu. Disons que tu veux ignorer la casse (que ce soit ERROR ou error) :

grep -i "error" /var/log/syslog

Maintenant on voit plus de correspondances. Mais parfois, il faut trouver tout ce qui n'est pas lié aux erreurs :

grep -v "error" /var/log/syslog

Étape 2 : Simplification de la sortie avec cut

Disons que tu es intéressé seulement par le timestamp et le message. Extraitons les colonnes correspondantes :

grep "error" /var/log/syslog | cut -d' ' -f1,2,3,5-

Ici, on utilise cut pour diviser les lignes par les espaces -d' ', et on choisit les colonnes 1, 2, 3 (temps) et le texte restant.

Task 2 : Comptage de la fréquence des événements

Maintenant, on veut comprendre à quelle fréquence les erreurs se produisent. On combine grep, cut et sort avec uniq :

grep "error" /var/log/syslog | cut -d' ' -f5 | sort | uniq -c

Cette commande :

  1. Recherche des lignes avec des erreurs à l'aide de grep.
  2. Extrait uniquement les informations sur la source de l'erreur avec cut.
  3. Trie les données avec sort, pour que uniq puisse compter le nombre de répétitions de chaque ligne.

Le résultat ressemble à ça :

  10 systemd
   7 kernel
   5 cron

Les erreurs venant de systemd se produisent le plus souvent. Il est temps de tirer des conclusions !


2. Chargement et traitement de données externes

Scénario : Analyse des données d'une source externe

Disons qu'on doit télécharger un fichier texte avec des données (par exemple, un fichier de log) depuis un serveur web et l'analyser. Procédons étape par étape.

Étape 1 : Téléchargement du fichier

D'abord, téléchargeons le fichier avec wget :

wget -O data.log http://example.com/logs/data.log

Le fichier est téléchargé et sauvegardé sous le nom data.log. En cas d'erreur de téléchargement, ajoutons la reprise :

wget -c -O data.log http://example.com/logs/data.log

Si tu préfères curl :

curl -o data.log http://example.com/logs/data.log

Étape 2 : Recherche d'informations

Maintenant, recherchons des lignes contenant un certain pattern, par exemple, WARNING :

grep "WARNING" data.log

Étape 3 : Formatage des données avec awk

Disons que le log contient trois colonnes : date, heure et message. On veut afficher uniquement la date et le message :

awk '{print $1, $3}' data.log

Et si on doit filtrer les lignes où le message contient le mot error, on peut ajouter une condition :

awk '/error/ {print $1, $3}' data.log

3. Mise à jour du système avec apt-get et yum

Passons maintenant à des tâches plus "système". Mettre à jour les packages, c'est super important pour maintenir la sécurité et la stabilité du système. On va montrer comment s'y prendre.

Scénario : Mise à jour du système

Étape 1 : Mettre à jour la liste des packages

Pour les distributions basées sur Debian :

sudo apt-get update

Pour les distributions basées sur RedHat :

sudo yum check-update

Étape 2 : Installer les mises à jour

Debian-based :

sudo apt-get upgrade
RedHat-based :
sudo yum update

Étape 3 : Installer un nouveau package

Par exemple, pour installer l'éditeur de texte vim :

sudo apt-get install vim
sudo yum install vim

Conseil utile

Si tu sais exactement quel package tu veux installer mais que tu n'es pas sûr de son nom, utilise apt search ou yum search :

apt search nom_du_package
yum search nom_du_package

4. Tâche finale

Tâche : Automatisation de la mise à jour et du traitement des données

  1. Créer un script bash, qui :
    • Met à jour le système ;
    • Télécharge un fichier texte (par exemple, un journal) ;
    • Analyse ce fichier pour détecter des erreurs ;
    • Enregistre les résultats de l'analyse dans un nouveau fichier.

Voici un exemple de script :

# Étape 1 : Mise à jour du système
echo "Mise à jour du système..."
sudo apt-get update && sudo apt-get -y upgrade

# Étape 2 : Téléchargement du fichier
echo "Téléchargement du fichier journal..."
wget -O data.log http://example.com/logs/data.log

# Étape 3 : Analyse du fichier
echo "Analyse du fichier journal pour détecter des erreurs..."
grep "ERROR" data.log | cut -d' ' -f1,5- | sort | uniq -c > analysis.log

echo "Analyse terminée. Résultats enregistrés dans analysis.log"

Enregistrez ce script, par exemple, sous le nom update_and_analyze.sh, définissez les droits d'exécution :

chmod +x update_and_analyze.sh

Et lancez-le :

./update_and_analyze.sh

Attention : erreurs typiques

  • Si vous voyez un message indiquant "accès refusé", assurez-vous que vous exécutez le script en tant qu'utilisateur avec les droits sudo.

  • Si wget ou curl ne sont pas installés, ajoutez leur installation au début du script :

    sudo apt-get install -y wget
    

Quel est l'intérêt pratique ?

Ces compétences te seront utiles non seulement au travail, mais aussi lors des entretiens. Savoir trouver des erreurs dans les logs, filtrer des données et lancer des mises à jour système est très apprécié par les administrateurs et les ingénieurs. Les scripts permettent d'automatiser des tâches, économisant du temps et garantissant l'absence d'erreurs humaines.

P.S. Rappelle-toi, dans le monde réel, tu rencontreras des tâches où il faudra combiner des commandes, modifier la sortie et configurer automatiquement le système. L'exemple d'aujourd'hui n'est que la partie émergée de l'iceberg de ta future pratique.

1
Опрос
Utilitaires système dans Linux,  8 уровень,  6 лекция
недоступен
Utilitaires système dans Linux
Utilitaires système dans Linux
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION