返回顶部
首页 > 资讯 > 精选 >怎么使用shell脚本执行命令实现自动填充密码
  • 439
分享到

怎么使用shell脚本执行命令实现自动填充密码

2023-07-05 04:07:46 439人浏览 安东尼
摘要

这篇文章主要介绍“怎么使用shell脚本执行命令实现自动填充密码”,在日常操作中,相信很多人在怎么使用shell脚本执行命令实现自动填充密码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用shell脚本

这篇文章主要介绍“怎么使用shell脚本执行命令实现自动填充密码”,在日常操作中,相信很多人在怎么使用shell脚本执行命令实现自动填充密码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用shell脚本执行命令实现自动填充密码”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

概述

日常开发过程中,经常会有一些自动化的操作受制于密码,当然,密码是安全的。
常见的一些应用场景,如ssh连接服务器mysql登录与备份、git上传、网站登录、ftp登录、telnet等等。
那么我们今天就讲如何在自动化过程中,自动的在tel终端中填充密码(基于python的包)。

一、pexpect第三方包

Expect脚本语言,它是由TCL语言实现的,主要用于人机交互式对话的自动化控制,pexpect就是在Python的基础上开发出的类似Expect功能的模块。它的实现分为四部分:

  • 创建pexpect程序手柄

  • 通过内置expect方法等待关键字

  • 匹配完成后授权手柄完成密码的填充

  • 结束手柄并将控制权授予用户终端Terminal(如果需要的话)

二、参数一栏

spawntimeoutmaxreadsearchwindowsizelogfileexpect
logfile_readcwdenvignore_sighupdelaybeforesendexpect_exact
expect_listexpect_loopsendsendlinesendcontrolsendeof
sendintrinteractcloseterminateKillflush
isaliveisattynextreadreadlinereadlines
setechosetwinsizewaitwaitnoechowritewritelines
beforeaftermatch


三、话不多说,上代码

下面的案例是我导出数据库数据写的demo,执行语法python backup.py >> backup.sql

import pexpect# cmd = 'Mysqldump -h 127.0.0.1 -uroot -P3306 -p123456 your-database'cmd = 'mysqldump -h 127.0.0.1 -uroot -P3306 -p your-database'proc = pexpect.spawn(cmd)# 字串串匹配到返回值为0,列表匹配到返回列表中对应的下标index = proc.expect('passWord:')print(f'匹配到: {index} =>')proc.sendline('123456')proc.interact()

补充:Shell 脚本自动输入密码的三种方式

注意,如果创建.sh文件后不可以执行,请执行sudo chmod 755 文件名.sh来修改权限。

方式一

使用 echo “密码” | (管道符)

使用场景: sudo 命令

在使用普通用户执行 root 命令时有时候会需要输入密码,并且在输入密码后一段时间不需要再次输入(但是不影响),这时候可以使用

echo "密码" | sudo 命令

比如我需要一键清空服务器,则可以创建一个clear.sh文件(假使我的密码是 123456):

echo "123456" | sudo rm -rf /*

那么在执行的时候,我只需要./clear.sh就可以清空我的整个数据库

方式二

重定向

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

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

使用场景:不仅仅输入一个密码,还需要输入用户名。

ftp -i -n 192.168.21.46 <<EOFuser 用户名 密码EOF

方式三

expect

echo + 管道符不是什么时候都可以生效(比如我写的自动提交博客脚本最后需要输入我的服务器的 git 仓库密码就不生效),因此我们可以使用 expect 方法来执行。

set timeout 30spawn ssh -l 用户名 10.125.25.189expect "password:"send "要输入的密码"    interact

这里的语句是这样的:

设置超时时间为30s

  • spawn 是 expect 的起始语句,可以理解为从此处开始

  • spawn 后面的语句是执行 ssh 连接

expect:当发现password:这个字符串后,在后方输入send后面的内容
send:要输入的密码
interact:执行完留在远程控制台,不加这句执行完后返回本地控制台

再举一个例子

这个例子是我真实的脚本文件(但是磨掉了密码),平时用于往我的服务器中提交 hexo 博客

cd /Users/jim/hexoecho '123456' | sudo -S hexo clean sudo hexo g spawn sudo -S hexo dexpect "password:"send "123456"

首先进入到hexo文件夹下

因为要用到sudo 来 clean/generate/deploy我的博客,所以我这里使用一个 echo+管道符,输入一次 sudo 命令(短时间内不需要再重复输入,所以我只写了一个)

generate 一下 hexo 文件

提交到远程仓库,这里需要输入远程仓库的密码,所以我用spawn标记这句话

expect(发现)到"password:"后执行send

将我的密码 send(发送到)到控制台

到此,关于“怎么使用shell脚本执行命令实现自动填充密码”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 怎么使用shell脚本执行命令实现自动填充密码

本文链接: https://www.lsjlt.com/news/349554.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么使用shell脚本执行命令实现自动填充密码
    这篇文章主要介绍“怎么使用shell脚本执行命令实现自动填充密码”,在日常操作中,相信很多人在怎么使用shell脚本执行命令实现自动填充密码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用shell脚本...
    99+
    2023-07-05
  • shell脚本执行命令自动填充密码(自动输入密码)
    目录概述一、pexpect第三方包二、参数一栏三、话不多说,上代码补充:Shell 脚本自动输入密码的三种方式方式一方式二方式三概述 日常开发过程中,经常会有一些自动化的操作受制于密码,当然,密码是安全的。常见的一些应用...
    99+
    2023-02-21
    shell 自动填充密码 shell 执行命令自动填充密码 Shell 自动输入密码
  • 怎么用命令执行Shell脚本
    本篇内容主要讲解“怎么用命令执行Shell脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用命令执行Shell脚本”吧!假设这个 shell 脚本的名称为 tinyshell.sh。在 L...
    99+
    2023-06-09
  • 使用hbase-shell命令怎么批量执行脚本
    今天就跟大家聊聊有关使用hbase-shell命令怎么批量执行脚本,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。批量执行hbase shell 命令#!/bin/bash ...
    99+
    2023-06-09
  • 使用Spark-shell怎么批量命令执行脚本
    这篇文章给大家介绍使用Spark-shell怎么批量命令执行脚本,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。批量执行spark-shell命令,并指定提交参数#!/bin/bashsource /etc/p...
    99+
    2023-06-09
  • 使用hive-shell命令怎么批量执行脚本
    使用hive-shell命令怎么批量执行脚本?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。如下所示:#!/usr/bin/bashHADOOP_HOME=&qu...
    99+
    2023-06-09
  • shell中使用expect命令进行远程执行命令脚本
    expect是用来实现自动交互功能的工具之一,使用expect-send来实现交互过程。 注意: 1、脚本的执行方法与bash shell不一样,比如:expect example.sh 2、向一个脚本传递参数时,bas...
    99+
    2022-06-04
    用expect进行远程执行命令 shell中使用expect命令进行远程执行命令脚本
  • 怎么在Linux中使用shell脚本自动执行脚本文件
    本篇文章为大家展示了怎么在Linux中使用shell脚本自动执行脚本文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、定时复制文件  a、在/usr/local/wfjb_web_back目录下...
    99+
    2023-06-09
  • Linux下使用shell脚本自动执行脚本文件
    以下实例本人在Centos6.5 64位操作系统中使用 一、定时复制文件   a、在/usr/local/wfjb_web_back目录下创建 tomcatBack.sh文件   文件内容: #将to...
    99+
    2022-06-04
    脚本 文件 Linux
  • 使用shell脚本执行hive、sqoop命令的方法
    1、test.sh脚本内容如下: #!/bin/bash #CURR_DATE=`date +"%Y-%m-%d %H:%M:%S"`------>不能使用 v_sql="insert into origin...
    99+
    2022-06-04
    shell hive sqoop
  • hive-shell批量命令执行脚本的实现方法
    如下所示: #!/usr/bin/bash HADOOP_HOME="/opt/module/cdh-5.3.6-ha/hadoop-2.5.0-cdh5.3.6" HIVE_HOME='/opt/module/cd...
    99+
    2022-06-04
    hive shell 命令
  • Shell脚本中怎么切换用户并执行命令
    这期内容当中小编将会给大家带来有关Shell脚本中怎么切换用户并执行命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。系统:centos 5.x脚本内容:cat test.sh代码如下:#!/bin/ba...
    99+
    2023-06-09
  • 怎么在shell脚本中执行hive和sqoop命令
    这篇文章将为大家详细讲解有关怎么在shell脚本中执行hive和sqoop命令,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、test.sh脚本内容如下:#!/bin/bash#CURR_...
    99+
    2023-06-09
  • 如何在shell中使用expect命令进行远程执行命令脚本
    如何在shell中使用expect命令进行远程执行命令脚本?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。expect是用来实现自动交互功能的工具之一,使用expect-send...
    99+
    2023-06-09
  • Shell脚本中实现切换用户并执行命令操作
    今天公司同事来找到我说要在服务器上用另外一个用户执行python脚本,但设置到crontab里却老是root用户来执行,为了省事我就想了一个偷懒的办法,就是用shell脚本切换到那个用户,然后去执行那个py...
    99+
    2022-06-04
    脚本 命令 操作
  • 怎么使用nohup执行shell脚本
    要使用nohup执行shell脚本,可以按照以下步骤操作:1. 打开终端或命令行界面。2. 输入以下命令格式:```nohup sh...
    99+
    2023-09-22
    nohup shell
  • shell脚本自动输入用户名和密码的实现
    场景: shell脚本中,scp和ssh连接时,自动输入用户名和密码。 解决方案: 例: #!/bin/bash remoteIp=IP remoteUser=用户名 remotePw=密码 function down...
    99+
    2023-02-20
    Shell自动输入密码 Shell自动输入
  • android怎么实现自动填充短信验证码
    要实现自动填充短信验证码,你可以使用以下步骤:1. 获取收到的短信:在Android中,你可以使用`SmsRetriever` AP...
    99+
    2023-09-05
    android
  • Mybatis-Plus怎么使用@TableField实现自动填充日期
    本文小编为大家详细介绍“Mybatis-Plus怎么使用@TableField实现自动填充日期”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mybatis-Plus怎么使用@TableField实现自动填充日期”文章能帮助大家解决疑惑,下...
    99+
    2023-06-30
  • 怎么在Shell脚本中跟踪调试命令的执行
    这篇文章主要介绍怎么在Shell脚本中跟踪调试命令的执行,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本系列的前面部分清晰地阐明了另外两种 shell 脚本调试模式:详细模式和语法检查模式,并用易于理解的例子展示了如...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作