•  
  •  
  •  
  •  
  •  

最近工作上需要判斷是否有插入隨身碟,指令還滿簡單的所以再發想一些應用面的東西;包含簡單的 shell script 去執行指定程式。

指令:lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 006: ID 0bda:8821 Realtek Semiconductor Corp.
Bus 002 Device 004: ID 0518:0001 EzKEY Corp. USB to PS2 Adaptor v1.09
Bus 002 Device 003: ID 05e3:0727 Genesys Logic, Inc. microSD Reader/Writer
Bus 002 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
說明:會列出目前所有連上usb設備

插入usb隨身碟 再執行一次指令
指令:lsusb
Bus 001 Device 002: ID 8087:8001 Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 006: ID 0bda:8821 Realtek Semiconductor Corp.
Bus 002 Device 018: ID 1005:b113 Apacer Technology, Inc. Handy Steno/AH123 / Handy Steno 2.0/HT203
Bus 002 Device 004: ID 0518:0001 EzKEY Corp. USB to PS2 Adaptor v1.09
Bus 002 Device 003: ID 05e3:0727 Genesys Logic, Inc. microSD Reader/Writer
Bus 002 Device 002: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
說明:會發現插入usb後多了一行
Bus 002 Device 018: ID 1005:b113 Apacer Technology, Inc. Handy Steno/AH123 / Handy Steno 2.0/HT203
可以發現新增的一行就是剛插入的usb品牌 Apacer
這邊先記下該usb的ID 1005:b113

新增一個文檔,命名為 checkusb.sh
文件內容如下

!/bin/sh
lsusb | grep 1005:b113 >/dev/null
if [ $? -eq 0 ]
then
echo “Connection”
else
echo “Broken”
fi

說明:

!/bin/sh =>使用shell script來執行該程式
lsusb | grep 1005:b113 >/dev/null =>lsusb 透過文字過濾出 指定的usb id
if [ $? -eq 0 ] => 如果有找到該id
then
echo “Connection”=>就輸出 Connection
else
echo “Broken”=>沒找到 就輸出 Broken
fi =>結束語句

其中echo “Connection” 可以替換成你想要執行的其它程式 可以是.sh / java / php / .py 等等…

最後發想一下應用,如果你有些程式有些安全性的機制,你就可以請使用者插入指定的usb隨身碟當鑰匙,簡單一點的方法就如同上面,複雜一點的方式就可以加入公私鑰的計算。

喜歡我的文章嗎?歡迎按讚加分享/留言交流,或是點擊下方廣告讚助我喝一杯咖啡吧 ^_^ ⇩⇩⇩
  •  
  •   
  •  
  •  
  •  
  •  

Leave a comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *