Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- if [ $(whoami) != 'root' ]; then
- echo "Se necesitan accesos de super usuario para ejecutar este script."
- exit 1;
- fi
- declare Host="host-de-sql-server"
- declare User="usuarioParaRespaldos"
- declare Pass="Contraseña-del-usuario-para-respaldos"
- declare -a Bases=(Lista De Bases De Datos)
- declare RemoteServer="host-remoto-para-guardar-los-respaldos"
- declare BackupDir="/var/opt/mssql/backups"
- declare sqlcmd="/opt/mssql-tools/bin/sqlcmd"
- cd $BackupDir
- #
- # 1. Eliminar respaldos antiguos.
- #
- rm -f *-anterior.bak
- #
- # 2. Respaldar los respaldos actuales.
- #
- for file in *.bak; do
- mv "$file" "${file/.bak/-anterior.bak}";
- done
- #
- # 3. Realizar los respaldos de DB.
- #
- for db in ${Bases[@]}; do
- #
- # 3.1 Crear el archivo de respaldo.
- #
- echo "Generando ${db}.bak... "
- $sqlcmd -S $Host -U $User -P $Pass -Q "BACKUP DATABASE [${db}] TO DISK = N'${BackupDir}/${db}.bak' WITH NAME = '${db}-full', COMPRESSION;"
- echo -e "Listo.\n"
- #
- # 3.2 Copiar respaldo en servidor ftp de respaldos.
- #
- echo "Cargando archivo a ftp de respaldo... "
- ftp -n $RemoteServer <<END_SCRIPT
- quote USER $User
- quote PASS $Pass
- put ${db}.bak
- quit
- END_SCRIPT
- echo -e "Listo.\n"
- done
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement