Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
linux中的usb插件/输出_Linux_Bash_Unix - Fatal编程技术网

linux中的usb插件/输出

linux中的usb插件/输出,linux,bash,unix,Linux,Bash,Unix,我已经使用udev和bash脚本在Linux-bash中编写了一个程序 连接usb时,执行udev规则,该规则调用脚本。该脚本读取/var/log/messages文件,从日志文件中获取有关连接的usb硬盘的信息,并通过电子邮件发送信息 程序运行良好,但我遇到了一个问题。当我尝试移除usb时,我必须摇动它,因为它被牢固地注入内部,所以在移除过程中,它会移除、连接、移除连接,然后最终移除。因此,我的电子邮件格式受到干扰,无法获得正确的信息。此外,它会生成多封无用的电子邮件,我会收到以下日志: Ma

我已经使用udev和bash脚本在Linux-bash中编写了一个程序

连接usb时,执行udev规则,该规则调用脚本。该脚本读取/var/log/messages文件,从日志文件中获取有关连接的usb硬盘的信息,并通过电子邮件发送信息

程序运行良好,但我遇到了一个问题。当我尝试移除usb时,我必须摇动它,因为它被牢固地注入内部,所以在移除过程中,它会移除、连接、移除连接,然后最终移除。因此,我的电子邮件格式受到干扰,无法获得正确的信息。此外,它会生成多封无用的电子邮件,我会收到以下日志:

May 04 13:06:13 coil sendEmail[12467]: Email was sent successfully!
May 4 13:06:13 coil vmbackup[12450]: USB Removed: Email sent to backupjobs@domain.com
May  4 13:06:16 coil kernel: [8474935.215393] usb 2-6: USB disconnect, address 126
May  4 13:06:16 coil kernel: [8474935.601292] usb 2-6: new high speed USB device using ehci_hcd and address 127
May  4 13:06:17 coil kernel: [8474935.868637] usb 2-6: configuration #1 chosen from 1 choice
May  4 13:06:17 coil kernel: [8474935.915429] scsi85 : SCSI emulation for USB Mass Storage devices
May  4 13:06:17 coil kernel: [8474935.982734] input: Western Digital My Book as /devices/pci0000:00/0000:00:1d.7/usb2/2-6/2-6:1.1/input/input82
May  4 13:06:17 coil kernel: [8474935.982808] generic-usb 0003:1058:1102.0050: input,hidraw0: USB HID v1.11 Device [Western Digital My Book] on usb-0000:00:1d.7-6/input1
May  4 13:06:17 coil kernel: [8474935.982808] generic-usb 0003:1058:1102.0050: input,hidraw0: USB HID v1.11 Device [Western Digital My Book] on usb-0000:00:1d.7-6/input1
May  4 13:06:17 coil kernel: [8474936.084957] usb 2-6: USB disconnect, address 127
May  4 13:06:17 coil kernel: [8474936.500051] usb 2-6: new high speed USB device using ehci_hcd and address 2
May  4 13:06:17 coil kernel: [8474936.769487] usb 2-6: configuration #1 chosen from 1 choice
May  4 13:06:17 coil kernel: [8474936.815499] scsi86 : SCSI emulation for USB Mass Storage devices
May  4 13:06:18 coil kernel: [8474936.882954] input: Western Digital My Book as /devices/pci0000:00/0000:00:1d.7/usb2/2-6/2-6:1.1/input/input83
May  4 13:06:18 coil kernel: [8474936.883044] generic-usb 0003:1058:1102.0051: input,hidraw0: USB HID v1.11 Device [Western Digital My Book] on usb-0000:00:1d.7-6/input1
May  4 13:06:22 coil kernel: [8474941.837814] scsi 86:0:0:0: Direct-Access     WD       My Book          1028 PQ: 0 ANSI: 4
May  4 13:06:22 coil kernel: [8474941.838208] sd 86:0:0:0: Attached scsi generic sg3 type 0
May  4 13:06:22 coil kernel: [8474941.838208] sd 86:0:0:0: Attached scsi generic sg3 type 0
May  4 13:06:23 coil kernel: [8474941.860051] sd 86:0:0:0: [sdc] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
May  4 13:06:23 coil kernel: [8474941.873798] sd 86:0:0:0: [sdc] Write Protect is off
May  4 13:06:23 coil kernel: [8474941.955971]  sdc: sdc1
May  4 13:06:23 coil kernel: [8474942.014853] sd 86:0:0:0: [sdc] Attached SCSI disk
May 04 13:06:23 coil sendEmail[12495]: Email was sent successfully!
May 4 13:06:23 coil vmbackup[12478]: USB Added: Email sent to backupjobs@domain.com
May 04 13:06:26 coil sendEmail[12527]: Email was sent successfully!
May 4 13:06:26 coil vmbackup[12510]: USB Removed: Email sent to backupjobs@domain.com
May 04 13:06:35 coil sendEmail[12546]: Email was sent successfully!
May 4 13:06:35 coil vmbackup[12535]: USB Added: Email sent to backupjobs@domain.com
May 04 13:06:37 coil sendEmail[12576]: Email was sent successfully!
May 4 13:06:37 coil vmbackup[12559]: USB Removed: Email sent to backupjobs@domain.com
May 04 13:06:48 coil sendEmail[12596]: Email was sent successfully!
May 4 13:06:48 coil vmbackup[12585]: USB Added: Email sent to backupjobs@domain.com

现在我知道这不是编码问题。但我想知道我是否能解决这个问题?关心这个场景

您必须在脚本中执行某种反弹跳。无论何时调用,请检查最近是否调用了<1秒或2秒,如果是,请不要执行任何操作。您可以在/tmp中将文件用作时间戳作为时间标记

类似的方法可能会奏效:

delta=2  # 2 seconds of debounce
stampfile=/tmp/stamp
now=$(date +%s)
then=$(< $stampfile)
[[ -z $then ]] && then=$now
diff=$((now-then))
if [[ $((diff < delta)) ]]; then
   exit
else
   echo $now > $stampfile
fi