314 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			314 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
#!/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
 | 
						||
 |