BACKUP CRON
Revisão de 18h28min de 8 de julho de 2019 por Sergio Mendonça (discussão | contribs)
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
Agora crie o arquivo contador e 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