1、使用手动插入usb,检测是否能检测到usb内容的方法;
这个方法就是需要人为操作,比较笨;
2、使用脚本读写完成
一般模式下,插入优盘后会增加一个分区,如下:
root@forlinx:~# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/root 6.0G 3.8G 2.2G 64% /
devtmpfs 825M 0 825M 0% /dev
tmpfs 955M 0 955M 0% /dev/shm
tmpfs 955M 892K 954M 1% /run
tmpfs 5.0M 4.0K 5.0M 1% /run/lock
tmpfs 955M 0 955M 0% /sys/fs/cgroup
/dev/mmcblk1p2 197M 152M 46M 77% /boot
tmpfs 191M 0 191M 0% /run/user/0
/dev/sda1 15G 3.2M 15G 1% /run/media/sda1
可以看到最后一个就是我们优盘的分区,可以通过写入文件的方式完成,脚本如下:
root@forlinx:~# cat testusb.sh
#bin/bash
rm *.log -f
echo -e "\033[?25h"
usbdrive=`df -h | grep "/run/media/" | awk '{print $6}'`
usbdrive=$usbdrive"/testusb.log"
while true
do
echo "**********************************************************"
echo "test" > $usbdrive
[ $? -eq 0 ] && echo "`date +%T` test usb successful" || echo "`date +%T` test usb failure"
sleep 1s
rm $usbdrive
sleep 30s
done
执行这个脚本
root@forlinx:~# ./testusb.sh
**********************************************************
02:26:40 test usb successful
**********************************************************
02:27:11 test usb successful
我们可以看到,每隔30s会写入一次数据,然后判断结果,这样就可以实现自动检测实验了
3、使用lsusb命令
root@forlinx:~# lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 05e3:0723 Genesys Logic, Inc. GL827L SD/MMC/MS Flash Card Reader
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
我们可以看到,第4行是我们的u盘,共计4行,我们可以通过判断行数来计算结果
root@forlinx:~# cat testusb1.sh
#!/bin/bash
while true
do
usbresult=`lsusb | wc -l`
[ $usbresult -eq 5 ] && echo "`date +%T` USB success " || echo "`date +%T` USB failure"
sleep 10s
done
执行脚本
root@forlinx:~# ./testusb1.sh
02:30:02 USB success
02:30:13 USB success
02:30:23 USB success
4、判断关键字,
同上使用lsusb命令可以看到我们u盘的关键字
root@forlinx:~# lsusb
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 05e3:0723 Genesys Logic, Inc. GL827L SD/MMC/MS Flash Card Reader
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
我们可以看到关键字我们可以选用 “SD/MMC/MS Flash Card” ,
脚本如下:
root@forlinx:~# cat testusb2.sh
#!/bin/bash
while true
do
usbresult=`lsusb | grep "SD/MMC/MS Flash Card" | wc -l`
[ $usbresult -eq 1 ] && echo "`date +%T` USB success " || echo "`date +%T` USB failure"
sleep 5s
done
执行脚本
root@forlinx:~# ./testusb2.sh
02:34:47 USB success
02:34:52 USB success
好了,就到这里吧。