You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

 

#!/bin/bash

# === Variables ===
DATE=$(date +'%Y-%m-%d_%H-%M-%S')
GLPI_DB_NAME="glpi"
GLPI_DB_USER="root"
GLPI_DB_PASSWORD="ton_mot_de_passe_sql"
GLPI_WEB_DIR="/var/www/html/glpi"
LOCAL_BACKUP_DIR="/backup/glpi"
REMOTE_USER="ton_user_omv"
REMOTE_IP="IP_DU_NAS"
REMOTE_DIR="/srv/dev-disk-by-xxxxx/BackupGLPI"   # À adapter selon ton disque dans OMV
RETENTION_DAYS=7

# === Préparation ===
mkdir -p "$LOCAL_BACKUP_DIR"

# === Backup base SQL (compressé) ===
mysqldump -u "$GLPI_DB_USER" -p"$GLPI_DB_PASSWORD" "$GLPI_DB_NAME" | gzip > "$LOCAL_BACKUP_DIR/db_glpi_$DATE.sql.gz"

# === Backup fichiers GLPI ===
tar czf "$LOCAL_BACKUP_DIR/files_glpi_$DATE.tar.gz" -C "$GLPI_WEB_DIR" .

# === Rsync vers NAS OpenMediaVault ===
rsync -avz -e ssh "$LOCAL_BACKUP_DIR/" "$REMOTE_USER@$REMOTE_IP:$REMOTE_DIR/"

# === Nettoyage local : suppression des backups vieux de plus de 7 jours ===
find "$LOCAL_BACKUP_DIR" -type f -mtime +$RETENTION_DAYS -delete

# === Nettoyage distant (optionnel) : suppression sur NAS des vieux backups (si SSH autorisé) ===
# ssh $REMOTE_USER@$REMOTE_IP "find $REMOTE_DIR -type f -mtime +$RETENTION_DAYS -delete"

# === Fin ===

Tableau récapitulatif Crontab


PositionSignificationValeurs possiblesExempleSignification pratique
1ère ★Minute0 à 595 → à la 5e minute
2ème ★Heure0 à 2314 → 14h (2PM)
3ème ★Jour du mois1 à 3115 → le 15 du mois
4ème ★Mois1 à 127 → juillet
5ème ★Jour de la semaine0 à 7 (0 et 7 = dimanche)1 → lundi




🚀 Exemples pratiques utiles


CrontabLecture humaine
* * * * *Toutes les minutes
*/5 * * * *Toutes les 5 minutes
0 * * * *À chaque heure pile
30 2 * * *Tous les jours à 2h30 du matin
0 0 * * 0Tous les dimanches à minuit
0 8-18 * * 1-5Toutes les heures de 8h à 18h du lundi au vendredi
15 14 1 * *Le 1er de chaque mois à 14h15
0 0 1 1 *Le 1er janvier à minuit (Nouvel an 🎉)





  • No labels