問題:GitHubからLinuxサーバーにあるディレクトリーに自動的にリアルタイムでPullできるようにはなっていますがいくつかのディレクトリーに同時にPULLした時にプロセスの処理が次々と実行されてサーバーが落ちしまいます。
質問・実行したいこと:
どうしたい上記の問題を解決できますか?
これを先のプロセスが終わってから次の処理が実行できるように変更したいのですが良くわからなくて誰かが教えていただきますか?
こちらのGitバッチ処理です.
#!/bin/bash #指定されたブランチをpullする export PATH=$PATH:/usr/local/bin GIT_DIR=.git # pull対象ブランチ BRANCH_ARR=("master" "master") # 更新対象ディレクトリ DIR=/var/www/vhosts/system DIR_ARR=("bokemon" "lalago") # log LOG=/var/www/vhosts/system/logs/git/gitpull.log datestr=`date +%Y/%m/%d_%H:%M:%S` echo "$datestr git pull start." 1>>$LOG 2>&1 for (( i=0; i<${#DIR_ARR[@]}; i++ )) do target_dir=${DIR_ARR[$i]} branch=${BRANCH_ARR[$i]} # 反映先ディレクトリへ移動する cd "${DIR}/${target_dir}" echo "${DIR}/${target_dir}" 1>>$LOG 2>&1 # 反映したいブランチと現在のブランチが同じか確認する current=`git rev-parse --abbrev-ref HEAD` if [ "$current" != "$branch" ]; then # $BRANCHと異なる場合はcheckoutし直す `git checkout $BRANCH` 1>>$LOG 2>&1 fi # git fetch後、diffで差分があるか確認する fetch=`git fetch` diff=`git diff origin/$branch` # 更新処理を実施 if [ ${#diff} != 0 ] ; then # 差分がある場合は反映する `git reset --hard origin/$branch` 1>>$LOG 2>&1 echo "git reset --hard origin/${branch}" fi done # バッチ終了 datestr=`date +%Y/%m/%d_%H:%M:%S` echo "$datestr git pull finish." 1>>$LOG 2>&1 exit 0
シングルクオートではなくバッククォートでやるか、コード部分を選択後に<code> をクリックね
修正とすれ違った