Add usb-detect script and udev rule
This commit is contained in:
		
							
								
								
									
										1
									
								
								usb-detect/10-usb-detect.rules
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								usb-detect/10-usb-detect.rules
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										55
									
								
								usb-detect/usb-detect.sh
									
									
									
									
									
										Executable 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!"
 | 
			
		||||
		Reference in New Issue
	
	Block a user