Automatiser les tâches du serveur
Écrivez des scripts pour automatiser les tâches administratives courantes, comme les sauvegardes, le nettoyage des journaux, le redémarrage des services et les vérifications de l’état du système.
Automatiser les tâches du serveur est une leçon Linux Server Deployment & SSH Mastery gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Linux Server Deployment & SSH Mastery, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Linux Server Deployment & SSH Mastery comprend 4 leçons au total.
Automatiser les tâches du serveur
Bienvenue dans l’automatisation des tâches du serveur ! En tant que développeur ou administrateur, vous effectuez souvent des actions répétitives. Les scripts Bash peuvent les automatiser, ce qui vous fait gagner du temps et réduit les erreurs.
Dans cette leçon, nous apprendrons à écrire des scripts pour des tâches courantes comme les sauvegardes, le nettoyage des journaux, les redémarrages de services et les vérifications d’état.
Pourquoi automatiser avec Bash ?
L’automatisation est essentielle pour gérer efficacement les serveurs. Voici pourquoi :
- Cohérence : les scripts exécutent les tâches de la même manière à chaque fois.
- Efficacité : gagnez du temps sur les tâches manuelles répétitives.
- Réduction des erreurs : moins d’erreurs humaines signifie des opérations plus fiables.
- Planification : exécutez facilement des tâches à des heures précises avec des outils comme
cron(que nous étudierons plus tard).
Écrire des scripts de sauvegarde simples
Les sauvegardes régulières sont essentielles. Un simple script Bash peut archiver des répertoires importants et leur ajouter un horodatage pour faciliter leur organisation.
Nous utilisons souvent la commande tar pour créer des fichiers d’archive compressés (archives tar) à partir de répertoires.
Démonstration d’un script de sauvegarde
Ce script crée un répertoire factice, y ajoute quelques fichiers, puis l’archive dans un fichier .tar.gz horodaté, à l’emplacement de sauvegarde indiqué. Exécutez-le pour voir son fonctionnement !
#!/bin/bash
BACKUP_DIR="/tmp/coddykit_backups"
SOURCE_DIR="/tmp/coddykit_data_to_backup"
# Create backup and source directories if they don't exist
mkdir -p "$BACKUP_DIR"
mkdir -p "$SOURCE_DIR"
# Create some dummy files to back up
echo "Content for file1" > "${SOURCE_DIR}/file1.txt"
echo "Content for file2" > "${SOURCE_DIR}/file2.txt"
# Generate a timestamp for the backup file
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="${BACKUP_DIR}/data_backup_${TIMESTAMP}.tar.gz"
echo "Creating backup of $SOURCE_DIR..."
# Create a compressed tar archive
tar -czf "$BACKUP_FILE" -C "${SOURCE_DIR}" .
echo "Backup created: $BACKUP_FILE"
echo "Contents of backup directory:"
ls -l "$BACKUP_DIR"Automatiser le nettoyage des journaux
Les journaux du serveur peuvent devenir très volumineux et consommer l’espace disque. Automatiser leur nettoyage est essentiel.
Nous pouvons utiliser la commande find pour localiser les fichiers datant de plus longtemps qu’une durée donnée, puis les supprimer.
find /path: commencer la recherche dans/path.-type f: rechercher des fichiers ordinaires.-name "*.log": trouver les fichiers se terminant par.log.-mmin +N: modifiés il y a plus de N minutes.-delete: supprimer les fichiers trouvés.
Démonstration d’un script de nettoyage des journaux
Ce script crée un fichier journal « current » et un fichier journal « old » (simulé comme datant de 2 minutes). Il utilise ensuite find pour supprimer, dans le répertoire factice, tous les fichiers journaux datant de plus d’une minute.
#!/bin/bash
LOG_DIR="/tmp/coddykit_app_logs_demo"
OLD_MINUTES=1 # Files older than this will be deleted
mkdir -p "$LOG_DIR"
# Create a 'current' log file
touch "${LOG_DIR}/current_log_$(date +%H%M%S).log"
# Create an 'old' log file (simulated to be 2 minutes ago)
touch -d "2 minutes ago" "${LOG_DIR}/old_log_$(date +%H%M%S)_old.log"
echo "--- Before cleanup ---"
ls -l "$LOG_DIR"
echo "\nCleaning logs in $LOG_DIR older than $OLD_MINUTES minute(s)..."
# Find files in LOG_DIR that are regular files (*.log) and modified more than OLD_MINUTES ago
find "$LOG_DIR" -type f -name "*.log" -mmin +$OLD_MINUTES -delete
echo "\n--- After cleanup ---"
ls -l "$LOG_DIR"Écrire des scripts de redémarrage de services
Les services (comme les serveurs web ou les bases de données) peuvent parfois se bloquer ou nécessiter un redémarrage après des modifications de configuration.
Nous pouvons automatiser la vérification de leur état et leur redémarrage avec systemctl (pour les distributions Linux fondées sur systemd, comme Ubuntu, Debian et CentOS 7+).
systemctl is-active --quiet <service>: vérifier silencieusement si le service est actif.systemctl restart <service>: redémarrer le service.
Démonstration d’un script de redémarrage de service
Ce script montre la logique nécessaire au redémarrage d’un service. Comme il n’est pas possible d’exécuter directement systemctl dans cet environnement isolé, le processus est simulé.
Dans un véritable environnement serveur, vous remplaceriez les lignes echo par des commandes systemctl réelles, qui nécessitent souvent sudo.
#!/bin/bash
SERVICE_NAME="my-dummy-web-app"
echo "Simulating service management for: $SERVICE_NAME"
# Check if the service is active (simulated)
# In a real script: if ! systemctl is-active --quiet $SERVICE_NAME; then
if [ "$SERVICE_NAME" = "my-dummy-web-app" ]; then # Always true for demo
echo "Service $SERVICE_NAME is currently 'inactive' (simulated)."
echo "Attempting to restart $SERVICE_NAME..."
# Restart the service (simulated)
# In a real script: sudo systemctl restart $SERVICE_NAME
echo "Service $SERVICE_NAME restarted successfully (simulated)."
else
echo "Service $SERVICE_NAME is already running (simulated)."
fi
echo "\nRemember: For real services like 'nginx' or 'apache2', you'd use: sudo systemctl restart nginx"Vérifications de base de l’état du système
Les vérifications automatisées de l’état du système permettent de détecter rapidement les problèmes potentiels du serveur. Les scripts peuvent surveiller régulièrement des indicateurs essentiels :
- Utilisation du disque : utilisez
df -hpour vérifier l’espace libre. - Utilisation de la mémoire : utilisez
free -hpour consulter l’utilisation de la RAM. - Charge du système :
uptimefournit la charge moyenne.
Ces vérifications peuvent être intégrées à des systèmes d’alerte afin de vous avertir lorsque les seuils sont dépassés.
Vérification rapide : nettoyage des journaux
Vous devez écrire un script pour nettoyer les fichiers journaux du répertoire /var/log/myapp datant de plus de 30 jours. Quelle commande find utiliseriez-vous ?
Récapitulatif et prochaines étapes
Vous avez appris à automatiser des tâches essentielles sur les serveurs à l’aide de scripts Bash :
- Sauvegardes : utiliser
tarpour archiver avec des horodatages. - Nettoyage des journaux : utiliser
findpour supprimer les anciens fichiers. - Gestion des services : interagir avec les services à l’aide de
systemctl. - Vérifications de l’état : surveiller les ressources du système, comme le disque et la mémoire.
Ces scripts constituent la base nécessaire au maintien de serveurs robustes et efficaces. Dans la prochaine leçon, nous étudierons la gestion des erreurs et la journalisation dans vos scripts afin de les rendre encore plus fiables !
Apprends Linux Server Deployment & SSH Mastery avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 12
- Leçons
- 48
Questions Fréquemment Posées
La leçon « Automatiser les tâches du serveur » est-elle gratuite ?
Oui — le texte complet de « Automatiser les tâches du serveur » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Linux Server Deployment & SSH Mastery, passe à CoddyKit PRO. Le cours Linux Server Deployment & SSH Mastery comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Automatiser les tâches du serveur » ?
Écrivez des scripts pour automatiser les tâches administratives courantes, comme les sauvegardes, le nettoyage des journaux, le redémarrage des services et les vérifications de l’état du système. Tu pratiques Linux Server Deployment & SSH Mastery avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Linux Server Deployment & SSH Mastery ?
Aucune expérience préalable n'est requise. Linux Server Deployment & SSH Mastery sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Automatiser les tâches du serveur » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Linux Server Deployment & SSH Mastery ?
Oui. Chaque leçon Linux Server Deployment & SSH Mastery inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Introduction aux scripts Bash
- Automatiser les tâches du serveur
- Gestion des erreurs et journalisation dans les scripts
- Fonctions, arguments et scripts réutilisables