BACKUP CRON

De Tek-System Wiki
Ir para navegação Ir para pesquisar

1- Pegar os scripts em: dataserver/BKP_Google_Cloud

2 - Dentro de opt criar pastas backups e scripts

mkdir backups
mkdir scripts

Dentro da pasta scripts criar o arquivo: backup.sh

nano backup.sh
Inserir o conteudo:
#!/bin/bash
##### Variaveis
declare DATA=`date +%a`
declare DATA_ATUAL=`date +%d-%m-%Y_%H:%M`
declare DIR_BACKUP="/opt/backups"  #  Define o diretório onde sera salvo o backup
declare DIR_ARQUIVOS="/home/teksystem/Documentos/magento2-ready/magento2-docker-compose-master/" #Local onde estao os arquivos a serem feito o backup
declare DIR_DEST_BACKUP=$DIR_BACKUP
declare CLIENTE="TESTE"
declare TEMPO_AGUARDAR="00:00:30" # Tempo que ficara aguardando o arquivo ser gerado.
#                       HH:MM:SS
#
# Configurações de FTP
#
HOSTFTP=ts.teksystem.com.br   # Endereco servidor SFTP
USERFTP=bkp_google_cloud      # USUARIO
PASSFTP=tksys5700             # SENHA
PORTAFTP=2222                 # Porta de conexao
#
# Rotinas secundarias
#
mkdir -p $DIR_BACKUP/$DATA    # Cria o diretório de backup diário
echo "BACKUP - Tek-System Magento"
echo "Iniciando backup"
#
#APAGA LOG ANTERIOR
#
rm $DIR_BACKUP/$DATA/$CLIENTE"_LOG".log
#
#
# função que executa o backup
executa_backup(){
echo "================================================================"
echo "="
echo "=   Inicio da geracao do arquivo compactado em" $DATA_ATUAL
echo "=   Pasta dos arquivos:" $DIR_ARQUIVOS
echo "================================================================"
echo "="
echo " "
#Faz a compactacao da pasta
tar -zcvf $DIR_BACKUP/$DATA/$CLIENTE"_backup_"$DATA".tar.gz" /$DIR_ARQUIVOS

declare CONT=0

declare DATA_ATUAL=`date +%d-%m-%Y_%H:%M`
echo "================================================================"
echo "="
echo "=   FIM da geracao do arquivo compactado em" $DATA_ATUAL
echo "="
echo "================================================================"
echo "="
echo " "
}

executa_backup >> $DIR_BACKUP/$DATA/$CLIENTE"_LOG".log #1>> $DIR_BACKUP/$DATA/$CLIENTE"_backup"$DATA.log

#Pausa por Segundos
echo "AGUARDE!! ARQUIVO SENDO GERADO!!!"
./contador.sh $TEMPO_AGUARDAR

declare DATA_ATUAL=`date +%d-%m-%Y_%H:%M`

executa_ftp(){
#Inicia a tranferencia via FTP
echo "================================================================"
echo "="
echo "=   INICIO do envio via SFTP "$DATA_ATUAL
echo "="
echo "================================================================"
echo "="
echo " "
sshpass -p $PASSFTP sftp -P $PORTAFTP $USERFTP@$HOSTFTP <<ENDSHERE
lcd $DIR_BACKUP/$DATA
put $CLIENTE'_backup_'$DATA'.tar.gz'
put $CLIENTE"_LOG".log
quit
ENDSHERE
declare DATA_ATUAL=`date +%d-%m-%Y_%H:%M`
echo "================================================================"
echo "="
echo "=   FIM do envio via SFTP "$DATA_ATUAL
echo "="
echo "================================================================"
echo "="
echo " "
}
executa_ftp >> $DIR_BACKUP/$DATA/$CLIENTE"_LOG".log >> $DIR_BACKUP/$DATA/$CLIENTE"_LOG".log
 


Crie o arquivo:

nano contador.sh

Agora insira o conteudo dele:

function countdown
{
        local OLD_IFS="${IFS}"
        IFS=":"
        local ARR=( $1 )
        local SECONDS=$((  (ARR[0] * 60 * 60) + (ARR[1] * 60) + ARR[2]  ))
        local START=$(date +%s)
        local END=$((START + SECONDS))
        local CUR=$START

        while [[ $CUR -lt $END ]]
        do
                CUR=$(date +%s)
                LEFT=$((END-CUR))

                printf "\r%02d:%02d:%02d" \
                         $((LEFT/3600)) $(( (LEFT/60)%60)) $((LEFT%60))

                sleep 1
        done
        IFS="${OLD_IFS}"
        echo "        "
}

countdown $1
 

'Dentro de script criar dois arquivos executaveis backup.sh e contador.sh

3 - Rodar o comando

 chmod +x backup.sh 

e

chmod +x contador.sh 

Para torna-los executaveis.

Trocar o caminho do arquivo backup.sh referente a base de dados do e-commerce.

Instalar a biblioteca:

apt-get install sshpass

Tente rodar o comando para escrever no arquivo confi:

nano ~/.ssh/config

e escreva

Host ts.teksystem.com.br
   StrictHostKeyChecking no

Caso dê erro, crie o arquivo .ssh e refaça o item acima. Criar:

mkdir ~/.ssh

Crontab: Backup todo dia as 00:00 ( Horario do servidor)

0 0 * * * /opt/scripts/backup.sh

Reiniciar o cron:

service cron status
service cron stop
service cron start

Caso não tenha o cron, instalar usando:

apt-get install cron

Para editar o editor de texto, usar o nano com:

select-editor