staging.inyokaproject.org

Debian Skript soll nicht bei bestimmter Bedingung starten

Status: Gelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

Taomon Team-Icon

Supporter
Avatar von Taomon

Anmeldungsdatum:
30. Januar 2011

Beiträge: 8463

Ich habe eine udev-regel und Systemd-Unit, die anspringt sobald ein USB-Stick angeschlossen wird, clamscan startet. Das funktioniert auch gut. Leider auch bei meiner Backup-Platte die über USB angeschlossen ist.

root@Taomon:~# cat /etc/udev/rules.d/bb-clamtk.rules 
KERNEL=="sd[b-z]*", SUBSYSTEMS=="usb", TAG+="systemd", ENV{SYSTEMD_WANTS}="clamtk.service"

die clamtk unit

root@Taomon:~# cat /etc/systemd/system/clamtk.service 
[Unit]
Description=clamtk 
 
Requires=dev-media0.device
 

[Service]
Type=simple 
User=alex
ExecStart=/bin/bash -c "/usr/local/bin/clam"
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=15s


root@Taomon:~# 

und dazu

root@Taomon:~# cat /usr/local/bin/clam 
#!/bin/bash 
#clamscan for usb-Sticks
/usr/bin/clamscan -r -z /media/alex && /usr/bin/aplay -q /home/alex/.wine/drive_c/Programme/Enterbrain/RPG2003/RTP/Sound/wave1.wav 

Wie krieg ich das hin, das das Skript wenn der Mountpoint /media/debianhome beim Anschluß meiner Backup-Platte sich komplett beendet. Udev-Regel dazu

root@Taomon:~# cat /etc/udev/rules.d/99-Backup-home.rules 
KERNEL=="sd*[0-9]", SUBSYSTEM=="block", GROUP="disk", MODE="0664",  TAG+="systemd", ENV{ID_FS_LABEL}=="debianhome", ENV{UDISKS_FILESYSTEM_SHARED}="1",  ENV{SYSTEMD_WANTS}="backup-home-skript"

Gruß Taomon

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5584

Manpage lesen oder eine Suchmaschine verwenden: --exclude / --exclude-dir, nimmt eine regex entgegen. Beispiel: http://lists.clamav.net/pipermail/clamav-users/2014-June/000531.html

In deinem Fall: --exclude-dir=^/media/debianhome$

Taomon Team-Icon

Supporter
(Themenstarter)
Avatar von Taomon

Anmeldungsdatum:
30. Januar 2011

Beiträge: 8463

ich habe mich für die regex-varinate entschieden.

root@Taomon:~# cat /usr/local/bin/clam 
#!/bin/bash 
#clamscan for usb-Sticks
/usr/bin/clamscan --exclude=/debian --exclude=/dvd -r -z /media/alex && /usr/bin/aplay -q /home/alex/.wine/drive_c/Programme/Enterbrain/RPG2003/RTP/Sound/wave1.wav 

Danke Taomon

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5584

Beachte, dass das (so wie du es umgesetzt hast) jegliche Verzeichnisse auschliesst (auch in untergeordneteten Verzeichnissen), die mit debian oder dvd beginnen.

Taomon Team-Icon

Supporter
(Themenstarter)
Avatar von Taomon

Anmeldungsdatum:
30. Januar 2011

Beiträge: 8463

Muß ich wieder aufmachen. Nicht ganz was ich brauch. das Skript muß sich komplett beenden, so läuft die Unit und clamscan, und erzählt das eben die Verzeichnisse excludet sind. und blockieren mein backups-Skript.

Gruß Taomon

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5584

Taomon schrieb:

und blockieren mein backups-Skript.

Erlaeutere

seahawk1986

Anmeldungsdatum:
27. Oktober 2006

Beiträge: 11278

Probier mal die udev-Regel enger zu fassen - da sollte sich doch z.B. die Seriennummer der Backup-Platte oder die Kombination aus Vendor- und Produkt-ID gezielt ausschließen lassen (!= testet auf Ungleichheit)

sebix Team-Icon

Ehemalige

Anmeldungsdatum:
14. April 2009

Beiträge: 5584

seahawk1986 schrieb:

Probier mal die udev-Regel enger zu fassen - da sollte sich doch z.B. die Seriennummer der Backup-Platte oder die Kombination aus Vendor- und Produkt-ID gezielt ausschließen lassen (!= testet auf Ungleichheit)

Bringt aber nix, wenn neben der Backupplatte noch ein weiteres Geraet angeschlossen wird, denn die clamtk-Unit scannt immer das komplette /media/alex durch. Man kann ueber udev und systemd den Geraetenamen als Parameter durchreichen: https://superuser.com/a/925103/317140

Taomon Team-Icon

Supporter
(Themenstarter)
Avatar von Taomon

Anmeldungsdatum:
30. Januar 2011

Beiträge: 8463

Ich habe 2 Backup-Platten mit 3 Partitonen, die gleich glabelt sind. debianhome,debianroot,dvd. Bisjetzt habe ich nur eine Udev-Regle geschrieben die die Partiton mit Label debianhome nach /media/debianhome mountet und zugleich die Unit

root@Taomon:~# cat /etc/systemd/system/backup-home-skript.service 
[Unit]
Description=backup-home-skript 
RequiresMountsFor=/media/debianhome
After=media-debianhome.mount

[Service]
Type=simple
User=alex
ExecStart=/usr/local/bin/backup-home-skript
ExecReload=/bin/kill -HUP $MAINPID
Restart=on-failure
RestartSec=15s

 


root@Taomon:~# 

triggert. Die anderen 2 Partitonen werden nach /media/$USER/Lablename eingebunden. Bevor ich clamscan eingerichtet habe sprang bei Anschluß meiner Backup-Platten das Backup-Skript für /media/debianhome an. Ich geh nochmal an die Udev-Regel zurück wie seahawk1986 vorschlug zurück.

Gruß Taomon

Taomon Team-Icon

Supporter
(Themenstarter)
Avatar von Taomon

Anmeldungsdatum:
30. Januar 2011

Beiträge: 8463

Nö, springt trotz geänderter Udev-Regel an.

root@Taomon:~# cat /etc/udev/rules.d/bb-clamtk.rules 
KERNEL=="sd[b-z]*", SUBSYSTEMS=="usb", ENV{ID_FS_LABEL}!="debianroot", ENV{ID_FS_LABEL}!="dvd", ENV{ID_FS_LABEL}!="debianhome", TAG+="systemd", ENV{SYSTEMD_WANTS}="clamtk.service"

udevabfragen

Gruß Taomon

P.S. Schreibfehler in Udev-Regel eleminiert. Leider starten jetzt beide Units. backup-home-skript

root@Taomon:~# systemctl status backup-home-skript.service 
● backup-home-skript.service - backup-home-skript
   Loaded: loaded (/etc/systemd/system/backup-home-skript.service; static)
   Active: active (running) since So 2017-08-13 10:32:11 CEST; 2min 26s ago
 Main PID: 7751 (backup-home-skr)
   CGroup: /system.slice/backup-home-skript.service
           ├─7751 /bin/bash /usr/local/bin/backup-home-skript
           ├─7778 rsync -aAXEovvchx --ignore-existing --verbose --exclude=/home/alex/iso-image/ --exclude=/home/alex/.cache/ --e...
           └─7780 rsync -aAXEovvchx --ignore-existing --verbose --exclude=/home/alex/iso-image/ --exclude=/home/alex/.cache/ --e...

Aug 13 10:32:11 Taomon systemd[1]: Starting backup-home-skript...
Aug 13 10:32:11 Taomon systemd[1]: Started backup-home-skript.

clamtk

● clamtk.service - clamtk
   Loaded: loaded (/etc/systemd/system/clamtk.service; static)
   Active: active (running) since So 2017-08-13 10:32:11 CEST; 4min 43s ago
 Main PID: 7741 (clam)
   CGroup: /system.slice/clamtk.service
           ├─7741 /bin/bash /usr/local/bin/clam
           └─7742 /usr/bin/clamscan -r -z /media/alex

Aug 13 10:36:54 Taomon bash[7741]: /media/alex/debianroot/var/lib/dkms/virtualbox/4.3.36/build/vboxdrv/SUPDrvIOC.h: OK
Aug 13 10:36:54 Taomon bash[7741]: /media/alex/debianroot/var/lib/dkms/virtualbox/4.3.36/build/vboxdrv/.built-in.o.cmd: OK
Aug 13 10:36:54 Taomon bash[7741]: /media/alex/debianroot/var/lib/dkms/virtualbox/4.3.36/build/vboxdrv/.vboxdrv.mod.o.cmd: OK
Aug 13 10:36:54 Taomon bash[7741]: /media/alex/debianroot/var/lib/dkms/virtualbox/4.3.36/build/vboxdrv/SUPDrv.c: OK
Aug 13 10:36:54 Taomon bash[7741]: /media/alex/debianroot/var/lib/dkms/virtualbox/4.3.36/build/vboxdrv/version-generated.h: OK
Aug 13 10:36:54 Taomon bash[7741]: /media/alex/debianroot/var/lib/dkms/virtualbox/4.3.36/build/vboxdrv/SUPDrvIDC.h: OK
Aug 13 10:36:54 Taomon bash[7741]: /media/alex/debianroot/var/lib/dkms/virtualbox/4.3.36/build/vboxdrv/SUPDrvSem.o: OK
Aug 13 10:36:54 Taomon bash[7741]: /media/alex/debianroot/var/lib/dkms/virtualbox/4.3.36/build/vboxdrv/generic: Symbolic link
Aug 13 10:36:54 Taomon bash[7741]: /media/alex/debianroot/var/lib/dkms/virtualbox/4.3.36/build/vboxdrv/.vboxdrv.o.cmd: OK
Aug 13 10:36:54 Taomon bash[7741]: /media/alex/debianroot/var/lib/dkms/virtualbox/4.3.36/build/vboxdrv/r0drv: Symbolic link
root@Taomon:~# 

Sorry. 😢

Taomon Team-Icon

Supporter
(Themenstarter)
Avatar von Taomon

Anmeldungsdatum:
30. Januar 2011

Beiträge: 8463

4 graue Haare mehr, aber glaube hingeschludert.

#!/bin/bash

set -e
/bin/sleep 30
if /bin/findmnt | /bin/grep debianhome > /dev/null;then
echo "Backup-Platte gefunden";
exit;
else
/usr/bin/clamscan -r -z /media/alex && /usr/bin/aplay -q /home/alex/.wine/drive_c/Programme/Enterbrain/RPG2003/RTP/Sound/wave1.wav;
fi

mal gucken ob das keine Eintagsfliege ist.

Taomon

P.S Funktioniert, und nach dem ich meine 99-Backup-home.rules zu zz-Backup-home.rules umbenannt habe klappt es auch nach dem Beenden von clamtk das, das Backupskript gestartet wird.

Antworten |