Pythontr

husonet | Tarih: 23.02.2015

Linux Debian, Auto Mount Usb Disk, Flash Bellek

Usb diskimi yada flash belleğimi nasıl tak çıkar kullanabilirim.

Gerekli paketler
aptitude install udev

Disklerimizi takalım ve durumuna bakalım.
fdisk -l
.....
Device Boot Start End Blocks Id System
/dev/sdc1 * 63 1953520064 976760001 7 HPFS/NTFS/exFAT
.....
Device Boot Start End Blocks Id System
/dev/sdb1 2048 1953521663 976759808 7 HPFS/NTFS/exFAT
.....


İki adet usb diskimiz var ve bunların tak çıkar şekilde çalışmasını istiyoruz.
Takılan diskle ilgili gerekli info yani bilgilere erişelim.
udevadm info --query all --path /sys/block/sdc/sdc1/ --attribute-walk

Usb diskimiz yada flash diskimiz he ne olursa olsun bu makinamıza takıldığı zaman sistemin otomatik tanıması için rules dosyası tanımlayalım.


vim /etc/udev/rules.d/usb.rules
KERNEL=="sd??", SUBSYSTEM=="block", DRIVERS=="usb", ATTRS{serial}=="20041101XXXXXX", SYMLINK+="yedekdisk"

Model uzerinden de yapabilirsiniz.


ATTRS{vendor}=="SanDisk ", ATTRS{model}=="Cruzer Edge     ", SYMLINK+="yedekdisk"

Yaptığımız değişikliklerin etkin olması için servisi restart yapalım.


/etc/init.d/udev restart

Ardından usb diskimizi çıkartıp tekrar takalım. Yaptığımız değişiklikler etkinmi kontrol edelim? Erişim gerçekleşiyorsa her şey yolunda demektir.


ls -ail /dev/yedekdisk

Peki şimdi diskimizi taktığımız zaman otomatik olarak mount etmesini sağlayacak scriptimizi yazalım!


vim /root/scripts/autoscript.sh
#!/bin/bash

#-----------------------------------------------------------------------
#
# Huseyin OZDEMIR
# Husonet
# 24.02.2015
# Bu scrip UDEV tarafindan cagrilir
# Bu script otomatik mount islemi yapar ve hedef alinan klasoru yedekler
#
#-----------------------------------------------------------------------

# log alalim
/usr/bin/logger Yedek - Baslama tarihi at `date`
# mount edilecek klasor yoksa olusturalim
if [ ! -d /mnt/yedekdisk ] ; then mkdir /mnt/yedekdisk ; fi
# mount
/bin/mount -t ntfs-3g /dev/yedekdisk /mnt/yedekdisk
/usr/bin/logger Yedek - www
# yedek alinacak klasor
/usr/bin/rsync -rtv --del --modify-window=2 /home/huso/scripts /mnt/yedekdisk
# umount etmeden once sync yapalim
/bin/sync
# umount
/bin/umount /mnt/yedekdisk
/usr/bin/logger Yedek - Bitis tarihi at `date`

Son olarak ta scriptimizi çağırması için udev rules dosyamızı ayarlayalım.


vim /etc/udev/rules.d/usb.rules
ATTRS{vendor}=="SanDisk ", ATTRS{model}=="Cruzer Edge ", SYMLINK+="yedekdisk", RUN+="/root/scripts/autoscript.sh"

Diskimizi yada flash diskimizi taktığımız zaman otomatik olarak scriptimiz çalışacaktır.