Table des matières : [Masquer]
- 1 Configuration du VPS
- 2 Connexion et Authentification
- 3 Informations Système
- 4 Gestion des Fichiers et Répertoires
- 5 Gestion des Processus
- 6 Gestion du Réseau
- 7 Gestion Docker
- 8 Gestion de la Base de Données
- 9 Surveillance et Monitoring
- 10 Gestion des Logs
- 11 Maintenance Système
- 12 Sécurité
- 13 Sauvegarde et Restauration
- 14 Dépannage et Debugging
- 15 Performance et Optimisation
- 16 Checklist de Maintenance Quotidienne
- 17 Commandes d’Urgence
Configuration du VPS
- OS : Ubuntu xx.xx.x LTS
- Architecture : x86_64 (GNU/Linux 6.8.0-58-generic)
- IP : 000.000.000.000
- Applications : Laravel xx (Backend) + React xx (Frontend) + MySQL x.x
- Containerisation : Docker + Traefik
- Projet : Temporaire
Connexion et Authentification
Connexion SSH
# Connexion depuis macOS/Linux
ssh root@000.111.222.333
# Connexion avec clé SSH spécifique
ssh -i ~/.ssh/id_rsa root@000.111.222.333
# Connexion avec port personnalisé
ssh -p 2222 root@000.111.222.333
# Connexion avec verbose (debugging)
ssh -v root@000.111.222.333
Gestion des Clés SSH
# Générer une nouvelle clé SSH (sur votre Mac)
ssh-keygen -t rsa -b 4096 -C "votre-email@example.com"
# Copier la clé publique vers le serveur
ssh-copy-id root@000.111.222.333
# Afficher les clés autorisées sur le serveur
cat ~/.ssh/authorized_keys
# Modifier les permissions SSH
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
Gestion des Utilisateurs
# Ajouter un nouvel utilisateur
adduser nouvel_utilisateur
# Ajouter un utilisateur au groupe sudo
usermod -aG sudo nouvel_utilisateur
# Changer d'utilisateur
su - nouvel_utilisateur
# Voir l'utilisateur actuel
whoami
# Voir les groupes de l'utilisateur
groups
# Lister tous les utilisateurs
cat /etc/passwd
# Supprimer un utilisateur
deluser --remove-home nom_utilisateur
Informations Système
Informations Générales
# Informations système complètes
uname -a
# Version Ubuntu
lsb_release -a
# Informations CPU
lscpu
# Informations mémoire
free -h
# Informations disque
df -h
lsblk
# Uptime et charge
uptime
# Date et heure
date
timedatectl status
# Informations réseau
ip addr show
hostname -I
État du Système
# Processus en cours
ps aux
# Processus par utilisation CPU
top
htop # Plus interactif
# Utilisation mémoire détaillée
free -m
cat /proc/meminfo
# Utilisation disque par répertoire
du -sh /*
du -sh /var/* | sort -hr
# Espaces de montage
mount | column -t
# Informations kernel
cat /proc/version
dmesg | tail
Variables d’Environnement
# Afficher toutes les variables
env
# Variable PATH
echo $PATH
# Définir une variable temporaire
export MA_VARIABLE="valeur"
# Définir une variable permanente
echo 'export MA_VARIABLE="valeur"' >> ~/.bashrc
source ~/.bashrc
# Voir les variables shell
set
Gestion des Fichiers et Répertoires
# Répertoire courant
pwd
# Contenu du répertoire
ls -la
ls -lah # Tailles humaines
ls -lat # Par date de modification
# Navigation
cd /opt/000.111.222.333
cd ~ # Répertoire home
cd - # Répertoire précédent
cd .. # Répertoire parent
# Arborescence
tree -L 3
find /opt -type d -maxdepth 2
Manipulation de Fichiers
# Créer un fichier
touch nouveau_fichier.txt
echo "contenu" > fichier.txt
# Créer un répertoire
mkdir nouveau_dossier
mkdir -p chemin/vers/dossier # Créer récursivement
# Copier
cp fichier.txt copie.txt
cp -r dossier/ copie_dossier/
# Déplacer/Renommer
mv ancien_nom nouveau_nom
mv fichier.txt /autre/chemin/
# Supprimer
rm fichier.txt
rm -rf dossier/ # Récursif et forcé
# Liens
ln -s /chemin/vers/fichier lien_symbolique
Recherche de Fichiers
# Rechercher par nom
find /opt -name "*.php"
find /var -name "*log*" -type f
# Rechercher par taille
find / -size +100M -type f 2>/dev/null
# Rechercher par date
find /var/log -mtime -7 # Modifiés dans les 7 derniers jours
find /tmp -atime +30 # Accédés il y a plus de 30 jours
# Rechercher dans le contenu
grep -r "repertapp" /opt/
grep -r "error" /var/log/ | head -20
# Localiser un programme
which docker
whereis docker
Permissions et Propriétés
# Voir les permissions
ls -la fichier.txt
# Changer les permissions
chmod 755 script.sh
chmod +x script.sh
chmod -R 644 dossier/
# Changer le propriétaire
chown root:root fichier.txt
chown -R www-data:www-data /var/www/
# Voir l'utilisation d'espace
du -sh dossier/
du -sh * | sort -hr
Gestion des Processus
Visualisation des Processus
# Tous les processus
ps aux
# Processus par CPU
ps aux --sort=-%cpu | head -20
# Processus par mémoire
ps aux --sort=-%mem | head -20
# Processus d'un utilisateur
ps -u root
# Arbre des processus
pstree
# Monitoring en temps réel
top
htop
Gestion des Processus
# Tuer un processus par PID
kill 1234
kill -9 1234 # Force
# Tuer par nom
killall nginx
pkill php-fpm
# Processus en arrière-plan
nohup commande &
screen -S session_name
tmux new -s session_name
# Voir les jobs
jobs
bg # Mettre en arrière-plan
fg # Ramener en avant-plan
Services Système
# Lister les services
systemctl list-units --type=service
# État d'un service
systemctl status nginx
systemctl status docker
# Gérer les services
systemctl start nginx
systemctl stop nginx
systemctl restart nginx
systemctl reload nginx
# Services au démarrage
systemctl enable nginx
systemctl disable nginx
# Logs des services
journalctl -u nginx -f
journalctl -u docker --since "1 hour ago"
Gestion du Réseau
Informations Réseau
# Interfaces réseau
ip addr show
ifconfig
# Routes
ip route show
route -n
# Connexions actives
ss -tulnp
netstat -tulnp
# Ports ouverts
ss -tlnp | grep :80
lsof -i :3306
# DNS
nslookup repertapp.com
dig repertapp.com
Tests de Connectivité
# Ping
ping google.com
ping -c 4 8.8.8.8
# Test de port
telnet 000.111.222.333 80
nc -zv repertapp.com 443
# Test HTTP
curl -I https://repertapp.com
wget --spider https://repertapp.com
# Vitesse de téléchargement
wget -O /dev/null http://speedtest.wdc01.softlayer.com/downloads/test10.zip
Firewall (UFW)
# État du firewall
ufw status
# Activer/Désactiver
ufw enable
ufw disable
# Règles de base
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
# Règles spécifiques
ufw allow from 192.168.1.0/24 to any port 3306
ufw deny from 10.0.0.0/8
# Supprimer une règle
ufw delete allow 80/tcp
# Logs
ufw logging on
tail -f /var/log/ufw.log
Gestion Docker
Informations Docker
# Version Docker
docker --version
docker-compose --version
# Informations système Docker
docker info
docker system df
# Images disponibles
docker images
docker images --format "table {{.Repository}}\t{{.Tag}}\t{{.Size}}"
# Conteneurs
docker ps
docker ps -a
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
Gestion des Conteneurs
# Démarrer/Arrêter
docker start frontend
docker stop frontend
docker restart frontend
# Logs des conteneurs
docker logs frontend
docker logs -f api # Suivre en temps réel
docker logs --tail=50 db
# Exécuter des commandes dans un conteneur
docker exec -it api bash
docker exec -it db mysql -u root -p
# Copier des fichiers
docker cp fichier.txt frontend:/var/www/html/
docker cp frontend:/var/www/html/config.php ./
Docker Compose
# Se positionner dans le répertoire du projet
cd /opt/repertapp
# Démarrer l'application
docker-compose up -d
# Arrêter l'application
docker-compose down
# Redémarrer un service
docker-compose restart api
# Reconstruire et redémarrer
docker-compose up --build -d
# Logs de tous les services
docker-compose logs -f
# Logs d'un service spécifique
docker-compose logs -f api
# Mise à l'échelle
docker-compose up -d --scale api=2
Nettoyage Docker
# Nettoyer les conteneurs arrêtés
docker container prune -f
# Nettoyer les images inutilisées
docker image prune -a -f
# Nettoyer les volumes
docker volume prune -f
# Nettoyage complet
docker system prune -a -f --volumes
# Supprimer tout (ATTENTION!)
docker stop $(docker ps -q)
docker rm $(docker ps -aq)
docker rmi $(docker images -q)
Surveillance Docker
# Utilisation des ressources
docker stats
# Espace utilisé
docker system df
# Événements en temps réel
docker events
# Inspecter un conteneur
docker inspect frontend
docker inspect frontend | jq '.[0].NetworkSettings.IPAddress'
Gestion de la Base de Données
Connexion MySQL
# Connexion via Docker
docker exec -it db mysql -u root -p
# Connexion directe (si MySQL installé sur l'hôte)
mysql -u root -p
# Connexion avec base spécifique
docker exec -it db mysql -u root -p repertapp
Commandes MySQL de Base
-- Dans le conteneur MySQL
SHOW DATABASES;
USE repertapp;
SHOW TABLES;
DESCRIBE users;
-- Informations sur la base
SELECT COUNT(*) FROM users;
SHOW TABLE STATUS;
SELECT table_name, round(((data_length + index_length) / 1024 / 1024), 2) "Size in MB"
FROM information_schema.tables WHERE table_schema = "repertapp";
-- Processus en cours
SHOW PROCESSLIST;
-- Variables système
SHOW VARIABLES LIKE 'max_connections';
SHOW STATUS LIKE 'Threads_connected';
Sauvegarde MySQL
# Sauvegarde complète
docker exec db mysqldump -u root -p --all-databases > backup_$(date +%Y%m%d_%H%M%S).sql
# Sauvegarde d'une base spécifique
docker exec db mysqldump -u root -p repertapp > repertapp_backup_$(date +%Y%m%d_%H%M%S).sql
# Sauvegarde avec compression
docker exec db mysqldump -u root -p repertapp | gzip > repertapp_backup_$(date +%Y%m%d_%H%M%S).sql.gz
# Restauration
docker exec -i db mysql -u root -p repertapp < backup.sql
Monitoring MySQL
# Logs MySQL
docker logs db
docker logs -f db | grep ERROR
# Performance
docker exec db mysqladmin -u root -p status
docker exec db mysqladmin -u root -p processlist
# Espace utilisé par MySQL
docker exec db du -sh /var/lib/mysql
Surveillance et Monitoring
Monitoring Système
# Utilisation CPU en temps réel
top
htop
# Utilisation mémoire
free -h
watch -n 1 free -h
# Utilisation disque
df -h
watch -n 5 'df -h'
# I/O disque
iotop
iostat 1
# Charge réseau
iftop
nload
Monitoring de l’Application
# Statut des conteneurs
watch -n 2 'docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"'
# Utilisation ressources Docker
docker stats
# Logs en temps réel
docker-compose -f /opt/repertapp/docker-compose.yml logs -f
# Test de disponibilité
while true; do curl -s -o /dev/null -w "%{http_code}\n" https://repertapp.com; sleep 5; done
Scripts de Monitoring Personnalisés
# Script de vérification rapide
cat > /usr/local/bin/check-repertapp.sh << 'EOF'
#!/bin/bash
echo "🔍 VÉRIFICATION repertapp - $(date)"
echo "================================="
echo "📊 Espace disque:"
df -h | grep sda1
echo ""
echo "🐳 Conteneurs Docker:"
cd /opt/repertapp
docker-compose ps
echo ""
echo "🌐 Test HTTP:"
curl -s -o /dev/null -w "Status: %{http_code} - Time: %{time_total}s\n" https://repertapp.com
echo ""
echo "💾 Utilisation mémoire:"
free -h | grep Mem
echo ""
echo "⚡ Charge système:"
uptime
EOF
chmod +x /usr/local/bin/check-repertapp.sh
Gestion des Logs
Logs Système
# Logs système généraux
tail -f /var/log/syslog
journalctl -f
# Logs d'authentification
tail -f /var/log/auth.log
# Logs de démarrage
dmesg
journalctl -b
# Logs par service
journalctl -u docker -f
journalctl -u nginx --since "1 hour ago"
# Taille des logs
journalctl --disk-usage
du -sh /var/log/*
Logs Docker
# Logs de tous les conteneurs
docker-compose -f /opt/repertapp/docker-compose.yml logs
# Logs d'un conteneur spécifique
docker logs frontend
docker logs -f api --tail=100
# Logs avec timestamps
docker logs -t frontend
# Logs entre deux dates
docker logs --since="2025-06-19T10:00:00" --until="2025-06-19T11:00:00" api
Logs Laravel (API)
# Logs Laravel dans le conteneur
docker exec api tail -f /var/www/html/storage/logs/laravel.log
# Logs d'erreur PHP
docker exec api tail -f /var/log/php8.1-fpm.log
# Logs Nginx dans le conteneur API
docker exec api tail -f /var/log/nginx/access.log
docker exec api tail -f /var/log/nginx/error.log
Gestion des Logs
# Nettoyer les logs anciens
journalctl --vacuum-time=7d
journalctl --vacuum-size=100M
# Rotation des logs Docker
echo '{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}' > /etc/docker/daemon.json
# Redémarrer Docker pour appliquer
systemctl restart docker
# Nettoyer les logs Docker
docker system prune -f
Maintenance Système
Mises à Jour
# Mettre à jour la liste des paquets
apt update
# Voir les mises à jour disponibles
apt list --upgradable
# Appliquer les mises à jour
apt upgrade -y
# Mise à jour complète (inclut les nouveaux paquets)
apt full-upgrade -y
# Mettre à jour un paquet spécifique
apt install --only-upgrade docker-ce
# Nettoyer le cache
apt autoremove -y
apt autoclean
Redémarrage Système
# Vérifier si un redémarrage est nécessaire
cat /var/run/reboot-required
# Programmer un redémarrage
shutdown -r +5 # Dans 5 minutes
shutdown -r now # Immédiatement
# Annuler un redémarrage programmé
shutdown -c
# Redémarrage avec Docker Compose
cd /opt/repertapp
docker-compose down
reboot
# Après redémarrage: docker-compose up -d
Nettoyage Système
# Nettoyage APT
apt autoremove -y
apt autoclean
# Nettoyage /tmp
find /tmp -type f -atime +7 -delete
# Nettoyage logs
journalctl --vacuum-time=30d
# Nettoyage Docker
docker system prune -a -f --volumes
# Script de nettoyage complet
cat > /usr/local/bin/system-cleanup.sh << 'EOF'
#!/bin/bash
echo "🧹 Nettoyage système..."
apt autoremove -y
apt autoclean
journalctl --vacuum-time=15d
docker system prune -f
find /tmp -type f -atime +3 -delete 2>/dev/null
echo "✅ Nettoyage terminé"
EOF
chmod +x /usr/local/bin/system-cleanup.sh
Sécurité
Configuration SSH
# Modifier la configuration SSH
nano /etc/ssh/sshd_config
# Désactiver l'authentification par mot de passe
PasswordAuthentication no
# Changer le port SSH
Port 2222
# Désactiver la connexion root
PermitRootLogin no
# Redémarrer SSH
systemctl restart sshd
Fail2Ban
# Installer Fail2Ban
apt install fail2ban -y
# Configuration
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
# État de Fail2Ban
fail2ban-client status
fail2ban-client status sshd
# Débanner une IP
fail2ban-client set sshd unbanip 192.168.1.100
Certificats SSL
# Vérifier les certificats Traefik
docker exec traefik ls -la /certificates/
# Voir l'expiration d'un certificat
echo | openssl s_client -servername repertapp.com -connect repertapp.com:443 2>/dev/null | openssl x509 -noout -dates
# Forcer le renouvellement (Let's Encrypt via Traefik)
docker restart traefik
Audit de Sécurité
# Connexions actives
who
last | head -20
# Fichiers avec permissions SUID
find / -perm -4000 -type f 2>/dev/null
# Ports ouverts
ss -tulnp | grep LISTEN
# Vérifier l'intégrité des fichiers
aide --check # Si installé
# Scan des malwares
clamav-daemon # Si installé
Sauvegarde et Restauration
Sauvegarde de l’Application
# Script de sauvegarde complet
cat > /usr/local/bin/backup-repertapp.sh << 'EOF'
#!/bin/bash
BACKUP_DIR="/opt/backups/repertapp"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_NAME="repertapp_backup_${DATE}"
mkdir -p $BACKUP_DIR
echo "🔄 Sauvegarde repertapp - $DATE"
# Sauvegarde base de données
echo "📊 Sauvegarde base de données..."
docker exec db mysqldump -u root -p'$MYSQL_ROOT_PASSWORD' repertapp | gzip > "$BACKUP_DIR/${BACKUP_NAME}_db.sql.gz"
# Sauvegarde fichiers de configuration
echo "⚙️ Sauvegarde configuration..."
tar -czf "$BACKUP_DIR/${BACKUP_NAME}_config.tar.gz" -C /opt repertapp/
# Sauvegarde volumes Docker
echo "📂 Sauvegarde volumes..."
docker run --rm -v repertapp_mysql_data:/data -v $BACKUP_DIR:/backup alpine tar -czf /backup/${BACKUP_NAME}_volumes.tar.gz -C /data .
echo "✅ Sauvegarde terminée: $BACKUP_NAME"
EOF
chmod +x /usr/local/bin/backup-repertapp.sh
# Sauvegarde automatique quotidienne
echo "0 2 * * * /usr/local/bin/backup-repertapp.sh" | crontab -
Restauration
# Restaurer la base de données
gunzip < backup_db.sql.gz | docker exec -i db mysql -u root -p repertapp
# Restaurer la configuration
cd /opt
tar -xzf backup_config.tar.gz
# Restaurer les volumes
docker run --rm -v repertapp_mysql_data:/data -v /opt/backups:/backup alpine tar -xzf /backup/backup_volumes.tar.gz -C /data
Synchronisation Externe
# Rsync vers un serveur externe
rsync -avz /opt/backups/ user@backup-server:/backups/repertapp/
# Synchronisation avec exclusions
rsync -avz --exclude='*.log' --exclude='cache/' /opt/repertapp/ user@backup-server:/backup/
Dépannage et Debugging
Diagnostic Rapide
# Script de diagnostic complet
cat > /usr/local/bin/diagnose-repertapp.sh << 'EOF'
#!/bin/bash
echo "🔍 DIAGNOSTIC repertapp - $(date)"
echo "================================"
echo "📊 SYSTÈME:"
echo "- Charge: $(uptime | awk -F'load average:' '{print $2}')"
echo "- Mémoire: $(free -h | awk 'NR==2{printf "%.1f%%", $3*100/$2 }')"
echo "- Disque: $(df -h | awk '$NF=="/"{printf "%s", $5}')"
echo ""
echo "🐳 DOCKER:"
docker ps --format "table {{.Names}}\t{{.Status}}"
echo ""
echo "🌐 CONNECTIVITÉ:"
curl -s -o /dev/null -w "HTTPS: %{http_code} (%{time_total}s)\n" https://repertapp.com
curl -s -o /dev/null -w "HTTP: %{http_code} (%{time_total}s)\n" http://repertapp.com
echo ""
echo "📋 LOGS RÉCENTS (ERREURS):"
docker-compose -f /opt/repertapp/docker-compose.yml logs --tail=5 | grep -i error || echo "Aucune erreur récente"
echo ""
echo "🗄️ BASE DE DONNÉES:"
docker exec db mysqladmin -u root -p'$MYSQL_ROOT_PASSWORD' ping 2>/dev/null && echo "✅ MySQL OK" || echo "❌ MySQL KO"
EOF
chmod +x /usr/local/bin/diagnose-repertapp.sh
Problèmes Courants
Conteneur qui ne démarre pas
# Vérifier les logs
docker logs nom_conteneur
# Vérifier la configuration
docker-compose config
# Redémarrer le service
docker-compose restart nom_service
# Reconstruire l'image
docker-compose build --no-cache nom_service
docker-compose up -d nom_service
Problèmes de réseau
# Vérifier les réseaux Docker
docker network ls
docker network inspect repertapp_default
# Tester la connectivité entre conteneurs
docker exec frontend ping api
docker exec api ping db
# Vérifier les ports
ss -tlnp | grep :80
ss -tlnp | grep :443
Problèmes de base de données
# Connexion à MySQL
docker exec -it db mysql -u root -p
# Vérifier l'espace disque MySQL
docker exec db df -h /var/lib/mysql
# Réparer les tables (si nécessaire)
docker exec db mysqlcheck -u root -p --auto-repair --all-databases
Problèmes de performance
# Monitoring des ressources
docker stats
# Logs de performance
docker logs api | grep -i slow
docker exec db mysqladmin -u root -p processlist
# Optimisation mémoire
docker exec db mysql -u root -p -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"
Performance et Optimisation
Optimisation Système
# Paramètres kernel pour Docker
echo 'vm.max_map_count=262144' >> /etc/sysctl.conf
echo 'fs.file-max=65536' >> /etc/sysctl.conf
sysctl -p
# Optimisation swap
echo 'vm.swappiness=10' >> /etc/sysctl.conf
# Limites de fichiers
echo '* soft nofile 65536' >> /etc/security/limits.conf
echo '* hard nofile 65536' >> /etc/security/limits.conf
Optimisation Docker
# Configuration Docker optimisée
cat > /etc/docker/daemon.json << 'EOF'
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
},
"storage-driver": "overlay2",
"default-ulimits": {
"nofile": {
"Name": "nofile",
"Hard": 64000,
"Soft": 64000
}
}
}
EOF
systemctl restart docker
Monitoring de Performance
# Script de monitoring continu
cat > /usr/local/bin/perf-monitor.sh << 'EOF'
#!/bin/bash
while true; do
echo "$(date) - CPU: $(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | sed 's/%us,//') - RAM: $(free -m | awk 'NR==2{printf "%.1f%%", $3*100/$2 }') - Disk: $(df -h | awk '$NF=="/"{printf "%s", $5}')" >> /var/log/performance.log
sleep 60
done &
EOF
chmod +x /usr/local/bin/perf-monitor.sh
Optimisation MySQL
# Configuration MySQL optimisée (dans docker-compose.yml)
# environment:
# - MYSQL_INNODB_BUFFER_POOL_SIZE=512M
# - MYSQL_INNODB_LOG_FILE_SIZE=128M
# - MYSQL_MAX_CONNECTIONS=200
# Analyser les requêtes lentes
docker exec db mysql -u root -p -e "SHOW VARIABLES LIKE 'slow_query_log';"
docker exec db mysql -u root -p -e "SET GLOBAL slow_query_log = 'ON';"
Checklist de Maintenance Quotidienne
# Script de vérification quotidienne
cat > /usr/local/bin/daily-check.sh << 'EOF'
#!/bin/bash
echo "📅 VÉRIFICATION QUOTIDIENNE - $(date)"
echo "=================================="
# Espace disque
DISK_USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')
echo "💾 Espace disque: ${DISK_USAGE}%"
if [ $DISK_USAGE -gt 80 ]; then
echo "⚠️ ATTENTION: Espace disque critique!"
fi
# Conteneurs
echo "🐳 Conteneurs:"
docker ps --format "{{.Names}}: {{.Status}}"
# Connectivité
HTTP_STATUS=$(curl -s -o /dev/null -w "%{http_code}" https://repertapp.com)
echo "🌐 Site web: $HTTP_STATUS"
# Mises à jour
UPDATES=$(apt list --upgradable 2>/dev/null | wc -l)
echo "📦 Mises à jour disponibles: $((UPDATES-1))"
# Charge système
echo "⚡ Charge: $(uptime | awk -F'load average:' '{print $2}')"
echo "✅ Vérification terminée"
EOF
chmod +x /usr/local/bin/daily-check.sh
# Automatiser la vérification quotidienne
echo "0 9 * * * /usr/local/bin/daily-check.sh >> /var/log/daily-check.log" | crontab -
Commandes d’Urgence
En cas de problème critique
# Arrêt d'urgence
docker-compose -f /opt/repertapp/docker-compose.yml down
# Nettoyage d'urgence de l'espace disque
docker system prune -a -f --volumes
journalctl --vacuum-time=1d
find /tmp -type f -delete 2>/dev/null
# Redémarrage complet
systemctl restart docker
cd /opt/repertapp
docker-compose up -d
# Vérification post-redémarrage
docker ps
curl -I https://repertapp.com
Sauvegarde d’urgence
# Sauvegarde rapide base de données
docker exec db mysqldump -u root -p repertapp > /tmp/emergency_backup_$(date +%Y%m%d_%H%M%S).sql
# Sauvegarde configuration
tar -czf /tmp/config_backu
p_$(date +%Y%m%d_%H%M%S).tar.gz /opt/repertapp/
- Documentation Docker: https://docs.docker.com/
- Documentation Laravel: https://laravel.com/docs/11.x
- Documentation React: https://react.dev/
- Ubuntu Server Guide: https://ubuntu.com/server/docs
- MySQL Documentation: https://dev.mysql.com/doc/