1

ファイルを既存のサーバーにエクスポートするようにをセットアップしようとしています。

私の会社のサーバーはライブであり、巨大なサーバーが数年間稼働しているため、サーバーファイルが大きすぎてコンテンツのカスタムファイルであるため、wipeWebサーバー全体を実行できません。SVN update

私が今やりたいことはcommit、サーバーAとscpサーバーBへの最新のコミットされたファイルであるため、ファイルはWebサーバーの方向になります。以下のようにしようとしましたが失敗しました。私を推薦するより良い方法はありますか? 私は構成を行うのがあまり得意ではありません。

ポストコミットで私がやろうとしていることは次のとおりです。

repository="file:///var/www/html/svn/testrepo/"
revision_from=$2
target_directory="/home/SVN/"

expr $((revision_from--))
rm -R -f $target_directory

for line in `svn diff --summarize -r $revision_from:HEAD $repository | grep "^[AM]"`
do
        if [ $line != "A" ] && [ $line != "AM" ] && [ $line != "M" ]; then
            filename=`echo "$line" |sed "s|$repository||g"`
            # don't export if it's a directory we've already created
            if [ ! -d $target_directory$filename ]; then
                    directory=`dirname $filename`
                    mkdir -p $target_directory$directory
                    svn export --force $line $target_directory$filename
                fi
        fi
done

scp -r -P 1221 /home/SVN/* svnadmin@192.168.0.1:/home/svnadmin/
ssh -t -t -p 1221 svnadmin@192.168.0.1 \
sudo -u apache /bin/cp -rf /home/svnadmin/* /path/to/web/

追加情報が必要な場合はお知らせください〜

編集:スクリプトを最新のものに変更します

Edit2: このエラーが発生し、/bin/cp を実行していないようです

post-commit hook failed (exit code 1) with output:
tcgetattr: Inappropriate ioctl for device
Connection to 192.168.0.1 closed.
4

1 に答える 1

0

ユーザーを apache グループに追加して、ユーザーが apache ファイルを上書きできるようにすることで解決しました

于 2013-03-20T03:02:24.310 に答える