Mostrando entradas con la etiqueta Backup. Mostrar todas las entradas
Mostrando entradas con la etiqueta Backup. Mostrar todas las entradas

Amazon S3 Uploader

d
Nombre: Amazon S3 Uploader
Descripción: Script que permite subir archivos a una instancia de S3 vía BASH
Autor: guss77
geek.co.il
Más información del script en: Things n' Stuff
#!/bin/bash
file="$1"

key_id="YOUR-AWS-KEY-ID"
key_secret="YOUR-AWS-KEY-SECRET"
path="some-directory/$file"
bucket="s3-bucket-name"
content_type="application/octet-stream"
date="$(LC_ALL=C date -u +"%a, %d %b %Y %X %z")"
md5="$(openssl md5 -binary < "$file" | base64)"

sig="$(printf "PUT\n$md5\n$content_type\n$date\n/$bucket/$path" | openssl sha1 -binary -hmac "$key_secret" | base64)"

curl -T $file http://$bucket.s3.amazonaws.com/$path \
    -H "Date: $date" \
    -H "Authorization: AWS $key_id:$sig" \
    -H "Content-Type: $content_type" \
    -H "Content-MD5: $md5"
Leer más...

Fortibackup.py - Robot para sacar copias de seguridad de dispositivos fortigate

d
Nombre: Fortibackup.py
 Autor: @epsilon77
 Tomado de DragonJar

 #!/usr/bin/python
import os
import sys
import optparse
"""
        FortiBackup
       
        author: epsilon77 at gmail
       
        Licensed under the GNU General Public License Version 2 (GNU GPL v2),
            available at: http://www.gnu.org/licenses/gpl-2.0.txt
       
        (C) 2014 Daniel Echeverry
"""

parser = optparse.OptionParser()
parser.add_option('-f', '--file', help='Ruta archivo matrix',dest='file', action='store')
(opts, args) = parser.parse_args()

if opts.file is None:
    parser.print_help()
        exit(-1)

#Leemos el archivo
file=opts.file
f = open(file)
data = f.read().strip()
f.close()

#Lo pasamos a un arreglo
M = [[num for num in line.strip().split()] for line in data.split('\n')]


lim=len(M)

for i in M:
    print "Inicio proceso de backup Nombre: "+i[1]+" Direccion IP: "+i[0]
        print "Por favor espere..."
        cmd='sshpass -p'+i[4]+' scp -q -P '+i[2]+' '+i[3]+'@'+i[0]+':sys_config '+i[1]+'.conf'
    ans=os.system(cmd)
    if ans == 0:
         print "Copia sacada correctamente... Nombre: "+i[1]+".conf"
    else:
          print "Hubo un error al generar la copia, puede ser problema de  password o que el host aun no conoce la llave y pide confirmacion la  primera vez"

Ejecucion del Script

$ python fortibackup.py -f ruta-archivo-matrix

Regards, 
Snifer
Leer más...

Script para Backup de directorio de correos

d
Visto y más información en Garabatos Linux
#!/bin/bash
HOSTNAME=`hostname`
FECHA=`date +%d%m%Y`
# Lista los Buzones Actuales en Carpeta #
LOG=/home/listado.log
echo "A continuacion se muestra el Listado de Buzones que fueron respaldados. " >>/home/listado.log
echo "Tamaño total del directorio: `du -sh /home/vmail/dominio.com.sv/ `" >> /home/listado.log
cd /home/vmail/dominio.com.sv/
du -sxh * | sort -n >> /home/listado.log
#Titulo del Correo#
SUBJECT="Respaldo de Postfix $HOSTNAME $FECHA"
# Empaquetado#
tar -jcvf /home/BuzonesPostfix/respaldo_correos_$(date +"%d-%m-%Y_%H%M").tar.bz2 /home/vmail/dominio.com.sv/*
#Direcciones de Correo #
EMAIL1="correo1@dominio.com.sv"
EMAIL2="correo2@dominio.com.sv"
## Envio de Correo para Confirmar el Backup ##############
echo "BACKUP DE: " | mail -s "$SUBJECT" "$EMAIL1" -c "$EMAIL2" <$LOG
# Eliminado de Log #
rm /home/listado.log
Leer más...

Script Full Backup

d
Autor: GhosTi
Visto en Blog of Sysadmins
#!/bin/bash
 
 
 
TAR=$(which tar)
TEE=$(which tee)
 
ARGS=2
 
if [ $# -ne $ARGS ]
then
echo “Usage: “$0” file dir”
echo ” file: backup file name”
echo ” dir: path to backup”
exit
fi
 
APP=$0 #app name
FILE=$1“_full.tgz” #backup file
FILE_OLD=$FILE“~” #file backuped before remove
DIR=$2 #path
 
LOG_DIR=/var/log
LOG_FILE=$LOG_DIR“/”${APP##*\/}“.log” #remuevo de APP lo que este antes de la ultima /
 
TODAY=`date “+%Y-%m-%d %a”`
echo $TODAY” *** Backup full *** “ | $TEE -a $LOG_FILE
 
if [ ! -d $DIR ]
then
echo “ERROR: path “$DIR” not exist” | $TEE -a $LOG_FILE
exit
fi
 
#Realizo backup del backup
echo “Rotating files…” | $TEE -a $LOG_FILE
 
if [ -f $FILE ];
then
#cp -v $FILE $FILE_OLD | $TEE -a $LOG_FILE
rm -v $FILE | $TEE -a $LOG_FILE
fi
 
echo “Making backup…” | $TEE -a $LOG_FILE
#Realizo el backup
$TAR -chzf $FILE $DIR | $TEE -a $LOG_FILE
 
if [ $? == 0 ]
then
echo “Backup successfull!”
else
echo “ERROR: error making backup :-( “
fi
Leer más...

Script Backup Incremental.

d
Autor: GhosTi
Visto en Blog of Sysadmins
#!/bin/sh
TAR=$(which tar)
TEE=$(which tee)
 
 
 
ARGS=2
 
if [ $# -ne $ARGS ]
 
then
echo “Usage: “$0” file dir”
echo ” file: backup file name”
echo ” dir: path to backup”
exit
fi
 
APP=$0 #app name
FILE=$1“_incremental.tgz” #backup file
FILE_FULL=$1“_full.tgz” #backup full
FILE_OLD=$FILE“~” #file backuped before remove
DIR=$2 #path
 
LOG_DIR=/var/log
LOG_FILE=$LOG_DIR“/”${APP##*\/}“.log” #remuevo de APP lo que este antes de la ultima /
 
TODAY=`date “+%Y-%m-%d %a”`
echo $TODAY” *** Backup incremental ***” | $TEE -a $LOG_FILE
 
if [ ! -d $DIR ]
then
echo “ERROR: path “$DIR” not exist” | $TEE -a $LOG_FILE
exit
fi
 
# Reviso si existe el backup full
if [ ! -f $FILE_FULL ];
then
echo “ERROR: full backup “$FILE_FULL” not exist!” | $TEE -a $LOG_FILE
exit
fi
 
#Realizo backup del backup
 
echo “Rotating files…” | $TEE $LOG_FILE
 
if [ -f $FILE ];
 
then
#cp -v $FILE $FILE_OLD | $TEE $LOG_FILE
rm -v $FILE | $TEE $LOG_FILE
fi
 
#Realizo el backup
DATE_FULL=“`date \”+%Y-%m-%d %H:%M\” -r “$FILE_FULL“`”
echo “Full backupe created: “$DATE_FULL | $TEE $LOG_FILE
 
echo “Making backup…” | $TEE $LOG_FILE
$TAR -chzf $FILE –newer-mtime=“$DATE_FULL” $DIR | $TEE -a $LOG_FILE
 
if [ $? == 0 ]
then
echo “Backup successfull!”
else
echo “ERROR: error making backup :-( “
fi
Leer más...

Script Backup MySQL.

d
Nombre: script_backup_mysql.sh
Autor: Desconocido
Visto y información de configuración en Ciber Terminal
#!/bin/bash
BACKUPUSER="backup_user"
BACKUPPASS="PASSWORD"
BACKUPPATH="/home/backup/mysql"
MYDATE="$(date +%Y%m%d)"
MYSQLDUMP="/usr/bin/mysqldump"
MYSQL="/usr/bin/mysql"
MYCNF="/etc/mysql/my.cnf"
ZIP="/bin/bzip2"
ZIPOPS="-9f"
IGNOREDDBB="Database|mysql|information_schema"
 
DBLIST=""
CHMOD="440"
CHOWN="root:admins"
 
BINLOGINDEX="/home/mysql/log/mysql-bin.index"
 
list_databases()
{
        DBLIST="`echo "show databases ;" | $MYSQL -u "$BACKUPUSER" --password="$BACKUPPASS" | egrep -v "$IGNOREDDBB"`"
         return 1
}
 
dump_databases()
{
        for i in $DBLIST
        do
                $MYSQLDUMP --master-data=2 -u "$BACKUPUSER" --password="$BACKUPPASS" $i > $BACKUPPATH/$i-$MYDATE.sql
                $ZIP $ZIPOPS $BACKUPPATH/$i-$MYDATE.sql
        done
        return 1
}
 
dump_grants()
{
        mysql -p$BACKUPPASS --batch --skip-column-names --execute="SELECT DISTINCT CONCAT('SHOW GRANTS FOR ',user,'@\'',host,'\';') AS query FROM user" mysql | mysql -p$BACKUPPASS --batch --skip-column-names mysql | perl -p -e '$_ =~ s/$/;/; END { print "FLUSH PRIVILEGES;n" }' > $BACKUPPATH/grants-$MYDATE.sql
        $ZIP $ZIPOPS $BACKUPPATH/grants-$MYDATE.sql
}
 
 
binlog_backup()
{
        local let LINES=$(cat $BINLOGINDEX | wc -l)
        let LINES--
        tar cjfv $BACKUPPATH/MYSQL_BINLOGS-$MYDATE.tar.bz2 $(head -$LINES $BINLOGINDEX | xargs)
}
 
 
 
purge_binlogs()
{
        local LOGBIN="$(cat $MYCNF | grep -v ^# | grep log_bin | awk -F= '{print $2}')"
        local BINLOGNAME="$(basename $LOGBIN | awk -F. '{print $1}')"
        local BINLOGPATH="$(dirname $LOGBIN)"
        local let MINAGE="$(cat $MYCNF | grep -v ^# | grep expire | awk -F\= '{print $2}')"
        let MINAGE=$((${MINAGE}+2))
        local LASTBINLOG="$(find $BINLOGPATH -mtime +$MINAGE -name "*$BINLOGNAME*" | tail -1)"
        if [[ "$LASTBINLOG" ]]
        then
                local LASTBINLOG="$(basename $LASTBINLOG)"
                echo "PURGE BINARY LOGS TO "$LASTBINLOG";" | $MYSQL -u "$BACKUPUSER" --password="$BACKUPPASS"
        fi
}
 
list_databases
dump_databases
dump_grants
purge_binlogs
 
find $BACKUPPATH -type f -exec chmod $CHMOD {} ;
find $BACKUPPATH -type f -exec chown $CHOWN {} ;
 
exit 0
Leer más...

Django Backup Script

d
Nombre: DJANGO BACKUP SCRIPT
Autor: (C) 2009 Guy Rutenberg
Descripción: Script que permite generar un backup del proyecto
Formas de uso
$ django_backup /path/to/my/proj
$ django_backup --db-only /path/to/my/proj
#!/bin/bash
 
# (C) 2009 Guy Rutenberg
# Backup Django sites
 
BACKUP_DIR=
FTP_HOST=
FTP_USER=
FTP_PASS=
FTP_BACKUP_DIR=
 
# end of user configurable section
 
PROG=`basename "$0"`
print_usage () {
    echo "USAGE: $0 [options] PROJ_ROOT"
    echo "Backup a Django project located in PROJ_ROOT"
}
 
print_help ()  {
    print_usage
    cat << EOF
 
Options:
    -h, --help          show this help message and exit
    --db-only           only backup the database
 
EOF
}
 
TEMP=`getopt -o h --long help,db-only -n "$PROG" -- "$@"`
if (($?)); then
    print_usage
    exit 1
fi
 
eval set -- "$TEMP"
 
DB_ONLY=0
while true ; do
    case "$1" in
        -h|--help) print_help; exit ;;
        --db-only) DB_ONLY="1" ; shift ;;
        --) shift; break;;
    esac
done
 
 
 
if [ -z "$1" ]
then
 print_usage > /dev/stderr
 exit 1
fi
 
PROJECT_DIR=$1
 
# extract database variables from settings.py
cd "$PROJECT_DIR"
 
 
DB_ENGINE=`python -c "from settings import *; print DATABASE_ENGINE"`
if [ "$DB_ENGINE" != "mysql" ]; then
 echo $DB_ENGINE
 echo "Only mysql databases are supported!">/dev/stderr
 exit 1
fi
 
DB_NAME=`python -c "from settings import *; print DATABASE_NAME"`
DB_USER=`python -c "from settings import *; print DATABASE_USER"`
DB_PASS=`python -c "from settings import *; print DATABASE_PASSWORD"`
DB_HOST=`python -c "from settings import *; print DATABASE_HOST"`
#TODO find how to use it
DB_PORT=`python -c "from settings import *; print DATABASE_PORT"`
 
# set optional parameters: host, port
HOST_ARGS=''
if [ -n "$DB_HOST" ]; then
 HOST_ARGS="--host $DB_HOST"
fi
 
PORT_ARGS=''
if [ -n "$DB_PORT" ]; then
 PORT_ARGS="--port $DB_HOST"
fi
 
SITE_DIR=`dirname "$PROJECT_DIR"`/`basename "$PROJECT_DIR"`
BACKUP_DIR=`dirname "$BACKUP_DIR"`/`basename "$BACKUP_DIR"`
 
echo -n "dumping database... "
DUMP_NAME=${DB_NAME}-$(date +%Y%m%d).sql.bz2
mysqldump --user=${DB_USER} --password=${DB_PASS} $HOST_ARGS \
 $PORT_ARGS --databases ${DB_NAME} \
 | bzip2 -c > ${BACKUP_DIR}/${DUMP_NAME}
if (($?)); then
	echo "failed!"
	exit 1
fi
echo "done"
 
PUT_TARBALL_FTP=""
if [ "$DB_ONLY" -eq "0" ]; then
	echo -n "Creating tarball... "
	TAR_NAME=${SITE_DIR##*/}-$(date +%Y%m%d).tar.bz2
	tar -cjf ${BACKUP_DIR}/${SITE_DIR##*/}-$(date +%Y%m%d).tar.bz2 ${SITE_DIR}
	if (($?)); then
		echo "failed!"
		exit 2
	fi
	echo "done"
	PUT_TARBALL_FTP="put \"${BACKUP_DIR}/${TAR_NAME}\""
fi
 
echo -n "Uploading backup to FTP... "
 
lftp -u ${FTP_USER},${FTP_PASS} ${FTP_HOST} 
Leer más...

Script Python para respaldar base de datos en Postgrtesql

d
Autor: Carlos Garcia
Descripción: Script en python que permite hacer un respaldo de una base de datos que reside en PostgreSql

Este archivo se ejecuta de la siguiente manera:

$ python respaldo.py

Para Restaurar la Base de Datos: -d Nombre Base Datos -U Usuario
pg_restore -d db -U postgres db.tar

#!/usr/bin/env python
import time
import datetime
import os


def nombre_archivo():
    '''
    Permite Crear el nombre del archivo que tendra el respaldo
    tomando como nombre la fecha dd-mm-aa y la hora hh:mm:ss
    Quedando de la siguiente manera suponiendo que fue realizado
    en la siguiente fecha (24/12/2011 10:30:00) , el resultado seria
    el siguiente: 24_12_2011_103000

    t = time.localtime()
    dia = t.tm_mday
    mes = t.tm_mon
    ano = t.tm_year

    hora = t.tm_hour
    minutos = t.tm_min
    seg = t.tm_sec

    nombre = '%s-%s-%s_%s:%s:%s' % (dia, mes, ano, hora, minutos, seg)
    '''

    t = datetime.datetime.now()
    nombre = t.strftime('%d_%m_%Y_%I%M%S')
    return nombre


def leer_config():
    '''
    Toma los valores del archivo de configuracion llamado config.cfg y los
     guarda en un diccionario {clave:valor} el cual retorna al finalizar.
    Informacion del archivo config.cfg:

    ipservidor=10.121.6.4
    nombrebasedatos=bdhcoromoto
    usuariobasedatos=admhc
    rutarespaldo=/media/respaldo
    nombrearchivo=pg_bdhcoromoto_
    '''
    diccionario = {}
    ruta = "/home/cgarcia/desarrollo/python/respaldo-potgres/config/config.cfg"
    for linea in file(ruta):
        if linea[0] != '#':
            separar = linea.split('=')
            if len(separar) > 1:
                dicc_clave = separar[0]
                dicc_valor = separar[1].rstrip()  # rstrip elimina el retor d c
                diccionario[dicc_clave] = dicc_valor
    return diccionario


def respaldo_pg():
    '''
    Toma los parametros del diccionario con el cual se arma el nombre y
    la ruta que tendra el archivo del respaldo asi como tambien arma
    el comando final a ejecutar
    '''

    diccio = leer_config()
    dic_ipservidor = diccio['ipservidor']
    dic_nombrebasedatos = diccio['nombrebasedatos']
    dic_usuariobasedatos = diccio['usuariobasedatos']
    dic_rutarespaldo = diccio['rutarespaldo']
    dic_nombrearchivo = diccio['nombrearchivo']

    archivofinal = os.path.join(dic_rutarespaldo, dic_nombrearchivo + \
     nombre_archivo() + '.tar')
    comando = 'pg_dump'

    '''
    -Parametros a pasar(Estos tambien se pudieran colocar dentro del
    archivo config.cfg),
    - pero por ahora lo dejaremos asi directo como texto
    -Ft Significa Format tar
    -b Inclute campos Blobs
    -h es el host o la ip del servidor
    -W password
    '''
    comando_a_ejecutar = '%s -Ft -b -h %s %s -U %s > %s' % \
        (comando, dic_ipservidor, dic_nombrebasedatos, dic_usuariobasedatos,\
         archivofinal)
    return comando_a_ejecutar

if __name__ == '__main__':
    print 'Espere un momento ejecutando Proceso de Respaldo...'
    respaldar = respaldo_pg()
    print respaldar
    os.system(respaldar)
    print '*** Respaldo Realizado con Exito ***'
Leer más...

WordPress Backup Script

d
Nombre: WordPress Backup
Autor: Guy Rutenberg
Descripción: Script que automatiza y permite generar Backup de Wordpress
Visto en Guy Rutenberg
#!/bin/bash
# (C) 2008 Guy Rutenberg - http://www.guyrutenberg.com
# This is a script that creates backups of blogs.
 
DB_NAME=
DB_USER=
DB_PASS=
DB_HOST=
 
#no trailing slash
BLOG_DIR=
BACKUP_DIR=
 
 
echo -n "dumping database... "
mysqldump --user=${DB_USER} --password=${DB_PASS} --host=${DB_HOST} ${DB_NAME} \
 | bzip2 -c > ${BACKUP_DIR}/${DB_NAME}-$(date +%Y%m%d).sql.bz2
if [ "$?" -ne "0" ]; then
	echo -e "\nmysqldump failed!"
	exit 1
fi
echo "done"
 
 
echo -n "Creating tarball... "
tar -cjf ${BACKUP_DIR}/${BLOG_DIR##*/}-$(date +%Y%m%d).tar.bz2 ${BLOG_DIR}
if [ "$?" -ne "0" ]; then
	echo -e "\ntarball creation failed!"
	exit 1
fi
echo "done"
Leer más...

Script de backups para MySQL

d
Autor: @NerdChileno

Descripción: Crea backups comprimidos para cada una de las bases de datos en el motor.

#!/bin/sh
# 
# syslock.cl
# Copyright GPL V.3
# 06/03/2010
# Version: 1.0.10
#
# ---------------------------------------------------------------------
 
# 
NOW="$(date +"%Y%m%d")"
MyUSER="" #USUARIO 
MyPASS=""       # PASSWORD
MyHOST="localhost"          # HOST
 
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"
CHOWN="$(which chown)"
CHMOD="$(which chmod)"
GZIP="$(which gzip)"
DEST="/home/mysqldump/unaxuna" #DIR DE DESTINO 
MBD="$DEST/$NOW"
HOST="$(hostname)"
 
FILE=""
DBS=""
 
OMITE="test" # OMITIR BASE PARA RESPALDO
 
[ ! -d $MBD ] && mkdir -p $MBD || :
 
$CHOWN 0.0 -R $DEST
$CHMOD 0600 $DEST
 
DBS="$($MYSQL -u $MyUSER -h $MyHOST -p$MyPASS -Bse 'show databases')"
 
for db in $DBS
do
    skipdb=-1
    if [ "$OMITE" != "" ];
    then
        for i in $OMITE
        do
            [ "$db" == "$i" ] && skipdb=1 || :
        done
    fi
 
    if [ "$skipdb" == "-1" ] ; then
        FILE="$MBD/$NOW.$db.gz"
        $MYSQLDUMP -u $MyUSER -h $MyHOST -p$MyPASS $db | $GZIP -9 > $FILE
    fi
done



Leer más...