Jump to content

Auto git pull e backup


Marco Oliveira

Recommended Posts

O script nada mais faz que dar um git pull do seu repositório automaticamente quando o servidor recebe reload ou crasha.

 

Na pasta raiz de seu repositório crie um arquivo chamado startserver.sh e uma pasta chamada logs dentro da pasta raiz de seu site.

 

pastaOt="caminho do servidor"
comandoBackup="caminho do servidor/backup/backup.sh"

echo "Iniciando o programa"
cd $pastaOt
mkdir -p /logs
mkdir -p build
while true
do
	cd $pastaOt
	./tfs 2>&1 | awk '{ print strftime("%F %T - "), $0; fflush(); }' | tee "/var/www/html/logs/$(date +"%F %H-%M-%S.log")"
	exitcode=${PIPESTATUS[0]}
	if [ $exitcode -eq 0 ]; then							 
		echo "Clean close"
		git pull
		cd build
	    cmake ..
		make
    	if [$? -ne 0]; then
    		echo "Compilation failed!"
    	else    	
    		echo "Compilation successful!"
    		mv tfs ..
    	fi
    	cd ..			
	else											
		echo "Server Crash!!! (O arquivo de log está guardado na pasta logs)"
	fi
	echo "Server Down, backup database..."
	$comandoBackup
	sleep 2
done;            

 

Ainda na pasta raiz do seu servidor crie uma pasta chamada backup e dentro dela crie um arquivo chamado backup.sh

 

CAMINHO="caminho do servidor/backup/"
NOMEBACKUP="nome do arquivo de backup"
USER="usuario do phpmyadmin"
SENHA="senha do phpmyadmin"
BANCO="nome da database"
TEMPO="$(date +'%d-%m-%Y-%H-%M')"

if [[ -z "$USER" || -z "$SENHA" || -z "$BANCO" ]]; then
    echo "Por favor preencha o usuário, senha e banco de dados nas configurações."
else
    mysqldump -u$USER -p$SENHA $BANCO > $CAMINHO"/"$NOMEBACKUP"-"$TEMPO".sql"
fi

Não se esqueça da permissão 777 em todos os arquivos, e também de ligar o servidor com o comando ./startserver.sh

 

OBS: você deve configurar a chave ssh no seu git para que não peça o e-mail e senha a cada reload, o git clone também deve ser feito atraves de ssh e não https

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...