Importer automatiquement les photos de son APN sous Debian

udev


L’objectif de cet article est d’importer automatiquement les photos contenus dans les cartes mémoires venant de mon APN. Pour cela, il va falloir pouvoir différencier les cartes de mon APN des autres cartes mémoires, nous allons faire cela grâce à udev.

Pour commencer, nous allons mettre la carte mémoire et chercher le device affecté à celle ci

$ tail -f /var/log/messages
Oct 22 23:19:44 perhonen kernel: [ 1355.344642] sd 6:0:0:0: [sdd] 15523840 512-byte logical blocks: (7.94 GB/7.40 GiB)
Oct 22 23:19:44 perhonen kernel: [ 1355.346251] sdd: sdd1

Nous voyons qu’ici, la carte est connu sous /dev/sdd, elle ne contient qu’une seule partition /dev/sdd1, c’est celle-ci qui nous intéresse.

Pour la suite, nous utiliserons le label de la partition afin d’identifier la carte SD. Pour mettre en place ce label, vous pouvez vous référer à l’article Gérer le label d’une partition FAT32.

Pour finir, nous allons créer le fichier de règles udev /etc/udev/rules.d/z90-pictures-import.rules qui demandera l’exécution d’un script d’importation à l’insertion d’une carte contenant le label EOS_DIGITAL :

SUBSYSTEM=="block", ENV{ID_FS_LABEL}=="EOS_DIGITAL", SYMLINK+="sdcard"
SUBSYSTEM=="block", ENV{ID_FS_LABEL}=="EOS_DIGITAL", ACTION=="add", RUN+="/usr/local/sbin/pictures-import.sh"

Le nom du fichier a une grande importance car c’est lui qui définit l’ordre d’exécution des règles udev, le fichier commence donc par la lettre z afin d’être exécuter en dernier. De plus, il est définit par l’extension .rules car seul les fichiers ayant cette extension sont exécutés par udev.

Le fichier de règle précédent, créer un lien /dev/sdcard (règle 1) vers la carte mémoire et demande d’exécuter le script /usr/local/sbin/pictures-import.sh (règle 2), ci-dessous :

#!/bin/sh
source = "/tmp/sdcard"
target = "/home/data/Images"
if [ "${ACTION}" = "add" ]; then
    rm -rf $source
    mkdir $source
    mount -t vfat /dev/sdcard $source
    mkdir -p $target
    cp $source/* $target/
    umount $source

Ce script est un exemple vous pouvez le remplacer par un de votre composition, un autre article présentera mon mien qui classe mes photos tout seul.

Si vous voulez voir les règles udev exécutées sur votre carte, utilisez la commande suivantes :

# udevadm test -a -p /sys/block/sdd/sdd1

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.