【开发/调试工具】【Linux】嵌入式Linux环境下如何自动化执行操作

简介: 【开发/调试工具】【Linux】嵌入式Linux环境下如何自动化执行操作

引子


  • 在嵌入式Linux的开发调试过程中,有时需要执行一些复杂的操作,诸如shell登陆、重复执行命令等操作,如果全部人工来执行,效率低下且有时不现实。


  • 本文将常用的嵌入式Linux环境下自动执行操作的方法做一总结,供各位参考。


编程语言方式


shell脚本


  • shell脚本就是为Linux而生的,登陆Linux的shell之后,shell脚本基本上可以完成各种复杂的逻辑,如循环、判断、执行命令等,相关资料很多,这里就不再赘述了。


Python程序


  • 例1、利用python向串口发送ifconfig指令


 # 导入模块
 import serial
 # 需要发送的串口指令
 cmd = 'ifconfig'
 # 将字符串转换成字节
 cmd=bytes.fromhex(cmd)
 # 生成串口
 serial_com = serial.Serial("com1", 115200, timeout=5)
 # 发送串口指令
 serial_com.write(cmd)
 # 读取串口返回结果
 serial_com.read(1024)
 # 关闭串口
 serial_com.close()


VBS脚本(配合SecureCrt软件)


  • 例1、每3s执行一次ifconfig命令


#$language = "VBScript"
#$interface = "1.0"
Sub  main
crt.Screen.Synchronous = True
While 1
    crt.Screen.Send "ifconfig" & VbCr
    crt.Screen.WaitForString "#"
    crt.Sleep 1000*3
Wend
End Sub


  • 例2、自动登陆串口并连续读取三次snmp文件


#$language = "VBScript"
#$interface = "1.0"
Sub main
    Dim ReadCounter
    crt.Screen.Send VbCr 
    crt.Screen.WaitForString "login: "
    crt.Screen.Send "root" & VbCr
    crt.Screen.WaitForString "Password: "
    crt.Screen.Send "root" & VbCr
    crt.Screen.WaitForString "#"
    for ReadCounter = 1 to 3
        crt.Screen.Send "cat /proc/net/snmp" & VbCr
      crt.Screen.WaitForString "#"
      crt.Sleep 100
    next
    transmit "reboot^M" 
End Sub


ASPECT脚本(Procomm Plus自带)


例1、自动执行100次ifconfig命令


proc main
   integer Num                ; Integer variable to increment.
   for Num = 1 upto 100       ; Init variable and define loop.
     transmit "ifconfig"
     waitfor "#"
   endfor
endproc


例2、周期查看pci设备并重启设备


proc main
  integer WaitCounter= 0
  while (WaitCounter++) < 1000
        transmit "root^M"
        waitfor "Password:"
        transmit "root^M"
      waitfor "#"
      transmit "ls /proc/bus/pci/devices ^M"
        waitfor "#"
      transmit "reboot^M"     
      pause 2400
  endwhile
endproc


利用expect


  • 例1、自动登陆ssh:


#!/usr/bin/expect -f
set timeout 30
spawn ssh -l my_username@192.168.1.1
expect "password:"
send "my_password\r"
interact


工具方式


MobaXterm


  • 该软件自带Macro功能,可根据需要组合键盘的回车、换行、文字输入、sleep等操作:



IPOP


  • 终端工具,这里可按文件或文本方式输入各种命令:



串口精灵


  • 发送数据可发送十六进制(HEX)格式和ASCII码,可以设置定时发送的数据以及时间间隔。可以自动显示接收到的数据,串口调试精灵官方版支持HEX或ASCII码显示。是工程技术人员监视、调试串口程序的必备工具。



MicroLab


  • 支持串口/网络动态指令编程:



小结


  • 本文简单探讨了几种Linux环境下自动执行命令的方式,具体如何选用可根据实际的环境和需要来选取;


  • 至于具体的使用的语言或工具本身,网上都有相关资料,需要时可深入了解一下。
相关文章
|
2月前
|
Ubuntu Linux Shell
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
(已成功解决)Linux环境报错—bash: wget: command not found;常见Linux发行版本,Linux中yum、rpm、apt-get、wget的区别;Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
463 68
(已解决)Linux环境—bash: wget: command not found; Docker pull报错Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled
|
2月前
|
存储 人工智能 自然语言处理
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
ChatMCP 是一款基于模型上下文协议(MCP)的 AI 聊天客户端,支持多语言和自动化安装。它能够与多种大型语言模型(LLM)如 OpenAI、Claude 和 OLLama 等进行交互,具备自动化安装 MCP 服务器、SSE 传输支持、自动选择服务器、聊天记录管理等功能。
278 15
ChatMCP:基于 MCP 协议开发的 AI 聊天客户端,支持多语言和自动化安装 MCP 服务器
|
2月前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
3月前
|
缓存 Ubuntu Linux
Linux环境下测试服务器的DDR5内存性能
通过使用 `memtester`和 `sysbench`等工具,可以有效地测试Linux环境下服务器的DDR5内存性能。这些工具不仅可以评估内存的读写速度,还可以检测内存中的潜在问题,帮助确保系统的稳定性和性能。通过合理配置和使用这些工具,系统管理员可以深入了解服务器内存的性能状况,为系统优化提供数据支持。
106 4
|
3月前
|
关系型数据库 MySQL Linux
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
250 3
|
3月前
|
监控 关系型数据库 MySQL
Linux环境下MySQL数据库自动定时备份策略
在Linux环境下,MySQL数据库的自动定时备份是确保数据安全和可靠性的重要措施。通过设置定时任务,我们可以每天自动执行数据库备份,从而减少人为错误和提高数据恢复的效率。本文将详细介绍如何在Linux下实现MySQL数据库的自动定时备份。
130 3
|
7天前
|
Linux
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
50 23
Linux系统之whereis命令的基本使用
|
3月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
344 8
|
3月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
1129 6
|
21天前
|
网络协议 Unix Linux
深入解析:Linux网络配置工具ifconfig与ip命令的全面对比
虽然 `ifconfig`作为一个经典的网络配置工具,简单易用,但其功能已经不能满足现代网络配置的需求。相比之下,`ip`命令不仅功能全面,而且提供了一致且简洁的语法,适用于各种网络配置场景。因此,在实际使用中,推荐逐步过渡到 `ip`命令,以更好地适应现代网络管理需求。
34 11