SVNアップデートの自動化
-
05-07-2019 - |
質問
頻繁にサーバーに接続し、特定のディレクトリに切り替えてsvn-updateを実行しています
おそらくこれを自動化する非常に簡単な方法があると考えているので、スクリプトを実行するときに特定のサブディレクトリを簡単に特定し、SSH経由でログインし、正しいディレクトリにcdしてsvn-updateを実行します
これはcapistranoの仕事ですか、それとも簡単なbashスクリプトでできますか?
解決
cron の仕事のように聞こえます。 crontab を実行し、次のようなエントリを追加します。
#min hour date month day command 0 * * * * ssh user@host '(cd path/to/working/copy; svn update)'
ssh-agentを使用したパスワードなしのSSH認証を設定して、プロンプトなし。
編集(以下のコメントごと):
そのための十分な権限があると仮定して、実行します
ssh user@host crontab -e
次のようにエントリを追加します:
#min hour date month day command 0 * * * * (cd path/to/working/copy; svn update)
サーバーでcronの使用が許可されていない限り、編集の上の部分は無視できます。
他のヒント
おそらく、このアクションを実行している理由を自問する必要がありますか?
CruiseControlやHudsonなどのビルドサーバーは、(svnコミットがいつ実行されたかを知る)より一般的なケースを解決できますか?
特定のsvnサーバーで監視する必要があり、そのサーバーへの管理アクセス権がある場合、サーバーへのコミット後フックを有効にできます。たとえば、すべてのコミット(または特定のタイプのみ)でメールを送信できますコミット)。
状況のユースケースを明確にできれば助かります。
単純なbashスクリプトがそれを行い、svn updateコマンドを/ etc / profileファイルに追加します。
bashログインについてはこちらスクリプト処理をご覧ください。
>別のボックスから実行する(ログインしない)場合は、実行中のプロセスがあるとsshが終了しないので、バックグラウンドで更新を実行し、すべての出力を/ dev / null。