Commandes d’administration VPS Sous Ubuntu

19:19:08

Table des matières : [Masquer]

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 ""
# 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

Navigation

# 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/ -server:/backups/repertapp/
# Synchronisation avec exclusions
rsync -avz --exclude='*.log' --exclude='cache/' /opt/repertapp/ -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/