Mudanças entre as edições de "BACKUP CRON"
Ir para navegação
Ir para pesquisar
(12 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 2: | Linha 2: | ||
'''2 - Dentro de opt criar pastas backups e scripts''' | '''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: | |||
<nowiki> | |||
#!/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 | |||
</nowiki> | |||
Crie o arquivo: | |||
nano contador.sh | |||
Agora insira o conteudo dele: | |||
<nowiki> | |||
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 | |||
</nowiki> | |||
'''Dentro de script criar dois arquivos executaveis backup.sh e contador.sh'' | '''Dentro de script criar dois arquivos executaveis backup.sh e contador.sh'' | ||
Linha 15: | Linha 149: | ||
Trocar o caminho do arquivo backup.sh referente a base de dados do e-commerce. | 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 |
Edição atual tal como às 18h28min de 8 de julho de 2019
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