Add usb-detect script and udev rule

This commit is contained in:
Kai S. K. Engelbart 2021-03-05 11:11:02 +01:00
parent 797644ebdc
commit d4e4ff64cb
2 changed files with 56 additions and 0 deletions

View File

@ -0,0 +1 @@
ACTION=="add", KERNEL=="sd[b-z]1", SUBSYSTEM=="block", RUN+="/home/kske/usb.sh"

55
usb-detect/usb-detect.sh Executable file
View File

@ -0,0 +1,55 @@
#!/bin/bash
# udev script for mounting a block device
# and processing the files it contains
# To use it, place 10-usb-detect.rules
# in /etc/udev/rules.d
# Redirect stdout and stderr to log file
LOGFILE=/var/log/usb-detect.log
exec &>> $LOGFILE
# Processing function (file name is passed as parameter)
PROCESS_FUNC=cat
echo "USB device detected at $DEVNAME"
MOUNTPOINT=/mnt$DEVNAME
echo "Mounting device at $MOUNTPOINT"
mkdir -p $MOUNTPOINT
mount $DEVNAME $MOUNTPOINT
echo "Extracting data..."
shopt -s nullglob
found=0
for f in $MOUNTPOINT/*.[0-9]
do
found=1
echo "Processing $f..."
$PROCESS_FUNC $f
echo "Removing $f..."
rm $f
done
shopt -u nullglob
[ $found -eq 0 ] && echo "$MOUNTPOINT is empty"
echo "Umounting..."
umount $MOUNTPOINT
echo "Removing $MOUNTPOINT..."
rm -r $MOUNTPOINT
if [ -z `ls -A /mnt/dev` ]
then
echo "Removing /mnt/dev/..."
rmdir /mnt/dev
else
echo "Not removing /mnt/dev/ as other devices are mounted."
fi
echo "Done!"