質問

SVNにログインし、ソースを更新し、これらを使用してtarballを作成し、リモートホストにscpする自動スクリプトを使用しようとしています。

ここでの問題は、SVNにログインするたびに(チェックアウトまたは更新であっても)パスワードを入力する必要があることです。パスワード入力の自動化、私が見つけることができる唯一の方法は、これに取り組むことを期待していた。

SVNとSCPにパスワードを検出して与えるためのSVNとscpの世話をするスクリプトがありますか?

次を使用しています:

spawn svn [lindex $argv 0]
expect " password: <*>quot;
send "$password\r"
expect { 
    " password: <*>quot;    send "$password\r"
    "^At revision "
    "^Updated to revision "
}

パスワードとupコマンドはコマンドラインから渡しますが、誰かが履歴にアクセスできる場合、セキュリティ上の脅威があります。下記の回答は私の前提条件を満たしていません。また、今のところエクスポートを行うことができません[その他のセキュリティ上の懸念:-(]

役に立ちましたか?

解決

linuxbashscript.sh

svn up /path/to/local/copy
tar -cf backup.tar /path/to/local/copy
scp backup.tar user@192.1.1.1:/path/on/remote/host

またはさらに優れたユーザーsvnエクスポートは、すべての.svnディレクトリを除外します。

svn export /path/to/repo /path/to/exported
tar -cf backup.tar /path/to/local/copy
scp backup.tar user@192.1.1.1:/path/on/remote/host

他のヒント

svn + sshプロトコルを使用してSVNリポジトリにアクセスする場合、SSHキーとssh-agentを使用してハンドシェイクを管理できるため、パスワードを使用する必要はありません。

個人的には、ANTを使用してこれらすべてのタスクを実行し、必要に応じてantスクリプトを呼び出すことができます。 Antには、svnおよびscpのタスクと、その他の多くのビルド自動化タイプのタスクが事前に構成されています。

(デイブが提案したように)Antを使用する場合、次のタスクを処理します:

セキュリティが心配な場合は、パスワードを別のプロパティファイルに保存できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top