<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://luminoussheep.net/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Expect_scripts</id>
	<title>Expect scripts - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://luminoussheep.net/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Expect_scripts"/>
	<link rel="alternate" type="text/html" href="https://luminoussheep.net/mediawiki/index.php?title=Expect_scripts&amp;action=history"/>
	<updated>2026-05-11T19:19:49Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://luminoussheep.net/mediawiki/index.php?title=Expect_scripts&amp;diff=19&amp;oldid=prev</id>
		<title>Martin: Created page with &quot;=ssh interactive login= &lt;pre&gt; #!/usr/bin/expect -f log_user 0  proc do_exit {msg} {     puts stderr $msg     exit 1 }  set user [lindex $argv 0] set password [lindex $argv 1]...&quot;</title>
		<link rel="alternate" type="text/html" href="https://luminoussheep.net/mediawiki/index.php?title=Expect_scripts&amp;diff=19&amp;oldid=prev"/>
		<updated>2021-09-14T20:59:43Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;=ssh interactive login= &amp;lt;pre&amp;gt; #!/usr/bin/expect -f log_user 0  proc do_exit {msg} {     puts stderr $msg     exit 1 }  set user [lindex $argv 0] set password [lindex $argv 1]...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=ssh interactive login=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/expect -f&lt;br /&gt;
log_user 0&lt;br /&gt;
&lt;br /&gt;
proc do_exit {msg} {&lt;br /&gt;
    puts stderr $msg&lt;br /&gt;
    exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
set user [lindex $argv 0]&lt;br /&gt;
set password [lindex $argv 1]&lt;br /&gt;
set ipaddr [lindex $argv 2]&lt;br /&gt;
#send_tty &amp;quot;password $password\n&amp;quot;&lt;br /&gt;
set newpassword [lindex $argv 3]&lt;br /&gt;
set timeout 20&lt;br /&gt;
&lt;br /&gt;
# now connect to remote UNIX box (ipaddr) with given script to execute&lt;br /&gt;
spawn ssh $user@$ipaddr&lt;br /&gt;
#spawn cat&lt;br /&gt;
match_max 100000&lt;br /&gt;
# Look for passwod prompt&lt;br /&gt;
expect { &lt;br /&gt;
	# login failed&lt;br /&gt;
	&amp;quot;Permission denied*&amp;quot; { do_exit &amp;quot;$ipaddr incorrect password&amp;quot; }&lt;br /&gt;
	&amp;quot;Are you sure you want to continue&amp;quot; { send &amp;quot;yes\r&amp;quot;; exp_continue}&lt;br /&gt;
	# password prompt&lt;br /&gt;
	&amp;quot;*?assword:*&amp;quot; { send -- &amp;quot;$password\r&amp;quot;; exp_continue}&lt;br /&gt;
	{[$]}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#clear out buffer&lt;br /&gt;
expect -re $&lt;br /&gt;
&lt;br /&gt;
# check group&lt;br /&gt;
send -- &amp;quot;id\r&amp;quot;&lt;br /&gt;
expect &amp;quot;uid*)&amp;quot;&lt;br /&gt;
send_tty &amp;quot;$ipaddr $expect_out(0,string)\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
#clear out buffer&lt;br /&gt;
expect -re $&lt;br /&gt;
&lt;br /&gt;
send -- &amp;quot;exit\r&amp;quot;&lt;br /&gt;
expect eof&lt;br /&gt;
&lt;br /&gt;
close $spawn_id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=change password (centos)=&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/usr/bin/expect -f&lt;br /&gt;
log_user 0&lt;br /&gt;
&lt;br /&gt;
proc do_exit {msg} {&lt;br /&gt;
    puts stderr &amp;quot;$msg&amp;quot;&lt;br /&gt;
    exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
set user [lindex $argv 0]&lt;br /&gt;
set password [lindex $argv 1]&lt;br /&gt;
set ipaddr [lindex $argv 2]&lt;br /&gt;
#send_tty &amp;quot;password $password\n&amp;quot;&lt;br /&gt;
set newpassword [lindex $argv 3]&lt;br /&gt;
set timeout 30&lt;br /&gt;
&lt;br /&gt;
# now connect to remote UNIX box (ipaddr) with given script to execute&lt;br /&gt;
spawn ssh $user@$ipaddr&lt;br /&gt;
match_max 100000&lt;br /&gt;
&lt;br /&gt;
# Look for passwod prompt&lt;br /&gt;
expect { &lt;br /&gt;
	# login failed&lt;br /&gt;
	&amp;quot;Permission denied*&amp;quot; { do_exit &amp;quot;$ipaddr incorrect password&amp;quot; }&lt;br /&gt;
	&amp;quot;Are you sure you want to continue&amp;quot; { send &amp;quot;yes\r&amp;quot;; exp_continue}&lt;br /&gt;
	# password prompt&lt;br /&gt;
	&amp;quot;*?assword:*&amp;quot; { send -- &amp;quot;$password\r&amp;quot;; exp_continue}&lt;br /&gt;
	{[$]}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#clear out buffer&lt;br /&gt;
expect -re $&lt;br /&gt;
&lt;br /&gt;
send -- &amp;quot;passwd\r&amp;quot;&lt;br /&gt;
&lt;br /&gt;
expect &amp;quot;*current*password&amp;quot;&lt;br /&gt;
send -- &amp;quot;$password\r&amp;quot;&lt;br /&gt;
expect &amp;quot;*ew*password*&amp;quot; &lt;br /&gt;
send -- &amp;quot;$newpassword\r&amp;quot;&lt;br /&gt;
expect {&lt;br /&gt;
	&amp;quot;Retype*password&amp;quot; {send -- &amp;quot;$newpassword\r&amp;quot;}&lt;br /&gt;
	&amp;quot;BAD PASSWORD*&amp;quot; { do_exit &amp;quot;$ipaddr Poor new password:- $expect_out(0,string)&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
expect { &lt;br /&gt;
	&amp;quot;*updated successfully&amp;quot; { send_tty &amp;quot;$ipaddr has a new password\n&amp;quot; }&lt;br /&gt;
	timeout {&lt;br /&gt;
		do_exit &amp;quot;$ipaddr timeout buffer was $expect_out(buffer)&amp;quot; }&lt;br /&gt;
}&lt;br /&gt;
send -- &amp;quot;exit\r&amp;quot;&lt;br /&gt;
expect eof&lt;br /&gt;
&lt;br /&gt;
close $spawn_id&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Martin</name></author>
	</entry>
</feed>