Hoje, estou tentando atualizar o código no host remoto com o script abaixo.
Como minha condição de internet local não estava boa, instalei o screen
software em caso de desconexão.
E então eu executei o script acima. As coisas correm bem nos primeiros servidores de aplicativos.
Mas quando vai para o último servidor mestre. Eu recebi um erro sobre o supervisor.
Depois da depuração, encontrei todo o sistema de arquivos no servidor mestre, de repente, tornando-se somente leitura.
Eu o reiniciei através do ssh, mas não consigo mais me conectar a ele.
Existe a possibilidade de que minha operação de executar o script abaixo se deva a esse desastre somente leitura do sistema de arquivos?
Estou tão sagrado agora, porque o $$$ da empresa está evaporando neste momento.
#!/bin/sh
if [ $# -ne 1 ]; then
echo "Usage: `basename $0` <tag or branch>"
exit 1
fi
TAG=$1
WORK_DIR=$(cd "$(dirname "$0")"; pwd)
GIT_REPO_PATH="/data/repo/backend_english"
APP_SRV_LIST="${WORK_DIR}/app_prd_srv.txt"
# Read the Destination directory
_DES_DIR="backend_english"
DES_FULL_DIR=''
read -p "Please Select the destination directory: [$_DES_DIR] " DES_DIR
if [ "x${DES_DIR}" != "x" ]; then
DES_FULL_DIR="/data/sites/${DES_DIR}/"
fi
if [ ! -d "$DES_FULL_DIR" ]; then
echo "Selecting default: /data/sites/${_DES_DIR}/"
DES_FULL_DIR="/data/sites/${_DES_DIR}/"
else
echo "destination dir: ${DES_FULL_DIR}"
fi
HOST=(`cat ${APP_SRV_LIST} | grep -v '^#' `)
echo "Deploy to the hosts:"
for i in ${HOST[@]}
do
echo $i
done
read -p "Are you sure you want to continue (y/n)?" MFLAG
if [ "x${MFLAG}" != "xy" ]; then
exit 1
fi
cd $GIT_REPO_PATH
/usr/bin/git fetch --all
/usr/bin/git checkout $TAG
THOST=${HOST[0]}
/usr/bin/rsync --dry-run -a --delete --progress --exclude='*.pyc' --exclude='upload_xls' --exclude='.git' --exclude='.gitignore' --exclude='logs' --exclude='test/local_config.py' $GIT_REPO_PATH/ admin@$THOST:$DES_FULL_DIR/
read -p "Are you sure you want to continue (y/n)?" CFLAG
if [ "x${CFLAG}" != "xy" ]; then
exit 1
fi
echo $TAG > $WORK_DIR/version_prd.txt
for host in ${HOST[@]}
do
echo $host
rsync -a --delete --progress --exclude='upload_xls' --exclude='.git' --exclude='.gitignore' --exclude='logs' --exclude='test/local_config.py' $GIT_REPO_PATH/ admin@$host:$DES_FULL_DIR/
done
echo " "
echo " "
read -p "Restart all process (y/n)?" RFLAG
if [ "x${RFLAG}" != "xy" ]; then
exit 0
fi
for host in ${HOST[@]}
do
echo $host
ssh admin@$host /usr/local/bin/supervisorctl -u my_account -p my_password restart all
done