Правила udev

2010-03-01 Пенетрантность Сергей С .
Приветствую всех!
Не могу понять почему на отрабатывает скрипт на remove, хотя при этом
отрабатывает на add.


1) /etc/udev/rules.d/010_test_remount_add.rules :

BUS==usb, SUBSYSTEM==block, KERNEL==sd[a-z][0-9], GROUP==disk,
ACTION==add, NAME=%k, RUN+=/usr/local/bin/mount_test.sh add %k
BUS==usb, SUBSYSTEM==block, KERNEL==sd[a-z][0-9], GROUP==disk,
ACTION==remove, NAME=%k, RUN+=/usr/local/bin/mount_test.sh remove %k



2) mount_test.sh :

#!/bin/sh

MOUNT_DIR=/home/user/mount_dir

sleep 3

  if [ $1 == add ]; then

 if [ -d $MOUNT_DIR ]; then
FLASH_DEV =`echo $2 | sed -n '/^sd[a-z][1-9]\?/p'`
/bin/mount -t vfat /dev/$FLASH_DEV $MOUNT_DIR -o
flush,rw,gid=disk,umask=007,iocharset=utf8
 else
mkdir $MOUNT_DIR
chown user:user $MOUNT_DIR
chmod 775 $MOUNT_DIR
FLASH_DEV=`echo $1 | sed -n '/^sd[a-z][1-9]\?/p'`
mount /dev/$FLASH_DEV $MOUNT_DIR -o
flush,rw,gid=disk,umask=007,iocharset=utf8
 fi

   elif [ $1 == remove ]; then

 /bin/umount /dev/$2
   fi

exit 0


Re: Правила udev

2010-03-01 Пенетрантность DamirX
В Втр, 02/03/2010 в 11:39 +0600, Сергей С. пишет:
 Приветствую всех!
 Не могу понять почему на отрабатывает скрипт на remove, хотя при этом
 отрабатывает на add.
 
 1) /etc/udev/rules.d/010_test_remount_add.rules :
 
 BUS==usb, SUBSYSTEM==block, KERNEL==sd[a-z][0-9], GROUP==disk,
 ACTION==add, NAME=%k, RUN+=/usr/local/bin/mount_test.sh add %k
 BUS==usb, SUBSYSTEM==block, KERNEL==sd[a-z][0-9], GROUP==disk,
 ACTION==remove, NAME=%k, RUN+=/usr/local/bin/mount_test.sh remove
 %k
 
 
 
 2) mount_test.sh :
 
 #!/bin/sh
 
 MOUNT_DIR=/home/user/mount_dir
 
 sleep 3
Насколько мне помниться - этот скрипт должен работать как можно
быстрее...
 
   if [ $1 == add ]; then
 
  if [ -d $MOUNT_DIR ]; then
 FLASH_DEV =`echo $2 | sed -n '/^sd[a-z][1-9]\?/p'`
 /bin/mount -t vfat /dev/$FLASH_DEV $MOUNT_DIR -o
 flush,rw,gid=disk,umask=007,iocharset=utf8
  else
 mkdir $MOUNT_DIR
 chown user:user $MOUNT_DIR
 chmod 775 $MOUNT_DIR
 FLASH_DEV=`echo $1 | sed -n '/^sd[a-z][1-9]\?/p'`
 mount /dev/$FLASH_DEV $MOUNT_DIR -o
 flush,rw,gid=disk,umask=007,iocharset=utf8
  fi
 
elif [ $1 == remove ]; then
 
  /bin/umount /dev/$2
# интересно, какой смысл отмонтировать ФС если блочный девайс уже
ИЗВЛЕЧЕН!?
fi
 
 exit 0
 
 
 
ЗЫЖ да и вообще - фигня это всё!

-- 
DamirX


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/1267509222.887.12.ca...@everest.agg



Re: Правила udev

2010-03-01 Пенетрантность Сергей С .
Насколько мне помниться - этот скрипт должен работать как можно
быстрее...

Этот момент можно пропустить. Важен факт отмонтирования.

интересно, какой смысл отмонтировать ФС если блочный девайс уже
ИЗВЛЕЧЕН!?

Если не выполнить отмонтирование, то следующий девайс попытается
примонтироваться в туже дирректорию +
получит новое имя устройства sd[a-z][0-9], а их не так уж и много.


2 марта 2010 г. 11:53 пользователь DamirX damir.haki...@gmail.com написал:

 В Втр, 02/03/2010 в 11:39 +0600, Сергей С. пишет:
  Приветствую всех!
  Не могу понять почему на отрабатывает скрипт на remove, хотя при этом
  отрабатывает на add.
 
  1) /etc/udev/rules.d/010_test_remount_add.rules :
 
  BUS==usb, SUBSYSTEM==block, KERNEL==sd[a-z][0-9], GROUP==disk,
  ACTION==add, NAME=%k, RUN+=/usr/local/bin/mount_test.sh add %k
  BUS==usb, SUBSYSTEM==block, KERNEL==sd[a-z][0-9], GROUP==disk,
  ACTION==remove, NAME=%k, RUN+=/usr/local/bin/mount_test.sh remove
  %k
 
 
 
  2) mount_test.sh :
 
  #!/bin/sh
 
  MOUNT_DIR=/home/user/mount_dir
 
  sleep 3
 Насколько мне помниться - этот скрипт должен работать как можно
 быстрее...
 
if [ $1 == add ]; then
 
   if [ -d $MOUNT_DIR ]; then
  FLASH_DEV =`echo $2 | sed -n '/^sd[a-z][1-9]\?/p'`
  /bin/mount -t vfat /dev/$FLASH_DEV $MOUNT_DIR -o
  flush,rw,gid=disk,umask=007,iocharset=utf8
   else
  mkdir $MOUNT_DIR
  chown user:user $MOUNT_DIR
  chmod 775 $MOUNT_DIR
  FLASH_DEV=`echo $1 | sed -n '/^sd[a-z][1-9]\?/p'`
  mount /dev/$FLASH_DEV $MOUNT_DIR -o
  flush,rw,gid=disk,umask=007,iocharset=utf8
   fi
 
 elif [ $1 == remove ]; then
 
   /bin/umount /dev/$2
 # интересно, какой смысл отмонтировать ФС если блочный девайс уже
 ИЗВЛЕЧЕН!?
 fi
 
  exit 0
 
 
 
 ЗЫЖ да и вообще - фигня это всё!

 --
 DamirX


 --
 To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
 with a subject of unsubscribe. Trouble? Contact
 listmas...@lists.debian.org
 Archive: http://lists.debian.org/1267509222.887.12.ca...@everest.agg




Re: Правила udev

2010-03-01 Пенетрантность Artem Chuprina
Сергей С. - debian-russian@lists.debian.org  @ Tue, 2 Mar 2010 11:39:27 +0600:

 СС Приветствую всех!
 СС Не могу понять почему на отрабатывает скрипт на remove, хотя при этом
 СС отрабатывает на add.

Не отрабатывает - это не запускается или не отмонтирует?  Если
второе, то видимо, man umount на предмет -f, -l и, может быть, -i.

Но вообще да, идея отмонтировать после выдергивания устройства - она,
гм, мина замедленного действия.  На FAT, конечно, не столь FATально, как
на более толковых файловых системах, но все же...

Кстати, в скрипте в ветке, когда add и директория не существует,
ошибка.  Вместо $1 должно быть $2.

А все почему?  А все потому, что код монтирования дублировать не надо.

 СС 1) /etc/udev/rules.d/010_test_remount_add.rules :

 СС BUS==usb, SUBSYSTEM==block, KERNEL==sd[a-z][0-9], GROUP==disk,
 СС ACTION==add, NAME=%k, RUN+=/usr/local/bin/mount_test.sh add %k
 СС BUS==usb, SUBSYSTEM==block, KERNEL==sd[a-z][0-9], GROUP==disk,
 СС ACTION==remove, NAME=%k, RUN+=/usr/local/bin/mount_test.sh remove %k



 СС 2) mount_test.sh :

 СС #!/bin/sh

 СС MOUNT_DIR=/home/user/mount_dir

 СС sleep 3

 СС   if [ $1 == add ]; then

 СС  if [ -d $MOUNT_DIR ]; then
 СС FLASH_DEV =`echo $2 | sed -n '/^sd[a-z][1-9]\?/p'`
 СС /bin/mount -t vfat /dev/$FLASH_DEV $MOUNT_DIR -o
 СС flush,rw,gid=disk,umask=007,iocharset=utf8
 СС  else
 СС mkdir $MOUNT_DIR
 СС chown user:user $MOUNT_DIR
 СС chmod 775 $MOUNT_DIR
 СС FLASH_DEV=`echo $1 | sed -n '/^sd[a-z][1-9]\?/p'`
 СС mount /dev/$FLASH_DEV $MOUNT_DIR -o
 СС flush,rw,gid=disk,umask=007,iocharset=utf8
 СС  fi

 ССelif [ $1 == remove ]; then

 СС  /bin/umount /dev/$2
 ССfi

 СС exit 0


-- 
To UNSUBSCRIBE, email to debian-russian-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/54750...@wizzle.ran.pp.ru