Skip to content

Un script shell avec menu pour le choix d'une automatisation de la sauvegarde d'un dossier sur un support externe.

License

Notifications You must be signed in to change notification settings

SKOHscripts/linux_rsync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 

Repository files navigation

linux-rsync

support

Système de Sauvegarde Automatisé avec Rsync et Intégration Cron

Solution robuste pour la synchronisation et la sauvegarde de répertoires sous Linux, avec gestion avancée des exclusions, journalisation détaillée et intégration transparente avec cron.

Fonctionnalités Clés

  • Sauvegarde incrémentielle avec rsync pour une efficacité optimale
  • Planification automatique via cron avec gestion des variables d'environnement graphique
  • Journalisation complète avec rotation automatique des logs
  • Notifications visuelles (zenity) et système (systemd-cat)
  • Exclusions intelligentes des répertoires temporaires, caches et environnements de développement
  • Gestion des erreurs détaillée avec codes de sortie explicites

Installation

git clone https://github.com/votre-utilisateur/linux_rsync.git
cd linux_rsync
chmod +x automate.sh

Utilisation Basique

./automate.sh -s /chemin/source -d /chemin/destination

Options Principales

Option Description
-s Répertoire source à sauvegarder (obligatoire)
-d Destination de la sauvegarde (obligatoire)
-c Activer la planification cron toutes les 12h
-h Afficher l'aide

Configuration Avancée

Exclusions Types

--exclude="/node_modules/" --exclude="/pycache/" --exclude="**/.idea/"

Liste complète des modèles d'exclusion dans le script source

Variables d'Environnement

export DISPLAY=:0 # Pour les notifications graphiques
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus

Gestion des Journaux

Fichier Description
backup.log Journal principal des opérations
rsync_*.log Logs détaillés par session rsync
Rotation automatique après 7 jours
find "${DESTINATION}" -name "rsync_*.log" -mtime +7 -delete

Intégration Cron

Pour activer les sauvegardes planifiées :

./automate.sh -s /home/user -d /backup -c

Commande cron générée :

0 */12 * * * /bin/bash -c 'export $(cat /proc/$(pgrep -u $USER gnome-session | head -1)/environ | tr "\0" "\n" | grep -E "DISPLAY|DBUS_SESSION_BUS_ADDRESS")' && /chemin/absolu/automate.sh -s /home/user -d /backup

Dépannage

Erreurs Courantes

  1. Permissions insuffisantes
chmod 700 /chemin/destination
  1. Dépendances manquantes Installer rsync et zenity :
sudo apt install rsync zenity
  1. Problèmes d'environnement cron Vérifier les variables DISPLAY/DBUS avec :
env | grep -E 'DISPLAY|DBUS'

Contribution

Les contributions sont les bienvenues via pull requests. Merci de respecter les guidelines :

  • Tests sur multiples distributions Linux
  • Documentation mise à jour
  • Validation ShellCheck

Licence

GPL-3.0 - Voir le fichier LICENSE


Compatibilité : Testé sur Debian 12, EndeavourOS (2025.02.08, Mercury) based on Arch Linux Dépendances : rsync >= 3.2.3, zenity >= 3.32.0, systemd >= 247

About

Un script shell avec menu pour le choix d'une automatisation de la sauvegarde d'un dossier sur un support externe.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages