Jump to content

Olá Tibiano! Notamos que você está com um adblocker ligado... 

Nós promovemos servidores dentro da comunidade, para que eles tenham visibilidade.

Por favor, nos ajude a continuar promovendo esses servidores. Adicione nosso domínio na whitelist de seu adblocker, ok? :)

Marco Oliveira

Auto git pull e backup

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...