我创建了一个Bash脚本,它使用一个expect脚本来自动化ssh logins.The脚本,连接到多个服务器并运行一些命令。bash脚本提示输入一次登录凭据。
我想加入一个功能,其中脚本终止,如果第一个服务器登录失败,以避免脚本检查下一个服务器导致用户帐户被锁定。帐户锁定连续3次登录失败,脚本尝试连接的服务器数量超过3个。
这是调用expect脚本的bash脚本中的代码片段。
countu=0
for servername in $(cat $linux_host_list)
do
./script.expect $LUSERNAME $LPASS $servername Linux >
我有一个bash脚本,hostlist文件和一个expect脚本:下面是bash脚本,它从hostlist文件中获取输入,并为多个服务器循环ssh。
for x in $(cat hostlist); do
./sudoscript.exp $x
done
下面是我想要调优和收集sudo su -命令输出的expect cum bash脚本。我只需要在文件中获得'0或非零值的输出,以便成功运行/执行'sudo su - '。我只需要模拟执行,并检查命令是否成功运行,而不需要通过执行sudo su -将用户更改为管理员。
#!/bin/bash
#!/usr/bin/e
如何在shell脚本中使用expect和send。
如何自动输入答案。我尝试用自动输入密码的脚本登录su。这就是我试过但没有成功的地方:
#!/bin/bash
#!/usr/bin/expect
su
expect "Password:"
send -- "test"
错误信息是:
couldn't read file "Password:": no such file or directory
./auto.sh: line 5: send: command not found
当用户登录时,他提供了自己的名字和原始密码,并对其进行了散列,并与db的值进行了比较。
def login(request):
username = request.POST['username']
password = request.POST['password']
user = auth.authenticate(username=username, password=password)
if user is not None and user.is_active:
# user is active
编辑:没有条件的情况下,一切都很完美。添加条件中断脚本。我在其他更简单的脚本中尝试过条件词,而这些脚本已经奏效了。
Edit2:将完整的脚本添加到expect条件值的其他实例中
我正在尝试修改一个自动预期生成的expect脚本,该脚本在构建成功时工作,但不会处理生成失败。
经过大量的研究,我不明白为什么我的期望条件不起作用
#!/usr/bin/expect -f
set force_conservative 0 ;# set to 1 to force conservative mode even if
;# script wasn
这是我的简单巴什:
cat test.sh
#!/bin/bash
echo "hello"
su - root -c /path/to/script.sh <<EOF
password
EOF
whoami
echo "good bye"
但我知道这个错误:
./test.sh
hello
su: must be run from a terminal
<current-user>
good bye
(或)
cat test2.sh
#!/bin/bash
echo
这是我的简单巴什:
cat test.sh
#!/bin/bash
echo "hello"
su - root -c /path/to/script.sh <<EOF
password
EOF
whoami
echo "good bye"
但我知道这个错误:
./test.sh
hello
su: must be run from a terminal
<current-user>
good bye
(或)
cat test2.sh
#!/bin/bash
echo
我想在我的Red集群上安装R,它的版本如下:
$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 6.3 (Santiago)
当我进入R的主页,这就是他们的
我想知道那里只有redhat版本4和5,我不知道哪个版本最适合我的操作系统。
因为我今天问了6个以上的问题。Stackoverflow不喜欢我问更多的问题。因此,我将在这个问题上提出以下问题,对此我表示遗憾。
嗨,我试着用Expect自动登录到一个远程服务器并安装R。当我安装R时,他们想出了各种各样的提示:“这个包会带xx,你还好吗?”
要安装的
我正在尝试运行一个expect脚本,该脚本应该在远程linux服务器上运行一个bash脚本。bash脚本旨在根据通过expect脚本发送的参数重新启动strongswan IPSec隧道。下面是我的expect脚本:
#log_user 0
set prompt {\$ >}
expect -re $prompt
set ip 192.168.0.1
set user user
set password 4p4ssw0rd
set target [lindex argv 0]
spawn ssh -p 2228 "$user\@$ip"
expect "pa
我有一个简单的Icon组件,它接受在单击图标时调用的onClick()支柱。另外,每次单击图标时,都会调用另一个函数event.stopPropagation()。此函数是图标激发的实际单击事件的属性(=表示基本跨度)。
现在我想检查两件事:
,,onClick道具函数应该被调用。,通过事件传递的stopPropagation回调应该被调用。
在此之前,我用酶来测试,这是非常好的工作。
test('Icon should call the callback on when space is pressed', () => {
const onClick = jes
我有一个autoexpect生成的expect脚本,我从korn shell脚本内部调用它。以下是我的脚本内容:
#!/usr/bin/ksh
/usr/bin/expect /home/user1/script.exp
如果我在命令行上运行上面的命令,它可以正常运行。但是如果我把它放在一个shell脚本中(这样我以后就可以在cron中调度它),它就会挂起,永远不会返回任何东西,日志文件只显示以下内容:
spawn /bin/bash
有没有人能提点建议呢?
谢谢!
#!/usr/bin/expect -f
set force_conservative 1 ;# set to 1 to f
我的要求是从本地计算机挂载远程服务器上的所有目录。只有在我以su用户身份登录之后,才能进行挂载。
下面是我的脚本:
#! /bin/bash
set timeout 20
ip="xx.xx.xxx.xxx"
server_username="root"
server_password="yuyuyuyuyuy"
echo "going to mount the directory with root permission"
CMD1="\$@mount -a "
VAR2=$(expect -c