Linux下实现U盘自动检测

背景:

实现U盘插入系统时,系统自动从数据库中导入各类数据至U盘中。


1.查看系统是否配置udev环境,并掌握其运行模式。

参考文献

参考文献2


2.在Centos 7环境下 udev的两个配置文件目录分别是 /etc/udev/rules.d 和 /usr/lib/udev/rules.d 其中在服务开启时,前者优先加载到内核中。

两个目录下的文件如下所示:



所有以.rules结尾的文件都是规则文件,当规则定义冲突时,且前两位数值大的文件内容会覆盖之前的内容。

所以我们选择  99-systemed.rues 配置我们的规则。

在最后一行插入如下内容:

ACTION=="add",KERNEL=="sd[a-z][0-9]",RUN+="/etc/udev/rules.d/mount.sh %k",RUN+="/etc/udev/rules.d/cpfile.sh"
// 检测到有U盘插入的时候 先执行挂载脚本 再执行写U盘脚本

其中,mount.sh如下:

#!/bin/sh
mount  -t vfat /dev/$1 /mnt/usb
sync

cpfile.sh如下:

#!/bin/bash

# /etc/udev/rules.d
# SUBSYSTEM=="block",ACCTION=="add",RUN+="/etc/udev/rules.d/cpfile.sh"

dbpasswd="123"
dbname="IDS"
dbtablename="IDS_alert"

tmp=`grep 'IPADDR' /etc/sysconfig/network-scripts/ifcfg-eth0`
pretext='IPADDR='
name=${tmp#pretext}

filename=`ls /mnt/usb`
if [[ $filename =~ "heartbeat" ]];then
	echo "start duplicate file!"
	b="mysqldump -uroot -p${dbpasswd} ${dbname} ${dbtablename}>/run/media/zyy/${name}.sql"
	touch /mnt/usb/123
	echo $b
	echo "finished!"
fi

3.重启电脑即可


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值