我的期望脚本如何从我的配置文件中设置参数

时间:2019-01-02 08:31:16

标签: linux expect

我正在将一个期望文件写入scp文件。但是我每次要做的就是在终端输入主机名和密码。另一种方式是以硬编码方式设置密码。我想知道是否有办法从笔记本电脑上的定位文件中读取配置。当我与他人共享脚本时会更好。

1 个答案:

答案 0 :(得分:0)

首先,查看是否可以为我们设置到服务器的无密码连接(请与服务器管理员联系,并查看您的ssh-keygenssh-copy-id手册页)

否则,将登录凭据写入磁盘会降低安全性,但有时是不可避免的。确保您不授予该文件对他人(chmod 600 config_file的读/写权限

假设您想要一个包含以下内容的配置文件:

set host hostname
set user username
set pass "user password"

然后,您只需编写脚本source即可在Tcl解释器中设置这些变量。

为了安全起见,如果文件被某些恶意命令破坏,则可以使用Tcl“安全解释器”

interp create -safe safeInterp
safeInterp invokehidden source $configFile
# extract the variables from the safe interp
lassign [safeInterp eval {list $host $user $pass}] host user pass

spawn scp $user@$host:/path/to/remote/file /local/file
...