2

開発サーバーにデプロイするときは、rsync を使用します。しかし、rsync の後、キャッシュのクリアなどの展開操作の「後」のために .sh ファイルを実行する必要があります...

通常、私は SSH 経由でこれを行いますが、非常に頻繁にデプロイする場合は、次のように書くのは退屈です。

  • ssh ...
  • パスワードを書く
  • cd /var/www/myapp/web
  • ./after_deploy.sh

これをすばやく行う方法はありますか?これは私の rsync.sh です:

#!/bin/bash
host=""
directory="/var/www/myapp/web"
password=""
usage(){
        echo "Cant do rsync";
        echo "Using:";
        echo "   $0 direct";
        echo "Or:";
        echo "   $0 dry";
}
echo "Host: $host";
echo "Directory: $directory"
if [ $# -eq 1 ]; then
        if [ "$1" == "dry" ]; then
                echo "DRY-RUN mode";
                rsync -CvzrltD --force --delete --exclude-from="app/config/rsync_exclude.txt" -e "sshpass -p '$password' ssh -p22" ./ $host:$directory --dry-run
        elif [ "$1" == "direct" ]; then
                echo "Normal mode";
                rsync -CvzrltD --force --delete --exclude-from="app/config/rsync_exclude.txt" -e "sshpass -p '$password' ssh -p22" ./ $host:$directory
        else
                usage;
        fi;
else
        usage;
fi
4

2 に答える 2

3

コマンドの後にコマンドを追加してrsync、シェルを起動する代わりにそれを実行できます。

rsync コマンドの後に次を追加します。

sshpass -p "$password" ssh $host "cd $dir && ./after_deploy.sh"
于 2013-08-12T11:43:44.053 に答える