嵌入式Linux系统小技巧之U盘自动运行脚本

简介: 嵌入式Linux系统小技巧之U盘自动运行脚本

上次说了一个脚本小技巧(预留启动脚本),这次说的这个小技巧,是U盘自动运行脚本。


U盘自动运行脚本的用处


U盘自动运行脚本,也属于是系统预留的一个接口吧。当系统忘记密码、没有debug调试线、网络进不去等等时,U盘就发挥作用了!系统预留了这个自动运行脚本,那可以解决好多问题。在这里简单罗列几点:

  • 修改系统密码
  • 自动升级
  • 自动导入/导出配置文件
  • 导出日志
  • 导出数据
  • 等等……


U盘自动运行脚本配置方法


Linux系统下是使用udev或者轻量级的类udev工具来自动自动挂载设备,这里以udev为例,来说下怎么设置U盘自动运行脚本。


1. udev挂载脚本配置


一般U盘挂载规则文件在这个目录下面:

/etc/udev/rules.d


我这里的文件内容:

ACTION!="add",GOTO="fens"
KERNEL=="sd[a-z][0-9]",RUN+="/usr/sbin/mount-usb.sh %k %n $sysfs{size}"
LABEL="fens"


这个脚本“/usr/sbin/mount-usb.sh”即U盘挂载脚本,当udev检测到U盘挂载事件时,会调用这个脚本。


2. U盘挂载脚本


U盘自动运行脚本,就是在U盘挂载脚本里添加的。首先要把自动运行的脚本名字给固定下来,这里暂定为“start.sh”。挂载脚本在挂载过U盘之后,去检测U盘里是否有该脚本,如果有则运行。脚本内容如下:

#!/bin/sh
RUN="/mnt/usb/start.sh"
#挂载U盘
/bin/mount  /dev/$1 /mnt/usb
#检测是否有自动运行脚本,如果有则执行
if [ -f $RUN ]
then
    /bin/sh $RUN &
fi

内容也比较简单,和上次那个脚本启动方式一样,有两点,一是使用/bin/sh启动,这样不用检测脚本是否具有可执行权限;二是加上&符号,后台运行脚本。


扩展


这样预留了一个自动运行脚本之后,相当于给系统又增加了一个预留接口一样,当客户需要导出日志或者数据时,而我们系统功能当前没有这个功能时,那就可以先写个脚本,实现客户功能。

如果你的设备有UI界面,可以再UI程序上也做一个通信接口(可以通过UDP通信实现,做一个发送数据的命令),然后再脚本里去把进度等信息发给UI界面显示,这样就更好用了。


目录
相关文章
|
18天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
151 78
|
4天前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
32 15
|
8天前
|
Ubuntu Linux Go
golang编译成Linux可运行文件
本文介绍了如何在 Linux 上编译和运行 Golang 程序,涵盖了本地编译和交叉编译的步骤。通过这些步骤,您可以轻松地将 Golang 程序编译成适合 Linux 平台的可执行文件,并在目标服务器上运行。掌握这些技巧,可以提高开发和部署 Golang 应用的效率。
66 14
|
18天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
83 13
|
18天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
40 0
|
8月前
|
缓存 Linux 测试技术
安装【银河麒麟V10】linux系统--并挂载镜像
安装【银河麒麟V10】linux系统--并挂载镜像
2240 0
|
8月前
|
关系型数据库 MySQL Linux
卸载、下载、安装mysql(Linux系统centos7)
卸载、下载、安装mysql(Linux系统centos7)
258 0
|
3月前
|
Linux
手把手教会你安装Linux系统
手把手教会你安装Linux系统
|
6月前
|
Linux 虚拟化 数据安全/隐私保护
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
部署05-VMwareWorkstation中安装CentOS7 Linux操作系统, VMware部署CentOS系统第一步,下载Linux系统,/不要忘, CentOS -7-x86_64-DVD
|
4月前
|
Ubuntu Linux 网络安全
从头安装Arch Linux系统
本文记录了作者安装Arch Linux系统的过程,包括安装成果展示和遇到的疑难点及其解决方法,如硬盘不足、下载失败、设置时区、安装微码和配置无密码登录等。
103 1
从头安装Arch Linux系统