[clug] Help please with running a script on an event

Bob Edwards bob at cs.anu.edu.au
Thu Jan 17 07:08:59 UTC 2019


It is unlikely that a USB-connected device would appear to the kernel as
an nvme device - I think your assumption may be incorrect.

Unplug your phone, wait a sec, type "df", plug your phone in, wait a
sec, type "df" again and see what has been added. This will list, in
the first column, the actual device that the phone is mounted as.

cheers,
Bob Edwards (happy to be answering Linux questions and not web-dev
questions...).

On 17/1/19 6:00 pm, jhock via linux wrote:
> Many thanks to Brenton and David for their replies.
> 
> I have looked at the suggested web and it was very helpful although I
> just can't get the script to run. I think it's something to do with the
> entry in the udev rules file. Here is some information.
> 
> When I connect my phone and run:
> 
> $ udevadm monitor
> monitor will print the received events for:
> UDEV - the event which udev sends out after rule processing
> KERNEL - the kernel uevent
> 
> KERNEL[18431.513361] add      /devices/pci0000:00/0000:00:14.0/usb1/1-
> 1
> (usb)
> KERNEL[18431.519451] add      /devices/pci0000:00/0000:00:14.0/usb1/1-
> 1/1-1:1.0 (usb)
> KERNEL[18431.519573] bind     /devices/pci0000:00/0000:00:14.0/usb1/1-
> 1
> (usb)
> UDEV  [18431.530918] add      /devices/pci0000:00/0000:00:14.0/usb1/1-
> 1
> (usb)
> UDEV  [18431.534169] add      /devices/pci0000:00/0000:00:14.0/usb1/1-
> 1/1-1:1.0 (usb)
> UDEV  [18431.535664] bind     /devices/pci0000:00/0000:00:14.0/usb1/1-
> 1
> (usb)
> KERNEL[18431.566670] bind     /devices/pci0000:00/0000:00:14.0/usb1/1-
> 1/1-1:1.0 (usb)
> UDEV  [18431.568292] bind     /devices/pci0000:00/0000:00:14.0/usb1/1-
> 1/1-1:1.0 (usb)
> 
> 
> I then run:
> 
> $ lsblk
> NAME           MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
> <snip/>
> nvme0n1        259:0    0 335.4G  0 disk
> ├─nvme0n1p1    259:1    0   512M  0 part  /boot/efi
> ├─nvme0n1p2    259:2    0 319.1G  0 part  /
> └─nvme0n1p3    259:3    0  15.8G  0 part
>    └─cryptswap1 253:0    0  15.8G  0 crypt [SWAP]
> 
> I then run:
> 
> $ udevadm info /dev/nvme0n1p1
> P:
> /devices/pci0000:00/0000:00:1d.0/0000:6e:00.0/nvme/nvme0/nvme0n1/nvme0n
> 1p1
> N: nvme0n1p1
> S: disk/by-id/nvme-INTEL_SSDPEKKF360G7H_BTPY72200WPY360E-part1
> S: disk/by-id/nvme-eui.0000000001000000e4d25cf3cccc4d01-part1
> S: disk/by-partlabel/EFI\x20System\x20Partition
> S: disk/by-partuuid/13e09633-6c8c-4d2a-a1e1-8d265430ffbd
> S: disk/by-path/pci-0000:6e:00.0-nvme-1-part1
> S: disk/by-uuid/05CE-D2F4
> E: DEVLINKS=/dev/disk/by-partuuid/13e09633-6c8c-4d2a-a1e1-8d265430ffbd
> /dev/disk/by-id/nvme-INTEL_SSDPEKKF360G7H_BTPY72200WPY360E-part1
> /dev/disk/by-partlabel/EFI\x20System\x20Partition /dev/disk/by-
> path/pci-0000:6e:00.0-nvme-1-part1 /dev/disk/by-uuid/05CE-D2F4
> /dev/disk/by-id/nvme-eui.0000000001000000e4d25cf3cccc4d01-part1
> E: DEVNAME=/dev/nvme0n1p1
> E:
> DEVPATH=/devices/pci0000:00/0000:00:1d.0/0000:6e:00.0/nvme/nvme0/nvme0n
> 1/nvme0n1p1
> E: DEVTYPE=partition
> E: ID_FS_TYPE=vfat
> E: ID_FS_USAGE=filesystem
> E: ID_FS_UUID=05CE-D2F4
> E: ID_FS_UUID_ENC=05CE-D2F4
> E: ID_FS_VERSION=FAT32
> E: ID_MODEL=INTEL SSDPEKKF360G7H
> E: ID_PART_ENTRY_DISK=259:0
> E: ID_PART_ENTRY_NAME=EFI\x20System\x20Partition
> E: ID_PART_ENTRY_NUMBER=1
> E: ID_PART_ENTRY_OFFSET=2048
> E: ID_PART_ENTRY_SCHEME=gpt
> E: ID_PART_ENTRY_SIZE=1048576
> E: ID_PART_ENTRY_TYPE=c12a7328-f81f-11d2-ba4b-00a0c93ec93b
> E: ID_PART_ENTRY_UUID=13e09633-6c8c-4d2a-a1e1-8d265430ffbd
> E: ID_PART_TABLE_TYPE=gpt
> E: ID_PART_TABLE_UUID=7b1cda40-6708-4f3a-9045-c6d582bdb161
> E: ID_PATH=pci-0000:6e:00.0-nvme-1
> E: ID_PATH_TAG=pci-0000_6e_00_0-nvme-1
> E: ID_SERIAL=INTEL SSDPEKKF360G7H_BTPY72200WPY360E
> E: ID_SERIAL_SHORT=BTPY72200WPY360E
> E: ID_WWN=eui.0000000001000000e4d25cf3cccc4d01
> E: MAJOR=259
> E: MINOR=1
> E: PARTN=1
> E: PARTNAME=EFI System Partition
> E: SUBSYSTEM=block
> E: TAGS=:systemd:
> E: UDISKS_IGNORE=1
> E: USEC_INITIALIZED=1422073
> 
> 
> I'm assuming that the smartphone's DEVNAME is /dev/nvme0n1p1 so my
> entry in the /etc/udev/rules.d/80-Xiaomi_Backup.rules file looks like
> this:
> 
> SUBSYSTEM=="usb", ACTION=="add",
> ENV{DEVNAME}=="/dev/nvme0n1p1",  RUN+="/home/jo
> hn/xiaomiBackup.sh"
> 
> I then ran:
> 
> $ sudo udevadm control --reload
> 
> and then connected my phone.
> 
> The /home/john/xiaomiBackup.sh file should touch a file but it doesn't
> when I connect my phone. It does if I run the script as myself or root.
> 
> I'm wondering if I'm misinterpreting the DEVNAME environment variable?
> 
> Many thanks in advance for any help.
> 
> 
> John.
> 
> 
> On Tue, 2019-01-15 at 18:16 +1100, Brenton Ross via linux wrote:
>> You may need to set up a udev rule.
>>
>> Here is an intro;
>> https://www.tecmint.com/udev-for-device-detection-management-in-linux/
>>
>> Brenton
>>
>> On Tue, 2019-01-15 at 14:32 +1100, jhock via linux wrote:
>>> Hi all,
>>>
>>> I have written a quick bash script to backup my smartphone using
>>> the
>>>
>>> `adb backup -all -apk -obb -shared -f $fileName`
>>>
>>> command. I would like to automatically run this script on the event
>>> of
>>> connecting my smartphone. Can anyone tell me how to run a script or
>>> prompt me to run a script on the connection of a smartphone via
>>> cable?
>>>
>>> Thanks in advance for any help.
>>>
>>>
>>> John.
>>>
>>>
>>>
> 
> 




More information about the linux mailing list