#!/bin/sh ################################################################################################ ## ## Nom: sync_config_file.sh ## ## Licence: Creative Commons ## ## Comportement: Synchronise différents fichiers/dossiers de configuration dans un répertoire qui fait office de sauvegarde ## ## ## ################################################################################################ ## ## Date de création: 20/10/2010 ## ## Auteur: Gardouille ## ## ## Dernière modifications: ## 20/10/2010: - Création # ********************************************************************************************** ## 2011/09/17 - ## - Ajout du fichier des applications d'ouverture par défauts pour les fichiers ## ## 16/12/2010: - Ajout de la configuration de parcellite ## 21/12/2010: - Ajout de la configuration de screen - panel gnome ## 16/02/2011: - Ajout de la configuration de teamviewer ## 27/04/2011: - Ajout de la configuration de moc ## 18/08/2011: - Ajotu de la configuration de samba ## 30/09/2011: - Ajout de la configuration de remmina minecraft # ********************************************************************************************** ## ## À modifier: ## - Ajouter la configuration de freeplane ## - Faire une nouvelle configuration pour gedit ## - Trouver tout les bons droits sur les fichiers à restaurer ## - Possibilité de sauvegarder la configuration de gedit avec gconftool? NON ## ################################################################################################ # ********************************************************************************************** # # Variables globales # # ----------------------------------------------------------- # Répertoire personnel de l'utilisateur: USER_DIR="/home/darker" # Fin des variables globales # ----------------------------------------------------------- # ********************************************************************************************** # ********************************************************************************************** # # Fichiers globaux # # ----------------------------------------------------------- # # Fin des fichierss globaux # ----------------------------------------------------------- # ********************************************************************************************** # ********************************************************************************************** # # Fonctions globales # # ----------------------------------------------------------- # Divers echos ... echoi() { echo " (ii) $*" >> "${log}" ; } echok() { echo " (ok) $*" >> "${log}" ; } echow() { echo " (!!) $*" >> "${log}" ; } echnk() { echo " (EE) $*" >> "${log}" ; } # Fin des fonctions globales # ----------------------------------------------------------- # ********************************************************************************************** # ********************************************************************************************** # # Programme principale # # ----------------------------------------------------------- case "$1" in backup) if [ "${USER}" = "root" ]; then # Synchronisation des fichiers de configuration de zsh ## Droits: ## 644: /etc/zsh/* rsync -a --delete /etc/zsh /media/data/config_debian/etc/ rsync -a /etc/dir_colors /media/data/config_debian/etc/ # Synchronisation du fichier hosts ## Droits: ## 644: /etc/hosts rsync -a /etc/hosts /media/data/config_debian/etc # Synchronisation des fichiers de configuration de aptitude ## Droits: ## 644: /etc/apt/{preferences,sources.list} rsync -a --delete /etc/apt/sources.list /media/data/config_debian/etc/apt rsync -a --delete /etc/apt/preferences /media/data/config_debian/etc/apt # Copie du fichier fstab ## Droits: ## 644: /etc/fstab cp /etc/fstab /media/data/config_debian/etc/fstab.backup # Synchronisation du répertoire samba ## Droits: ## 644: /etc/samba/* (récursif pour tous les fichiers) rsync -a --delete /etc/samba /media/data/config_debian/etc/ # Fichier dictionnaire de vim ## Droits: ## 644: /usr/share/vim/vim73/spell/* # rsync -a --delete /usr/share/vim/vim73/spell /media/data/config_debian/usr/share/vim/vim73 # Configuration des interfaces réseaux ## Droits: ## 644: /etc/network/interfaces rsync -a --delete /etc/network/interfaces /media/data/config_debian/etc/network/ else #gconftool-2 --dump /apps/panel > /media/data/config_debian/home/my-panel-setup.entries echo "pas de sauvegarde gconftool pour le moment" fi ## Répertoire personnel # Synchro du fichier de config de terminator ## Droits: ## 644: ~/.config/terminator/config rsync -a --delete "${USER_DIR}"/.config/terminator/config /media/data/config_debian/home/.config/terminator # Modèles de documents ## 644: ~/.config/user-dirs.dirs ~/Modeles/* rsync -a --delete "${USER_DIR}"/.config/user-dirs.dirs /media/data/config_debian/home/.config/ rsync -a --delete "${USER_DIR}"/Modeles /media/data/config_debian/home/ # Configuration de pidgin (comptes et historique) ## Droits:     ## 700: .purple ## 600: .purple/*.xml (récursif) ## 644: .purple/*.html (récursif) (historique en lecture pour tout le monde ... ?) rsync -a --delete "${USER_DIR}"/.purple /media/data/config_debian/home # Configuration de mozilla ## Droits: ## 700: .mozilla (récursif pour les dossiers) # rsync -a "${USER_DIR}"/.mozilla/firefox/xb6j4gn3.default/ /media/data/config_debian/home/.mozilla/firefox/ rsync -a "${USER_DIR}"/.mozilla/firefox/profiles.ini /media/data/config_debian/home/.mozilla/firefox # configuration de icedove sans les mails imap (gmail, hotmail, mailoo) ## Droits: ## 700: .icedove (récursif pour les dossiers) rsync -a --delete --filter "- ImapMail/" "${USER_DIR}"/.icedove /media/data/config_debian/home/ # configuration de skype rsync -a --delete "${USER_DIR}"/.Skype /media/data/config_debian/home # Configuration de Libreoffice (templates, dico, ...) ## Droits: ## 755: .libreoffice (récursif pour les dossiers) rsync -a --delete "${USER_DIR}"/.libreoffice /media/data/config_debian/home # Configuration de vim ## 700: .vim (récursif pour les dossiers) ## 640: pour les fichiers rsync -a --delete "${USER_DIR}"/.vim* /media/data/config_debian/home # configuration de ssh (nom d'utilisateur suivant l'host) ## 700: .ssh ## 600: .ssh/* rsync -a --delete "${USER_DIR}"/.ssh/config /media/data/config_debian/home/.ssh # Configuration de Eye Of Gnome (eog), plugin activés, ... ## -> Pas de fichier de config <- # rsync -a --delete "${USER_DIR}"/.gconf/apps/eog/plugins/%gconf.xml /media/data/config_debian/home/.gconf/apps/eog/plugins # configuration de gedit ## -> plus de fichier de configuration à propremement parler. # rsync -a --delete "${USER_DIR}"/.gconf/apps/gedit-2 /media/data/config_debian/home/.gconf/apps # configuration de gnome # rsync -a --delete "${USER_DIR}"/.gconf/apps/panel /media/data/config_debian/home/.gconf/apps # rsync -a --delete "${USER_DIR}"/.gconf/desktop/gnome /media/data/config_debian/home/.gconf/desktop # Script nautilus ## Recréer les liens: # Resize Image (1024px) -> ../nautilus-resize-image/ResizeImage.sh # Resize Image (800px) -> ../nautilus-resize-image/ResizeImage.sh ## 755: ~/.gnome2/nautilus-scripts/* rsync -a --delete "${USER_DIR}"/.gnome2/nautilus-* /media/data/config_debian/home/.gnome2/ # script ## 755: ~/bin/* rsync -a --delete "${USER_DIR}"/bin /media/data/config_debian/home/ # configuration de irssi ## 755: ~/.irssi/* ## 640: ~/.irssi/config rsync -a --delete "${USER_DIR}"/.irssi /media/data/config_debian/home/ # icônes ## Droits: ## 777: .icons/* rsync -a --delete "${USER_DIR}"/.icons /media/data/config_debian/home/ # configuration et bibliothèque de rhythmbox (note des chansons!) ## Droits: ## 700: .local/share/rhythmbox ## 644: .local/share/rhythmbox/* rsync -a --delete "${USER_DIR}"/.local/share/rhythmbox /media/data/config_debian/home/.local/share/ ## 700: .gconf/apps/rhythmbox ## 600: .gconf/apps/rhythmbox/*.xml (récursif) rsync -a --delete "${USER_DIR}"/.gconf/apps/rhythmbox /media/data/config_debian/home/.gconf/apps/ # rsync -a --delete /usr/lib/rhythmbox/plugins/vkontakte /media/data/config_debian/usr/lib/rhythmbox/plugins # Configuration de filezilla ## 644 ~/.filezilla/* rsync -a --delete "${USER_DIR}"/.filezilla /media/data/config_debian/home # Configuration de l'applet audio rsync -a --delete "${USER_DIR}"/.gstreamer-0.10 /media/data/config_debian/home # Configuration de TSClient ## 644: ~/.tsclient/* rsync -a --delete "${USER_DIR}"/.tsclient /media/data/config_debian/home # Configuration de Transmission     ## 755: .config/transmission/* (récursif pour les dossiers) ## 600: .config/transmission/* (récursif pour les fichiers) rsync -a --delete "${USER_DIR}"/.config/transmission /media/data/config_debian/home/.config # Configuration de l'écran de veille ##  # Configuration de Parcellite rsync -a --delete "${USER_DIR}"/.config/parcellite /media/data/config_debian/home/.config # Configuration de screen ## 600: .screen/* rsync -a --delete "${USER_DIR}"/.screen /media/data/config_debian/home/ # Configuration de teamviewer ## 755: ~/.teamviewer ## NE PAS RESTAURER TOUT LE RÉPERTOIRE TEAMVIEWER -> Trouver le fichier de config rsync -a --delete "${USER_DIR}"/.teamviewer /media/data/config_debian/home/ # Configuration de moc (music on console) ## rsync -a --delete "${USER_DIR}"/.moc /media/data/config_debian/home/ # Configuration des programmes par défaut pour ouvrir les fichiers: ## 644: .local/share/applications/mimeapps.list rsync -a --delete "${USER_DIR}"/.local/share/applications/mimeapps.list /media/data/config_debian/home/.local/share/applications/ # Configuration de remmina ## 755: .remmina ## 644: .remmina/* rsync -a --delete ~/.remmina /media/data/config_debian/home/ # Configuration/save de minecraft ## 755: ~/.minecraft (récursif sur les répertoires) ## 777 en récursif sur les fichiers? rsync -a --delete ~/.minecraft /media/data/config_debian/home/ ;; restore) ## Restoration /etc/ if [ "${USER}" = "root" ]; then rm -rf /etc/zsh/ rm -rf /etc/hosts rsync -a /media/data/config_debian/etc/ /etc rsync -a /media/data/config_debian/usr/ /usr exit 0 else # gconftool-2 --load /media/data/config_debian/home/my-panel-setup.entries echo "pas de gconftool pour le moment" fi ## Répertoire personnel rsync -a /media/data/config_debian/home/ "${USER_DIR}" ## Attribution des droits sur "${USER_DIR}" cd "${USER_DIR}" find . -type d -exec chmod 700 {} \; chmod -R 755 bin/ chmod -R 700 .ssh/ chown -R darker:darker "${USER_DIR}" ## Attribution des droits sur ~/.freeplane: chmod 644 "${USER_DIR}"/.freeplane/ ;; *) echo "Utilisation: $0 [backup|restore]" exit 1 esac exit 0