#!/bin/bash # # Hidden services backup restoration. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as # published by the Free Software Foundation, either version 3 of the # License, or (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public # License along with this program. If not, see # . # Load. source $APP_BASE/lib/hydra/functions || exit 1 hydra_config_load # Parameters. DATE="`date +%Y%m%d`" HOST="$1" SERVICE="hidden" SERVICE_DIR="/var/lib/tor/hidden" SERVICE_USER="debian-tor" SERVICE_GROUP="debian-tor" # Set restore environment. hydra_backup_environment_service # Restore hidden service folder from backup. # # Symlink creation on site instances like drupal should be done # already by backup-restore-site. for folder in `ls $RESTOREDIR/$SERVICE_DIR`; do if [ -e "$SERVICE_DIR/$folder/hostname" ]; then # A hidden service already exists if ! diff "$SERVICE_DIR/$folder/hostname" "$RESTOREDIR/$SERVICE_DIR/$folder/hostname" &> /dev/null; then # They're different hidden services! echo "Hidden service $hidden already exists on $SERVICE_DIR/$folder and differs from backup!" echo "Please fix this conflict manually and restore backups again." else echo "Hidden service $hidden already in place, no need to copy." fi else echo "Processing $SERVICE_DIR/$folder..." rm -rf $SERVICE_DIR/$folder cp -a $RESTOREDIR/$SERVICE_DIR/$folder $SERVICE_DIR/$folder fi done # Fix permissions. chown -R $SERVICE_USER:$SERVICE_GROUP $SERVICE_DIR