想让电脑自动运行我插入的U盘里的脚本

sh/bash/dash/ksh/zsh等Shell脚本
回复
Sakauma
帖子: 9
注册时间: 2019-06-01 1:26
系统: Ubuntu16.04LTS

想让电脑自动运行我插入的U盘里的脚本

#1

帖子 Sakauma » 2019-06-01 23:46

最近要做一个能一插U盘就执行U盘里的脚本让电脑关机的东西。目标是u盘随便插在哪台Ubuntu上都能执行。网上关于这方面的教程实在太乱,小弟特来请教。
头像
astolia
论坛版主
帖子: 6445
注册时间: 2008-09-18 13:11

Re: 想让电脑自动运行我插入的U盘里的脚本

#2

帖子 astolia » 2019-06-02 11:14

Sakauma 写了: 2019-06-01 23:46 目标是u盘随便插在哪台Ubuntu上都能执行
做不到。除非你那个不是真正的u盘,而是特殊的输入设备,插上去就自动触发特定的按键还有可能。
udev规则可以用来在特定设备接入后执行特定命令,但要事先在系统上放置规则文件才行。随便哪台是不行的
onlylove
论坛版主
帖子: 5230
注册时间: 2007-01-14 16:23

Re: 想让电脑自动运行我插入的U盘里的脚本

#3

帖子 onlylove » 2019-06-02 11:30

你这个想法很像windows底下的autorun病毒,为此微软限制了自动运行功能
Sakauma
帖子: 9
注册时间: 2019-06-01 1:26
系统: Ubuntu16.04LTS

Re: 想让电脑自动运行我插入的U盘里的脚本

#4

帖子 Sakauma » 2019-06-02 18:49

astolia 写了: 2019-06-02 11:14
Sakauma 写了: 2019-06-01 23:46 目标是u盘随便插在哪台Ubuntu上都能执行
做不到。除非你那个不是真正的u盘,而是特殊的输入设备,插上去就自动触发特定的按键还有可能。
udev规则可以用来在特定设备接入后执行特定命令,但要事先在系统上放置规则文件才行。随便哪台是不行的
我可以在要实现功能的电脑上放置规则文件,但是我发现我不能让U盘里的脚本自动运行,U盘已经自动挂载上了,要让脚本自动运行是还要去修改udev里的文件吗?
Sakauma
帖子: 9
注册时间: 2019-06-01 1:26
系统: Ubuntu16.04LTS

Re: 想让电脑自动运行我插入的U盘里的脚本

#5

帖子 Sakauma » 2019-06-02 19:07

astolia 写了: 2019-06-02 11:14
Sakauma 写了: 2019-06-01 23:46 目标是u盘随便插在哪台Ubuntu上都能执行
做不到。除非你那个不是真正的u盘,而是特殊的输入设备,插上去就自动触发特定的按键还有可能。
udev规则可以用来在特定设备接入后执行特定命令,但要事先在系统上放置规则文件才行。随便哪台是不行的
因为实现环境比较特赦,所以我的电脑只有在我想执行关机的时候才会插入U盘,所以我想在电脑的udev规则里修改,在自动挂载脚本里加上关机命令,以达到插入U盘就能关机的效果。不知道这样可不可行,如果一台电脑要对应一个U盘那也太麻烦了。不过我现在的问题是无论我怎么改规则U盘还是自动挂载到 /media/myname/下 :Cry
头像
astolia
论坛版主
帖子: 6445
注册时间: 2008-09-18 13:11

Re: 想让电脑自动运行我插入的U盘里的脚本

#6

帖子 astolia » 2019-06-02 23:30

仅仅是要实现关机的话,根本不需要挂载啊,甚至都可以不是u盘。直接检查usb设备的vendor和product号就行了

代码: 全选

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", RUN+="/sbin/poweroff"
还可以搞成插入/拔出鼠标/键盘就关机之类的。

有连网的话,用knockd搞个接收到特定序列的数据包就关机也可以,我有个树莓派就是这么做的。
Sakauma
帖子: 9
注册时间: 2019-06-01 1:26
系统: Ubuntu16.04LTS

Re: 想让电脑自动运行我插入的U盘里的脚本

#7

帖子 Sakauma » 2019-06-03 0:27

astolia 写了: 2019-06-02 23:30 仅仅是要实现关机的话,根本不需要挂载啊,甚至都可以不是u盘。直接检查usb设备的vendor和product号就行了

代码: 全选

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", RUN+="/sbin/poweroff"
还可以搞成插入/拔出鼠标/键盘就关机之类的。

有连网的话,用knockd搞个接收到特定序列的数据包就关机也可以,我有个树莓派就是这么做的。
我在udev里添加的规则似乎并不起作用,这点困扰我很久
Sakauma
帖子: 9
注册时间: 2019-06-01 1:26
系统: Ubuntu16.04LTS

Re: 想让电脑自动运行我插入的U盘里的脚本

#8

帖子 Sakauma » 2019-06-03 1:02

Sakauma 写了: 2019-06-03 0:27
astolia 写了: 2019-06-02 23:30 仅仅是要实现关机的话,根本不需要挂载啊,甚至都可以不是u盘。直接检查usb设备的vendor和product号就行了

代码: 全选

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="xxxx", ATTRS{idProduct}=="yyyy", RUN+="/sbin/poweroff"
还可以搞成插入/拔出鼠标/键盘就关机之类的。

有连网的话,用knockd搞个接收到特定序列的数据包就关机也可以,我有个树莓派就是这么做的。
我在udev里添加的规则似乎并不起作用,这点困扰我很久
解决了……我的vendor写错了……
回复