【开发/调试工具】【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环境下自动执行命令的方式,具体如何选用可根据实际的环境和需要来选取;


  • 至于具体的使用的语言或工具本身,网上都有相关资料,需要时可深入了解一下。
相关文章
|
6天前
|
敏捷开发 人工智能 数据管理
探索自动化测试在持续集成环境中的应用与挑战
【5月更文挑战第27天】随着敏捷开发和持续集成(CI)的普及,自动化测试已成为确保软件质量和加速交付的关键工具。本文将深入探讨自动化测试在持续集成环境中的实施策略、面临的挑战以及优化实践。通过分析自动化测试框架的选择、脚本维护、数据管理等关键要素,旨在为读者提供一种系统化的视角,以理解和改进其自动化测试流程。同时,文章还将分享一些前沿的测试自动化趋势,包括人工智能(AI)在测试用例生成和执行中的潜在应用。
|
4天前
|
机器学习/深度学习 人工智能 运维
自动化运维在云计算环境中的应用与挑战
随着云计算技术的快速发展,自动化运维在云计算环境中扮演着越来越重要的角色。本文将探讨自动化运维在云计算环境中的应用现状和所面临的挑战,分析其对云计算技术发展和运维管理的影响,以及未来可能的发展方向。
|
4天前
|
敏捷开发 Java 测试技术
探索自动化测试在持续集成环境中的关键角色
【5月更文挑战第29天】 随着敏捷开发和持续集成(CI)实践的普及,自动化测试已成为确保软件质量和加快交付速度的核心要素。本文将深入探讨自动化测试在持续集成环境中所扮演的角色,分析其如何通过快速反馈和失败早期原则来优化软件开发周期。我们将讨论自动化测试策略的设计,包括单元测试、集成测试和端到端测试的最佳实践,以及如何利用现代测试框架和工具来提高测试效率和有效性。此外,文章还将展示自动化测试如何帮助团队实现持续部署和交付的目标,同时保持高质量标准。
|
6天前
|
运维 安全 Devops
云计算环境下的网络安全策略与挑战构建高效稳定的云基础设施:DevOps与自动化运维实践
【5月更文挑战第27天】 随着企业数字化转型的加速,云计算已成为支撑现代业务架构的关键基础设施。然而,数据存储和服务交付模式的转变也带来了新的安全风险和挑战。本文探讨了在云计算环境中实现网络和信息安全的策略,并分析了当前面临的主要安全威胁。通过深入剖析云服务模型、加密技术、身份认证机制及合规性要求,我们提出了一系列创新的安全框架和解决方案,旨在为组织提供全面的安全防护,同时促进云计算资源的高效利用。
|
10天前
|
存储 Java 应用服务中间件
Linux中安装部署环境(JAVA)
Linux中安装部署环境(JAVA)
23 0
|
10天前
|
NoSQL Linux 测试技术
如何在Linux环境下安装Redis呢?
如何在Linux环境下安装Redis呢?
|
12天前
|
IDE Linux 测试技术
Linux项目自动化构建工具-make/Makefile
Linux项目自动化构建工具-make/Makefile
|
12天前
|
人工智能 数据可视化 Linux
linux环境开发工具---yum与vim
linux环境开发工具---yum与vim
|
13天前
|
运维 网络协议 Linux
2024年最全CentOS8 Consul微服务架构安装(1)_agent(1),Linux运维开发面试
2024年最全CentOS8 Consul微服务架构安装(1)_agent(1),Linux运维开发面试
|
14天前
|
编解码 Linux 5G
FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器
AVS3,中国制定的第三代音视频标准,是首个针对8K和5G的视频编码标准,相比AVS2和HEVC性能提升约30%。uavs3d是AVS3的解码器,支持8K/60P实时解码,且在各平台有优秀表现。要为FFmpeg集成AVS3解码器libuavs3d,需从GitHub下载最新源码,解压后配置、编译和安装。之后,重新配置FFmpeg,启用libuavs3d并编译安装,通过`ffmpeg -version`确认成功集成。
29 0
FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器