expect交互式脚本
admin
2023-05-03 11:24:02
0

Solaris_change_passwd使用注意事项及说明


1. 

脚本只测试了Solaris10的英文及中文版(oracle公司出品)


2. 

Solaris10中文版系统需要将系统字符集改为zh_CN.UTF-8


3. 

以bash执行此脚本



bash Solaris_change_passwd 用户名($1) IP地址($2) 用户密码($3) 需要更改密码的用户名($4) 更改的用户密码($5)

脚本变量定义:



#!/bin/bash

USER=$1          #用户名

IP=$2            #IP地址

PW=$3            #用户密码

CHE_USER=$4     #需要更改密码的用户名

CHE_PW=$5       #更改的密码

ping -c 3 ${IP} >/dev/null                                      #ping 3次 $IP地址不输出显示

if [ "$?" -ge "1" ] ;then                                       #如果输出结果大于等于1,则

echo "The network impassability"                                #输出“The network impassability”

exit 1                                                          #退出此次循环

fi                                                              #结束if循环

expect -c "                                                     #调用expect脚本

   set timeout 30                                               #设置超时间为30秒

   match_max 100000                                             #设置匹配最大长度为100000

   spawn ssh $USER@$IP                                          #调用ssh程序登录

      expect {                

         \"yes\/no\" { send \"yes\n\" ; exp_continue }          #匹配到yes/no时,输入yes.继续向下执行

         \"assword: \" {                                        #匹配到“assword”时

            send \"${PW}\n\"                                    #输入$PW

            expect \"Permission denied\" {                      #匹配到“Permission denied”时

            send_user \"\nUser name password mistake, or no permissions.\n\"  

                                                                #输出“nUser name password mistake, or no permissions.”

            exit 2                                              #退出2循环

            }

            }

         \"口令: \" {                                            # 匹配到“assword”时

         send \"${PW}\n\"                                       # 输入$PW

            expect \"Permission denied\" {                      #匹配到“Permission denied”时

            send_user \"\nUser name password mistake, or no permissions.\n\"   

                                                                #输出“nUser name password mistake, or no permissions.”

            exit 3                                              #退出3循环

            } 

         }

         

         \"Connection refused\" {                               #匹配到“Connection refused”

         send_user \"\nSSH Service is not open\n\"              #输出“nSSH Service is not open”

         exit 4                                                 #退出4循环

         }

         }        

      expect \"*#*\" { send \"passwd $CHE_USER\n\" }            #匹配到#号时,输入“passwd $CHE_USER”      

      expect {        

         \"assword:\" { send \"$CHE_PW\n\" ; exp_continue }     #匹配到assword时,输入 $CHE_PW,继续向下执行

         \"口令:\" { send \"$CHE_PW\n\"; exp_continue }         #匹配到口令:时,输入 $CHE_PW,继续向下执行

         }

      expect\"#\" { send \"exit\n\" }                           #输入exit退出   (实在不行就干掉)

expect eof                                                      #结束expect调用脚本

"



用法:bash gaimi.sh root 192.168.0.2 redhat aa 123123


相关内容

热门资讯

7月手机推荐:涨价潮下,哪些手... “天天说手机涨价,这个时候买手机,不是大冤种吗?”那你就错了。 自今年3月起,因为成本压力持续提升,...
日本正式设立“国家情报局” △日本首相官邸(资料图)当地时间7月31日,日本政府正式设立“国家情报局”。首任局长为原和也。原和也...
38岁男子被北大录取,18年前... 2026年,连续三年高考后,38岁的清华毕业生李龙收到了北大医学部的录取通知书,他终于不必再回答“明...
“极不寻常”!爆料称特朗普或拒... 英国路透社29日发布“独家消息”称,特朗普政府有可能推迟或直接拒绝法国总统马克龙提名的新一任法国驻美...
马斯克:已要求SpaceXAI... IT之家 7 月 29 日消息,据调查媒体 404 Media 此前报道,人工智能公司正在大量收购稀...
和美德决裂、赞扬中国…法国这个... 法国极左翼政党“不屈法兰西”(La France Insoumise)领导人让-吕克·梅朗雄,正以强...
长鑫市值3.6万亿超腾讯:数千... 出品|搜狐科技 作者|张雅婷 7月27日,长鑫科技正式登陆科创板。 截至发稿,长鑫科技股价54.65...
重庆彭水山体崩塌已确认51人遇... 7月17日9时许,重庆彭水汉葭街道发生大型山体崩塌灾害。7月30日晚,彭水发布情况通报,截至目前,陆...
民政部:截至目前各地共办理婚姻... 澎湃新闻记者 刘璐7月30日,民政部举行第三季度例行新闻发布会。会上,民政部新闻发言人李婉丽介绍,截...
罗永浩13年前超前构想!这套电... 快科技7月26日消息,今日,罗永浩发文谈到网络视频电视机傻瓜化。 他表示,其实网络视频电视机做成傻瓜...