Correction des exercices complexes à réaliser en autonomie
Correction Exercice 1 : Liens symboliques et liens physiques
- Créer un fichier texte initial :
echo "Ceci est un fichier original." > ~/original.txt
- Créer un lien symbolique :
mkdir ~/symb_test
ln -s ~/original.txt ~/symb_test/symb_original.txt
mkdir ~/hard_test
ln ~/original.txt ~/hard_test/hard_original.txt
- Modifier le fichier original :
echo "Ligne ajoutée." >> ~/original.txt
- Vérifier les deux liens :
cat ~/symb_test/symb_original.txt
cat ~/hard_test/hard_original.txt
- Vérification :
- Le lien symbolique devient cassé, car l'original a disparu.
- Le lien physique fonctionne toujours, car il pointe directement sur l'inode du fichier.
Correction Exercice 2 : Planification de tâches avec Cron
- Ajouter une tâche toutes les 5 minutes :
*/5 * * * * echo "$(date): Tâche cron autonome." >> /home/<user>/cron_autonome.log
tail -f /home/<user>/cron_autonome.log
- Modifier la tâche pour l'heure précise (exemple à 14h00) :
0 14 * * * echo "Tâche quotidienne à 14h00" >> /home/<user>/cron_autonome.log
- Désactiver/Supprimer la tâche :
- Soit la commenter avec un #, soit supprimer totalement la ligne.
Correction Exercice 3 : Alias Shell
alias ll='ls -alh --color=auto'
alias proj='cd ~/mon_projet'
- Recharger la configuration :
Correction Exercice 4 : Variables d'environnement
- Vérification :
- L'alias affiche bien les fichiers en mode détaillé avec couleurs.
- L'alias proj vous emmène directement au dossier mon_projet.
Correction Exercice 4 : Variables d'environnement
- Créer une variable temporaire :
MY_VAR="Test temporaire"
echo $MY_VAR
- Tester dans un nouveau terminal :
- La variable ne sera plus disponible.
echo 'export MY_VAR="Permanent Test"' >> ~/.bashrc
source ~/.bashrc
- Vérifier la persistance :
- Ouvrir nouveau terminal pour vérification :
- La variable est désormais persistante.
Correction Exercice 5 : Analyse du réseau
- Lister les connexions actives :
- Vérifier l'évolution :
- Observer les nouvelles connexions avec ss -tulnp.
- Voir statistiques réseau :
- Différences root/utilisateur normal :
Correction Exercice 6 : Comparaison de fichiers
- Créer deux fichiers différents :
echo "Version initiale." > version1.txt
cp version1.txt version2.txt
echo "Modification version 2." >> version2.txt
diff version1.txt version2.txt
sha256sum version1.txt > hash_v1.txt
cat hash_v1.txt
echo "Petite modification." >> version1.txt
sha256sum version1.txt
Correction Exercice 7 : Gestion des dates et heures
- Afficher date complète et abrégée :
- Stocker date dans une variable :
DATE_NOW=$(date +"%Y-%m-%d_%H-%M-%S")
echo $DATE_NOW
- Générer fichier nommé par date :
touch "log_${DATE_NOW}.txt"
ls
- Créer un script conditionnel selon l'heure (heure.sh) :
#!/bin/bash
HOUR=$(date +"%H")
if [ $HOUR -lt 12 ]; then
echo "Bonjour !"
else
echo "Bon après-midi ou bonsoir !"
fi
- Rendre exécutable et tester :
chmod +x heure.sh
./heure.sh
Correction Exercice 8 : Redirections avancées
- Créer script (redirections.sh) :
#!/bin/bash
ls ~ > sortie.txt
ls /dossier_inexistant 2> erreur.txt
bash redirections.sh
cat sortie.txt
cat erreur.txt
- Fusionner sortie et erreur :
ls ~ /dossier_inexistant > tout.txt 2>&1
cat tout.txt
- Rediriger entrée standard :
Correction Exercice 9 : Vérification système
- Espace disque disponible :
- Trouver le dossier le plus volumineux :
Correction Exercice 10 : Maintenance de logs
- Créer fichier log et écrire régulièrement dedans :
echo "Log initial." > mon_log.log
crontab -e
*/1 * * * * echo "$(date): message auto" >> /home/<user>/mon_log.log
mv mon_log.log "mon_log_$(date +%Y-%m-%d_%H-%M-%S).log"
touch mon_log.log
mkdir logs_archive
mv mon_log_*.log logs_archive/
- Automatisation réelle avec logrotate (optionnel) :
- Configuration avancée en éditant /etc/logrotate.d/mon_log.