`
maxer025
  • 浏览: 80554 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Shell脚本交互之:自动输入密码

阅读更多

Shell脚本交互之:自动输入密码

执行shell脚本时,遇到需要输入yes/no的时候,怎么自动化完成输入呢?
直接在命令后面加-y即可!比如:yum -y install xxx、yum -y update。


Shell脚本交互之:自动输入密码
在she'll脚本运行过程中该如何交互实现自动输入密码呢?

下面总结三种实现方法。

一、重定向:用重定向方法实现交互的前提是指令需要有参数来指定密码输入方式,如ftp就有-i参数来指定使用标准输入来输入密码

        shell用重定向作为标准输入的用法是:cmd<<delimiter ,shell 会将分界符delimiter之后直到下一个同样的分界符之前的内容作为输入

  实现ftp自动登录并运行ls指令的用法如下:其中zjk为用户名,zjk123为密码       

    ftp -i -n 192.168.21.46 <<EOF
    user zjk zjk123
    ls
    EOF


二:管道:跟重定向一样,指令同样要有参数来指定密码输入方式,如sudo的-S参数,passwd的-stdin参数

       所以实现sudo自动输入密码的脚本如下:其中zjk123为密码

      echo 'zjk123' | sudo -S cp file1 /etc/hosts
      实现自动修改密码的脚本写法如下:

      echo 'password' | passwd -stdin username

三:expect:上面介绍的两种方法前提条件是指令有参数来设定密码输入方式,像ssh指令就没有这样的参数,第三种交互方式就派上用场了

       expect就是用来做交互用的,基本任何交互登录的场合都能使用,但是需要安装expect包

      语法如下:

    #!/bin/expect
    set timeout 30
    spawn ssh -l jikuan.zjk 10.125.25.189
    expect "password:"
    send "zjk123\r"
    interact

注意:expect跟bash类似,使用时要先登录到expect,所以首行要指定使用expect

在运行脚本时候要expect  file,不能sh file了

上面语句第一句是设定超时时间为30s,spawn是expect的语句,执行命令前都要加这句

expect "password:"这句意思是交互获取是否返回password:关键字,因为在执行ssh时会返回输入password的提示:jikuan.zjk@10.125.25.189's password:

send就是将密码zjk123发送过去

interact代表执行完留在远程控制台,不加这句执行完后返回本地控制台
---------------------
作者:zhangjikuan
来源:CSDN
原文:https://blog.csdn.net/zhangjikuan/article/details/51105166
版权声明:本文为博主原创文章,转载请附上博文链接!
分享到:
评论

相关推荐

    linux编写bash shell脚本文件.sh 自动输入密码.在脚本中使用sudo命令,将密码保存在脚本中,不需要手动输入密码

    总之,在Linux Bash Shell脚本中使用`sudo`命令时,可以通过`expect`工具或修改`sudoers`文件来自动化密码输入。然而,这种方式应当谨慎使用,因为可能会降低系统的安全性。在实际应用中,应根据具体需求和安全策略...

    Linux通过Shell脚本命令修改密码的两种方式

    使用该命令会有提示,即进入了交互界面,输入密码即可。 使用脚本修改密码 很多时候我们可能需要远程执行服务器上的脚本来修改账号密码,此时就没有办法进行交互了。 此时可以使用如下两种方式修改密码: 方式1: ...

    Shell脚本实现自动输入密码登录服务器

    Shell脚本实现自动输入密码登录服务器是自动化运维和部署中的常见需求,特别是在执行涉及权限验证的任务时,如scp文件传输或SSH远程连接。在这种情况下,使用expect工具可以帮助我们编写脚本,自动处理需要用户交互...

    用于shell脚本无交互的ssh自动登陆(转载)

    为了解决这一问题,这篇博文介绍了如何使用expect工具实现shell脚本中的SSH无交互自动登录。 expect工具是基于Tcl语言编写的,它能够通过自动化的方式响应程序输出的提示信息。在ssh命令执行时,expect可以用来捕获...

    用expect 实现切换用户时自动输入密码.txt

    通过编写脚本来控制这些对话,我们可以实现一系列自动化任务,如远程登录、安装软件包等场景中的密码输入自动化。 #### 二、基本概念 1. **Spawn**: 用于启动一个子进程,该子进程通常是一个交互式的命令或脚本。 ...

    centos7 ssh免密登录自动化配置脚本(ps:已测试过)

    shell脚本通常用于执行一系列命令,而expect则是一个交互式脚本语言,它可以模拟用户与程序的交互,非常适合自动处理需要用户输入的情况,比如SSH登录过程中的密码验证。 在"shell+expect编写的 大数据集群ssh免密...

    远程批量修改linux服务器密码的脚本归类.pdf

    该脚本可以自动地输入密码,并执行相关的命令。 4. 用户和组的管理:在 Linux 系统中,用户和组是非常重要的概念。我们使用 Expect 脚本来添加新的用户和组,并对其进行密码修改。 5.Shell 脚本的使用:我们使用 ...

    mysql数据迁移,本资源用shell脚本自动完成,人机交互

    7. **人机交互**:为了使脚本更加友好,可以添加交互式提示,让用户输入敏感信息(如密码)或确认迁移操作,避免明文存储密码。 8. **自动化调度**:如果数据迁移是定期进行的,可以将此脚本与Linux的`cron`任务...

    shell脚本编程100例

    读者可以使用shell脚本编写一个猜数字游戏程序,实现交互式游戏体验。 打印乘法口诀 shell脚本可以用于编写数学相关的程序,例如打印乘法口诀。读者可以使用shell脚本编写一个打印乘法口诀的程序,实现自动化数学...

    C语言中文网shell脚本教程

    通过这些教程,学习者可以全面了解Shell脚本编程的基础知识,掌握编写高效、可靠的Shell脚本的技巧,从而更好地管理和自动化Linux系统。每个HTML文件都包含了丰富的实例和实践指导,是提升Shell脚本技能的理想资源。

    shell脚本语言.pdf

    "shell脚本语言" Shell 简介: Shell 是一种命令语言和程序设计语言,用户可以通过 Shell 完成大部分工作。Shell 既可以交互式地解释和执行用户输入的命令,也可以定义各种变量和参数,提供了许多控制结构,包括...

    解决Unity不能调用shell脚本传递参数的问题

    在Unity开发过程中,有时我们需要与操作系统进行交互,例如执行shell脚本来处理一些特定的任务。但在实际操作中,可能会遇到Unity无法正确调用shell脚本并传递参数的问题。本文将详细介绍如何解决这一问题,并提供一...

    Shell 脚本专家指南

    10. 脚本交互式使用:了解如何编写需要与用户交互的Shell脚本,包括获取用户输入、显示菜单选项和使用命令行参数。 通过掌握上述知识点,IT专业人员将能够编写高效、健壮的Shell脚本来自动化和简化日常的IT任务,...

    shell脚本远程启动其他服务器的tomcat传输文件自动登录判断启动停止

    这个"shell脚本远程启动其他服务器的tomcat传输文件自动登录判断启动停止"的方案,就是一种典型的自动化运维实践,它结合了多个核心工具和技术,包括shell脚本、expect、ssh以及scp,用于实现远程服务器管理与文件...

    Shell脚本学习指https://pan.baidu.com/s/1sPfOlmfcq1PmzOkD0ZnsyA

    在Shell脚本学习中,虽然这不属于核心内容,但有可能涉及如何通过Shell脚本来控制或与硬件设备(如J-Link)交互,例如,自动下载固件或收集调试信息。 "HDSC"可能是一个目录或者文件的名称,具体含义不明确。如果它...

    db2自动备份shell脚本

    本文将深入探讨如何使用shell脚本来实现DB2数据库的自动备份,以满足每天1:01进行数据备份的需求。 首先,我们需要了解shell脚本的基本概念。Shell脚本是一种基于Bash或其他Unix/Linux shell的编程语言,它允许用户...

    Shell脚本学习指南_中文版,shell脚本基础,LINUX

    在IT领域,Shell脚本是Linux和Unix操作系统中不可或缺的一部分,它是一种强大的自动化工具,能够帮助用户执行一系列命令,简化日常任务。这个“Shell脚本学习指南_中文版”涵盖了从基础到进阶的Shell脚本知识,是...

    shell脚本学习指南

    Shell脚本是Linux和Unix系统中的强大工具,它允许用户通过编写脚本来自动化一系列命令操作,极大地提高了系统管理和任务执行的效率。本文将深入探讨shell脚本的基础知识,包括语法、变量、控制结构、函数以及在实际...

Global site tag (gtag.js) - Google Analytics