位置: 编程技术 - 正文

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

编辑:rootadmin

推荐整理分享Shell脚本实现自动输入密码登录服务器(shell脚本 su),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:shell脚本实现自动部署,shell脚本 su,shell脚本实现自动截图,shell脚本实现自动化巡检报警发送邮箱,shell脚本实现自动部署,shell脚本实现自动部署,shell脚本实现自动部署,shell脚本实现自动清理超过5m的文件for循环,内容如对您有帮助,希望把文章链接给更多的朋友!

使用Linux的程序员对输入密码这个举动一定不陌生,在Linux下对用户有严格的权限限制,干很多事情越过了权限就得输入密码,比如使用超级用户执行命令,又比如ftp、ssh连接远程主机等等,如下图:

那么问题来了,在脚本自动化执行的时候需要输入密码怎么办?比如你的脚本里有一条scp语句,总不能在脚本执行到这一句时手动输入密码吧。

针对于ssh或scp命令,可能有人会回答是建立信任关系,关于建立ssh信任关系的方法请自行百度Google,只需要两行简单的命令即可搞定,但这并不是常规的解决方案,如果是ftp连接就没辙了,况且,你不可能为了执行某些命令去给每个你要连接的主机都手动建立ssh信任,这已经偏离了今天主题的本意,今天要说的是在脚本里自动输入密码,我们可以想象下,更优雅的方式应该是在脚本里自己配置密码,当屏幕交互需要输入时自动输入进去,要达到这样的效果就需要用到expect。

安装CentOS下安装命令很简单,如下至于Mac用户,可以通过homebrew安装(需要先安装homebrew,请自行Google)

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

测试脚本我们写一个简单的脚本实现scp拷贝文件,在脚本里配置密码,保存为scp.exp如下

注意,第一行很重要,通常我们的脚本里第一行是#!/bin/bash,而这里是你机器上expect程序的路径,说明这段脚本是由expect来解释执行的,而不是由bash解释执行,所以代码的语法和shell脚本也是不一样的,其中set passwd your_passwd设置成你自己的密码,然后执行如下命令执行前确保scp.exp有执行权限,第一个参数为你本地文件,第二个为远程主机的目录,运行脚本如果报错“connect is timeout”,可以把超时设长一点,第二行set timeout 可以设置超时时间,单位是秒。脚本执行效果如下

还能做什么

细心的同学一定发现了,其实expect提供的是和终端的一种交互机制,输入密码只是其中一种应用形式,只要是在终端阻塞需要输入时,都可以通过expect脚本完成自动输入,比如前面脚本里配置了两种交互场景,一种是终端提示"password:"时输入密码,还有一种是提示"yes/no)&#;"时输入“yes”,如果和远程主机是第一次建立连接,执行scp.exp脚本效果是这样的

所以我们可以根据终端的提示来配置输入命令,这样就能达到了自动化的效果。至于处理其它交互场景,只需要照着上面的脚本依葫芦画瓢就行了

Shell脚本创建指定大小文件的测试数据 我们在测试或调试的时候,有时候会需要生成某个size的文件,比如在测试存储系统时,需要将磁盘剩余空间减少5G,最简单的办法就是拷贝一个5G的文件

Shell实现文本去重并操持原有顺序 简单来说,这个技巧对应的是如下一种场景假设有文本如下ccccaaaabbbbddddbbbbccccaaaa现在需要对它进行去重处理,这个很简单,sort-u就可以搞定,但是如果

shell脚本编程实现9*9乘法表 脚本内容#!/bin/bashforiin"1""2""3""4""5""6""7""8""9"doforjin"1""2""3""4""5""6""7""8""9"doif[${j}-lt${i}]thenk=$((i*j))echo-n${i}*${j}=${k}$'t'fiif[${j}-eq${i}]thenk=$((i*j))echo${i}*${j}=${k}fido

标签: shell脚本 su

本文链接地址:https://www.jiuchutong.com/biancheng/381214.html 转载请保留说明!

上一篇:Linux shell实现每天定时备份mysql数据库(linux实现shell代码)

下一篇:Shell脚本创建指定大小文件的测试数据(创建shell脚本命令)

  • 小微企业要做企业年金吗
  • 什么是税务代理人
  • 如何认定纳税人资格证书
  • 合同款未付怎么写欠条
  • 房产交易如何避免个税
  • 合作社增值税免税项目
  • 财务报表实收资本
  • 固定资产清理后卡片如何处理
  • 工程暂估价超了怎么办
  • 哪些罚款不能进行所得税税前扣除?
  • 小规模纳税人收入账务处理
  • 员工私人车通行费能抵进项税吗
  • 开票未收到款会计分录
  • 易票365是哪家公司的
  • 发生的产品广告费
  • 增值税计算方法有哪些
  • 融资租赁与经营租赁的相同点
  • 其他应收款无法收回的会计分录
  • 未分配利润为负的原因
  • 代扣大额医保进哪个账户
  • 外地预缴工会其他经费计入什么科目?
  • 外贸企业国内运费可以抵扣吗
  • 对公账户是否有银行卡号
  • 如何突出显示一行中的最小值
  • 苹果电脑连接打印机打印不出来
  • php curl header参数
  • AquariumDesktop.exe进程危险吗 AquariumDesktop是什么进程
  • 在建工程完工后结转会计分录
  • 出售固定资产减按2%会计处理1%怎么处理
  • 增值税纳税申报首先要稽核比对
  • php的mysql_query
  • 基于Python的flask百战电商流程图
  • threejs loader
  • 外贸进出口企业退税
  • vue3elementplus首页布局
  • ant design pro项目构建纯净版
  • 预收账款期末余额怎么算
  • JavaScript 30 JavaScript 日期格式
  • cesium description
  • chrome 浏览器插件开发
  • java如何解析json字符串
  • 代理记账费用计入什么二级科目
  • 本年利润的会计分录有哪些
  • 小规模纳税人开专票需要交税吗
  • okhttp源码解读
  • 出口退税在贷方,之后还交税吗
  • 单位结余资金该如何处理
  • sql 临时数据
  • 企业所得税季度申报表营业收入怎么填写
  • 上年多交的增值税怎么调整
  • 蓝字发票红字发票什么意思
  • 税费损失
  • 零余额账户用款额度年末转入哪个科目
  • 缴纳文化事业建设费的单位应按照提供广告服务
  • 非限定性净资产属于什么科目
  • 未分配利润高怎么解释
  • 装修费用一次性摊好还是分期好
  • 企业新增的残疾税
  • 固定资产清理后怎么做账
  • mysql常用命令语句
  • sqlserver中存储过程
  • ios 数据库版本升级
  • windows server 2008 r2激活密钥
  • 苹果电脑怎么截屏按哪个键
  • windows与xp的区别
  • 软件生态圈是什意思
  • win7旗舰版如何升级到win10
  • cocos2dx3.3 便条提示语功能简单实现
  • linux chmod s
  • 不宜用于
  • 文章标题用几号字体
  • javascript html5 canvas实现可拖动省份的中国地图
  • 简述JavaScript中全局变量与局部变量的作用域
  • Unity3D Vuforia Android 拨打电话
  • 严格模式的作用
  • js中提交表单
  • 国家税务总局张局长
  • 税务局属于什么行业类别
  • 深圳土地增值税清算规程
  • 02112366电子税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设