scripts/sync_config_file.sh

314 lines
11 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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