背景:
实现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.重启电脑即可
