Сегодня я пытаюсь обновить код на удаленном хосте с помощью скрипта ниже.
Так как мое локальное интернет-состояние не было хорошим, я установил программное обеспечение screen на случай отключения.
И тогда я выполнил сценарий выше. Все идет хорошо для первых нескольких серверов приложений.
Но когда дело доходит до последнего главного сервера. Я получил ошибку о наблюдателе.
Затем после отладки я обнаружил, что вся файловая система на главном сервере внезапно стала доступна только для чтения.
Я перезапустил его через ssh, но больше не могу к нему подключиться.
Есть ли вероятность того, что моя операция выполнения сценария, приведенного ниже, приведет к катастрофе только для чтения файловой системы?
Я сейчас такой святой, потому что в этот момент $ $$ компании испаряется.

#!/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

0