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脚本中使用`sudo`命令时,可以通过`expect`工具或修改`sudoers`文件来自动化密码输入。然而,这种方式应当谨慎使用,因为可能会降低系统的安全性。在实际应用中,应根据具体需求和安全策略...
使用该命令会有提示,即进入了交互界面,输入密码即可。 使用脚本修改密码 很多时候我们可能需要远程执行服务器上的脚本来修改账号密码,此时就没有办法进行交互了。 此时可以使用如下两种方式修改密码: 方式1: ...
Shell脚本实现自动输入密码登录服务器是自动化运维和部署中的常见需求,特别是在执行涉及权限验证的任务时,如scp文件传输或SSH远程连接。在这种情况下,使用expect工具可以帮助我们编写脚本,自动处理需要用户交互...
为了解决这一问题,这篇博文介绍了如何使用expect工具实现shell脚本中的SSH无交互自动登录。 expect工具是基于Tcl语言编写的,它能够通过自动化的方式响应程序输出的提示信息。在ssh命令执行时,expect可以用来捕获...
通过编写脚本来控制这些对话,我们可以实现一系列自动化任务,如远程登录、安装软件包等场景中的密码输入自动化。 #### 二、基本概念 1. **Spawn**: 用于启动一个子进程,该子进程通常是一个交互式的命令或脚本。 ...
shell脚本通常用于执行一系列命令,而expect则是一个交互式脚本语言,它可以模拟用户与程序的交互,非常适合自动处理需要用户输入的情况,比如SSH登录过程中的密码验证。 在"shell+expect编写的 大数据集群ssh免密...
该脚本可以自动地输入密码,并执行相关的命令。 4. 用户和组的管理:在 Linux 系统中,用户和组是非常重要的概念。我们使用 Expect 脚本来添加新的用户和组,并对其进行密码修改。 5.Shell 脚本的使用:我们使用 ...
7. **人机交互**:为了使脚本更加友好,可以添加交互式提示,让用户输入敏感信息(如密码)或确认迁移操作,避免明文存储密码。 8. **自动化调度**:如果数据迁移是定期进行的,可以将此脚本与Linux的`cron`任务...
读者可以使用shell脚本编写一个猜数字游戏程序,实现交互式游戏体验。 打印乘法口诀 shell脚本可以用于编写数学相关的程序,例如打印乘法口诀。读者可以使用shell脚本编写一个打印乘法口诀的程序,实现自动化数学...
通过这些教程,学习者可以全面了解Shell脚本编程的基础知识,掌握编写高效、可靠的Shell脚本的技巧,从而更好地管理和自动化Linux系统。每个HTML文件都包含了丰富的实例和实践指导,是提升Shell脚本技能的理想资源。
"shell脚本语言" Shell 简介: Shell 是一种命令语言和程序设计语言,用户可以通过 Shell 完成大部分工作。Shell 既可以交互式地解释和执行用户输入的命令,也可以定义各种变量和参数,提供了许多控制结构,包括...
在Unity开发过程中,有时我们需要与操作系统进行交互,例如执行shell脚本来处理一些特定的任务。但在实际操作中,可能会遇到Unity无法正确调用shell脚本并传递参数的问题。本文将详细介绍如何解决这一问题,并提供一...
10. 脚本交互式使用:了解如何编写需要与用户交互的Shell脚本,包括获取用户输入、显示菜单选项和使用命令行参数。 通过掌握上述知识点,IT专业人员将能够编写高效、健壮的Shell脚本来自动化和简化日常的IT任务,...
这个"shell脚本远程启动其他服务器的tomcat传输文件自动登录判断启动停止"的方案,就是一种典型的自动化运维实践,它结合了多个核心工具和技术,包括shell脚本、expect、ssh以及scp,用于实现远程服务器管理与文件...
在Shell脚本学习中,虽然这不属于核心内容,但有可能涉及如何通过Shell脚本来控制或与硬件设备(如J-Link)交互,例如,自动下载固件或收集调试信息。 "HDSC"可能是一个目录或者文件的名称,具体含义不明确。如果它...
本文将深入探讨如何使用shell脚本来实现DB2数据库的自动备份,以满足每天1:01进行数据备份的需求。 首先,我们需要了解shell脚本的基本概念。Shell脚本是一种基于Bash或其他Unix/Linux shell的编程语言,它允许用户...
在IT领域,Shell脚本是Linux和Unix操作系统中不可或缺的一部分,它是一种强大的自动化工具,能够帮助用户执行一系列命令,简化日常任务。这个“Shell脚本学习指南_中文版”涵盖了从基础到进阶的Shell脚本知识,是...
Shell脚本是Linux和Unix系统中的强大工具,它允许用户通过编写脚本来自动化一系列命令操作,极大地提高了系统管理和任务执行的效率。本文将深入探讨shell脚本的基础知识,包括语法、变量、控制结构、函数以及在实际...