#!/bin/bash if [ "$1" == "-h" ]; then echo -e "\033[93mbackup-conf.sh\033[0m" echo "Backup several files and folders:" echo echo " - httpd.conf, httpd-vhosts.conf, httpd-ssl.conf" echo " - php.ini" echo " - my.cnf" echo " - .bash_profile, .bash_aliases" echo " - .config (folder)" echo " - .dircolors" echo " - .gitconfig, .gitignore" echo " - .gnupg (folder)" echo " - /etc/hosts" echo " - .wg++" echo " - .nanorc, .nanosyntax" echo " - .ssh (folder)" echo " - .vnc (folder)" echo " - .kymsu (folder)" echo " - .zshrc, .zcompdump, .zsh_plugins.sh, .zsh_plugins.txt" echo echo "USAGE: backup-conf" echo echo " -h display this help" echo exit 0 fi BKP_BASE_DIR=$(dirname "$0") # functions notification() { if [ $3 -eq 0 ]; then sound="Glass" message="Envoi terminé sur $2 !" image="$BKP_BASE_DIR/success.png" else sound="Basso" message="Echec lors de l'envoi sur $2 : erreur $result" image="$BKP_BASE_DIR/error.png" fi if [[ "$OSTYPE" == "darwin"* ]] && [ -x "$(command -v terminal-notifier)" ]; then # BUG: No image on BigSur terminal-notifier -title "$1" -message "$message" -sound "$sound" -contentImage "$image" fi } copy() { if [[ -d $1 ]]; then cp -R "$1" "$2"; fi if [[ -f $1 ]]; then cp "$1" "$2"; fi } # Backups folder dest=$HOME/Documents/Configurations/SilverBook dest2="$HOME/pCloud Drive/Linux/Silverbook" # Web: PHP / Apache / MySQL dest_mamp=$dest/config\ web\ \(homebrew\)/ cd "$dest_mamp" CURRENT_APACHE=$(httpd -v | grep "version" | awk '{print $3}' | awk -F/ '{print $2}') CURRENT_PHP=$(php -v | grep "cli" | awk '{print $2}') CURRENT_MYSQL=$(mysql -V | awk '{print $5}' | sed 's/.$//') if [ ! -d "apache $CURRENT_APACHE" ]; then mkdir "apache $CURRENT_APACHE"; fi cp /usr/local/etc/httpd/httpd.conf "$dest_mamp/apache $CURRENT_APACHE/" cp /usr/local/etc/httpd/server.crt "$dest_mamp/apache $CURRENT_APACHE/" cp /usr/local/etc/httpd/server.key "$dest_mamp/apache $CURRENT_APACHE/" cp /usr/local/etc/httpd/extra/httpd-vhosts.conf "$dest_mamp/apache $CURRENT_APACHE/" cp /usr/local/etc/httpd/extra/httpd-ssl.conf "$dest_mamp/apache $CURRENT_APACHE/" php_versions=$(ls /usr/local/etc/php/) for php in $php_versions do if [ ! -d "php $php" ]; then mkdir "php $php"; fi cp /usr/local/etc/php/$php/php.ini "$dest_mamp/php $php/" cp -R /usr/local/etc/php/$php/conf.d "$dest_mamp/php $php/" done BACKUP_MYSQL_FOLDER=$(echo $CURRENT_MYSQL | awk -F "-" '{print $2 " " $1}') if [ ! -d "$BACKUP_MYSQL_FOLDER" ]; then mkdir "$BACKUP_MYSQL_FOLDER"; fi cp /usr/local/etc/my.cnf "$dest_mamp/$BACKUP_MYSQL_FOLDER/" cp -R /usr/local/etc/my.cnf.d "$dest_mamp/$BACKUP_MYSQL_FOLDER/" tar -jcvf /tmp/mysql.tar.bz2 /usr/local/var/mysql/ && mv /tmp/mysql.tar.bz2 "$dest_mamp/$BACKUP_MYSQL_FOLDER/" # Shell: bash / zsh cd "$dest" if [ ! -d "shell" ]; then mkdir "shell"; fi dest_shell=$dest/shell/ copy $HOME/.bash_profile "$dest_shell" copy $HOME/.bash_aliases "$dest_shell" copy $HOME/.sh_aliases "$dest_shell" copy $HOME/.zcompdump "$dest_shell" copy $HOME/.zsh_plugins.sh "$dest_shell" copy $HOME/.zsh_plugins.txt "$dest_shell" copy $HOME/.zshrc "$dest_shell" copy "$dest_shell" "$dest2" # #echo '----------' #while read #do #echo "${REPLY}" #done < $HOME/.backup_list.conf #echo '----------' # # Autres copy $HOME/.backup_list.conf "$dest" copy $HOME/.config "$dest" # folder (joplin, mpv, rclone, xnview) copy $HOME/.dircolors "$dest" copy $HOME/.exclude-rsync "$dest" copy $HOME/.gitconfig "$dest" copy $HOME/.gitignore "$dest" # https://gpgtools.tenderapp.com/kb/gpg-keychain-faq/backup-or-transfer-your-keys copy $HOME/.gnupg "$dest" #folder copy $HOME/.gnupg_pre_2.1 "$dest" #folder copy $HOME/.kymsu "$dest" #folder gpg2 --output "$dest/.my.cnf.gpg" --recipient bruno.pesenti@orange.fr --encrypt $HOME/.my.cnf #copy $HOME/.my.cnf.gpg "$dest" copy $HOME/.nanorc "$dest" copy $HOME/.nanorc "$dest2" copy $HOME/.nanosyntax "$dest" #folder copy $HOME/.nanosyntax "$dest2" #folder gpg2 --output "$dest/.password.txt.gpg" --recipient bruno.pesenti@orange.fr --encrypt $HOME/.password.txt #copy $HOME/.password.txt.gpg "$dest" copy $HOME/.ssh "$dest" #folder copy $HOME/.ssh/config "$dest2" #folder copy $HOME/.vnc "$dest" #folder copy /private/etc/hosts "$dest" copy "$HOME/Library/Application\ Support/Transmit" "$dest" #folder copy "$HOME/Library/Application\ Support/iTerm2" "$dest" #folder copy $HOME/Library/LaunchAgents "$dest" #folder copy $HOME/Documents/Scripts/kymsu2/plugins.d/Brewfile "$dest" copy $HOME/Documents/Scripts/kymsu2/plugins.d/Installed_SilverBook*.md "$dest" copy $HOME/Dropbox/Dash.dash "$dest" terminal-notifier -title 'Backup configurations' -message 'Sauvegarde terminée !' -sound 'Glass' server1="clicclac.synology.me:/volume1/Backup/SilverBook/" rsync -e '/usr/bin/ssh -p 42666' --exclude-from="$HOME/.exclude-rsync.txt" --rsync-path=/bin/rsync -zarvh "$dest/" bruno@$server1 result=$? notification "Backup configurations" "$server1" $result server2="ftp.cluster011.ovh.net:www/backup/SilverBook/" rsync --exclude-from="$HOME/.exclude-rsync.txt" -zarvh "$dest/" funnymac@$server2 result=$? notification "Backup configurations" "$server2" $result <