使用expect登录SVN
-
03-07-2019 - |
题
我正在尝试使用自动化脚本,该脚本将登录到 SVN,更新我的源代码,使用这些脚本创建一个 tarball 并将它们 scp 到远程主机。
这里的问题是,每次登录 SVN(即使是结账或更新),我们都需要输入密码。我能找到的密码输入自动化的唯一方法是使用expect来解决这个问题。
在expect中是否有任何脚本可以照顾SVN和scp来检测并将密码提供给SVN,然后提供给SCP?
我正在使用以下内容:
spawn svn [lindex $argv 0]
expect " password: $"
send "$password\r"
expect {
" password: $" 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
不隶属于 StackOverflow