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