Dieser Beitrag wurde vor mehr als drei Monaten veröffentlicht. Bedenke bitte, dass die hier angebotene Information nicht mehr aktuell und gültig sein könnte. Informiere dich daher bitte auch an anderer Stelle über dieses Thema. Sollten sich neue Informationen ergeben haben, so kannst du mich auch gerne auf diese über einen Kommentar hinweisen. Vielen Dank!
„udev überwacht und wertet hotplug-Ereignisse aus. Finden sich dort Informationen über ein neu angeschlossenes Gerät, werden zusätzliche zu diesem Gerät vorhandene Informationen dem sysfs-Dateisystem entnommen und eine neue Gerätedatei im /dev-Verzeichnis erzeugt. Dabei ist der für die spezielle Datei verwendete Name und die Zugriffsberechtigung frei durch Regeln konfigurierbar.“ – wiki
Wir möchten ein Backup auf unseren USB-Stick durchführen, sobald wir diesen mit dem PC verbinden! Dafür müssen wir als erstes einige Infos sammeln, somit schauen wir uns folgnde Datei zeitgleich zum einstecken des USB-Speichers an.
tail -f /var/log/messages
Ausgabe:
Nov 2 22:10:30 suckup-netbook kernel: [13570.309562] scsi 5:0:0:0: Direct-Access USB 2.0 Flash Drive 8.07 PQ: 0 ANSI: 2
Nov 2 22:10:30 suckup-netbook kernel: [13570.320160] sd 5:0:0:0: Attached scsi generic sg2 type 0
Nov 2 22:10:30 suckup-netbook kernel: [13570.338740] sd 5:0:0:0: [sdc] 3938304 512-byte logical blocks: (2.01 GB/1.87 GiB)
Nov 2 22:10:30 suckup-netbook kernel: [13570.339345] sd 5:0:0:0: [sdc] Write Protect is off
Nov 2 22:10:31 suckup-netbook kernel: [13570.342397] sdc:
Nov 2 22:10:31 suckup-netbook kernel: [13570.778378] sd 5:0:0:0: [sdc] Attached SCSI removable disk
cat /proc/partitions
… und ggf. mit dem nächsten Befehl eine neue Partition anlegen.
fdisk /dev/sda
Als nächstes wollen wir nun die spezifischen Infos vom USB-Stick abfragen:
udevadm info -a -p $(udevadm info -q path -n /dev/sdc)
Ausgabe:
looking at parent device ‚/devices/pci0000:00/0000:00:1d.7/usb1/1-3‘:
KERNELS==“1-3″
SUBSYSTEMS==“usb“
DRIVERS==“usb“
[…]
ATTRS{idVendor}==“058f“
ATTRS{idProduct}==“6387″
[…]
ATTRS{manufacturer}==“Generic“
ATTRS{product}==“Mass Storage“
ATTRS{serial}==“9D853A1BCAC440404FEF“
sudo vim /etc/udev/rules.d/80-backup-stick.rules
KERNEL==“sd?“, ATTRS{idVendor}==“058f„, ATTRS{idProduct}==“6387„, ATTRS{serial}==“9D853A1BCAC440404FEF„, SYMLINK+=“backup-stick„, RUN+=“/home/lars/bin/bash/backup-stick.sh ‚Backup‚ ‚to_Stick'“
- ggf. Partition mit angeben: sd?1
- RUN+= -> muss der Pfad zu deinem Skript sein
- idProdukt u.s.w. muss natürlich noch mit den Werten von deinem Stick angepasst werden
sudo /etc/init.d/udev restart
Als nächstes müssen wir ein Skript erstellen, welches auf einem User-Desktop per root eine Pop-Up erzeugen kann…
sudo vim /usr/local/bin/root-notify-send
#!/bin/sh
user=`whoami`
pids=`pgrep -u $user gnome-panel`
title=$1
text=$2
timeout=$3
icon=$4
if [ -z "$title" ]; then
echo You need to give me a title >&2
exit 1
fi
if [ -z "$text" ]; then
text=$title
fi
if [ -z "$timeout" ]; then
timeout=60000
fi
for pid in $pids; do
DBUS_SESSION_BUS_ADDRESS=`grep -z DBUS_SESSION_BUS_ADDRESS \
/proc/$pid/environ | sed -e 's/DBUS_SESSION_BUS_ADDRESS=//'`
if [ -z $icon ]; then
DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS \
notify-send -u low -t $timeout "$title" "$text"
else
DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS \
notify-send -u low -t $timeout -i "$icon" "$title" "$text"
fi
done
sudo chmod +x /usr/local/bin/root-notify-send
vim ~/bin/bash/backup-stick.sh
#!/bin/bash
su lars -c "/bin/bash root-notify-send "$1" "$2" 6000 "/home/lars/Bilder/backup.png""
mount /dev/backupstick /media/backupstick
su lars -c "/usr/bin/rsync -rlptgzu --delete-after /home/lars/bin/ /media/backupstick"
umount /media/backupstick
An dieser Stelle macht sich natürlich ein Bild vom Stick besondes gut. ;-) Dann noch schnell ggf. einige Programme nach-installieren, ein Verzeichnis anlegen und Rechte ändern, fertig!
chmod +x ~/bin/bash/backup-stick.sh
sudo aptitude install libnotify-bin rsync
sudo mkdir /media/backupstick



