前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >嵌入式Linux系统脚本小技巧之U盘自动运行脚本

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

作者头像
fensnote
发布2022-01-18 10:35:59
1.6K0
发布2022-01-18 10:35:59
举报
文章被收录于专栏:嵌入式技术笔记

上次介绍了一个系统启动预留脚本,今天介绍的这个脚本小技巧是U盘自动运行脚本,这个脚本相当于系统的一个功能扩展接口,可以实现好多扩展功能!

U盘自动运行脚本的用处

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

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

配置方法

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

1. udev挂载脚本配置

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

代码语言:javascript
复制
/etc/udev/rules.d

我这里的文件内容:

代码语言:javascript
复制
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盘里是否有该脚本,如果有则运行。脚本内容如下:

代码语言:javascript
复制
#!/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界面显示,这样就更好用了。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 嵌入式技术笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档