轻松自动化:学习使用 Linux 脚本 expect (linux 脚本 expect)

随着现代技术的发展,计算机日益普及,人们日常使用计算机的时间也越来越长,计算机的操作与管理也越来越复杂。因此,轻松自动化已经成为计算机管理、操作的重要手段之一。在这个过程中,学习使用 Linux 脚本 expect,不仅可以提高计算机操作效率,还可以减少犯错的可能性,为我们的工作和生活带来便利。

那么,什么是 Linux 脚本 expect 呢?它可以实现什么样的功能呢?

Linux 脚本 expect 是一种自动化脚本语言,它能够自动完成一些重复性、繁琐的操作,同时也可以实现大批量、自动化运维管理,大幅度提高工作效率。expect 在 Linux 系统中被广泛应用,比如:在 SSH、Telnet、FTP、scp 等程序中,使用 expect 就可以写出简洁,高效的自动化操作脚本,使人工管理变得简单、高效。

那么如何学习 expect 呢?

我们需要了解 expect 的基本用法。

expect 主要由 expect 和 send 两个命令组成。expect 负责捕捉需要处理的信息,send 负责处理要发送的信息。

expect 命令语法格式如下:

`expect [-bvd] [-c cmds] [-f file] [-i id] [-l var] [-n] [-p pat] [-q] [-t sec] [timeout] [cmds]`

其中,-b 选项表示将 expect 进程转换为一个背景作业,-c 选项表示在命令行中直接执行 cmds 命令,-f 选项表示从 file 文件中读取 cmds 命令。-i 选项表示使用指定的系统调用,-l 选项指定变量名,以便在 expect 中使用全局变量。-p 选项表示在等待指定的模式时不回显,-q 选项表示退出 expect 并返回一个退出值,最后三个选项与目标主机的交互有关。

send 命令语法格式如下:

`send [-s string] [-h] [-p] [-i id] [-l] [-n] [–] string …`

其中,-s 选项表示停止字符串。-h 选项表示仅发送字符串。-p 选项表示不写回自己,-i 选项表示输出的 ID。-l 选项表示发送时使用的延迟。-n 选项表示在数据流结束前不要发送换行符。string 参数表示要发送的字符串。

接下来,我们来看看一个简单的 expect 脚本的编写。

expect

expect “password:”

send “123456\n”

expect

以上脚本的意思就是,当程序运行到 password: 时,自动输入密码 123456 并执行回环函数,退出 expect。

除了以上这个简单的例子外,还有很多实用的 expect 脚本编写方法。

比如,我们可以使用 expect 进行多服务器密钥批量分发。

#!/bin/bash

username=”root”

password=”123456″

ip_list=(“192.168.10.21” “192.168.10.22” “192.168.10.23”)

for ip in ${ip_list[@]}

do

expect

spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $username@$ip

expect {

“(yes/no)” {send “yes\r”;exp_continue}

“password:” {send “$password\r”}

}

expect eof

EOF

done

以上脚本的功能是批量将公钥推送到多台服务器上,以便进行密码-less 登陆。

此外,expect 还可以用于自动化 FTP 文件上传、Telent 自动登录等等。上面的例子仅仅是为了说明 expect 的基本用法,实际使用中还需要根据具体需求进行变化。

学习使用 Linux 脚本 expect 可以让我们的工作更加高效、便捷,为我们的生活和工作带来便利。在使用 expect 过程中,我们需要注重实践,多多发挥自己对脚本的理解和想象力,可以在学习过程中挖掘出更多 expect 的奥秘。

相关问题拓展阅读:

  • linux 使用expect脚本ssh到远程无法使用RZ为什么
  • linux下用expect spawn时的问题

linux 使用expect脚本ssh到远程无法使用RZ为什么

因为网络中断相当于跑程序的控制台关闭。这时控制台里的程序会被关闭。

你可以用nohup 程序名销晌轿 &,这样即使控制台关闭谨茄程序亏肆照样在后台运行。

linux下用expect spawn时的问题

*.log 是shell中的用法,

scp或者其他命令本身并不直接将 * 替换成匹配的多个滚手文件名。

建议你将 expect 脚本做成一次只上传一个文件,这个文件名由输入参数来决定

scp :/home

expect “password:” {send “\n”}

interact

然后再写一个bash脚本,脚本调用上面的expect脚本来上传所有的文件,如:

for f in `ls /log/*.log`

do

expect_script /log/$f

done

即可。

另,像这陪仿种备份文件,用大乱嫌 rsync 更方便,供参考。

可以使用如下方法

1. 在客户机上产生一对密钥:

#ssh-keygen -d #产生dsa密钥孝谈

或者:

#ssh-keygen -t rsa #产生rsa密钥

2. 在服务器上建立目录 /root/.ssh,并设则毁置权限:

#chmod/root/.ssh

3. 把客户机上生成的公钥拷贝到服务器的/root/.ssh目录下:

#scp /root/.ssh/id_dsa.pub root@服务器IP:/root/.ssh/authorized_keys

或孙慎备者:

#scp /root/.ssh/id_rsa.pub root@服务器IP:/root/.ssh/authorized_keys

4. 这样,就可以从客户机直接登入ssh服务器,而不需要密码了,可使用的命令包括ssh, scp和sftp。例如:

关于linux 脚本 expect的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

香港服务器首选树叶云,2H2G首月10元开通。
树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/196663.html<

(0)
运维的头像运维
上一篇2025-04-03 13:37
下一篇 2025-04-03 13:38

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注