Benutzer-Werkzeuge

Webseiten-Werkzeuge


doku:iwatch

iwatch

Beschreibung: iwatch ist ein Programm zur Dateisystemüberwachung in Echtzeit mit inotify. Es informiert per E-Mail oder/und via Syslog und kann Kommandos ausführen.

Weitere Infos:
http://wiki.debianforum.de/Iwatch
http://iwatch.sourceforge.net/index.html


iwatch synchronisiert Verzeichnisse mit rsync

Ich wollte schon immer mal für die Arduino IDE automatisch eine Sicherung erstellen sodass ich auf alte Versionen zurückgreifen kann. Natürlich könnte man das mit z.B. git hinbekommen, aber ich wollte es sehr einfach halten, ohne sich grossartig in git einlesen zu müssen. Mit iwatch habe ich das nun hingekommen.

So geht's:

apt-get install iwatch rsync

Config File /etc/iwatch/iwatch-rsync.xml

<?xml version="1.0" ?>
<!DOCTYPE config SYSTEM "/etc/iwatch/iwatch.dtd" >

<!-- iWatch configuration -->

<config charset="utf-8">
  <guard email="root@localhost" name="iwatch"></guard>
<watchlist>
   <title>Arduino: rsync</title>
   <contactpoint email="root@localhost" name="iwatch"></contactpoint>
   <path type="recursive" alert="off" syslog="on" events="default" exec="/usr/bin/rsync -a --delete --backup --backup-dir=/home/smicha/BACKUP/Arduino/backup/$(date '+%y%m%d-%H%M%S-%N') /home/smicha/Arduino/ /home/smicha/BACKUP/Arduino/copy/">/home/smicha/Arduino</path>
    <path type="regexception">.*\.zip$</path>
    <path type="regexception">.*\.tmp$</path>
    <path type="regexception">.*\.swp$</path>
  </watchlist>
</config>

Was macht die Config genau?
Es wird überwacht, ob im Verzeichnis „/home/smicha/Arduino“ eine „Dateiänderung stattfindet. Sobald man eine neue Datei in diesem Verzeichnis erzeugt, löscht oder verändert und die Änderungen auf die Platte geschrieben werden, führt iwtach den rsync Befehl aus. Dabei wird das ganze Verzeichnis “/home/smicha/Arduino/„ nach “/home/smicha/BACKUP/Arduino/copy„ kopiert. Diese beiden Verzeichnisse eigentlich immer synchron.
Dateien die rsync aus dem Verzeichnis “/home/smicha/BACKUP/Arduino/copy„ löscht (–delete) werden im Verzeichnis “/home/smicha/BACKUP/Arduino/backup/$(date '+%y%m%d-%H%M%S-%N')„ abgelegt. Somit geht nichts verloren und man kann auf alle alten Datei Versionen zurückgreifen.

Jetzte muss man iwatch nur noch starten und iwatch kann mit der Arbeit beginnen.

/usr/bin/iwatch -d -f /etc/iwatch/iwatch-rsync.xml

Am besten fügt man noch in der Datei “/etc/rc.local„ den Befehl ein, dann läuft iwatch auch gleich nach dem Reboot.


iwatch verschickt Files per fexsend

Noch ein cooles Feature habe ich mit iwatch gebaut.
In der Arduino IDE kann man mit „Archive Sketch“, ZIP Files des aktuellen Porjekt erstellen. Darin sind alle Code-Files vom Projekt enthalten. Praktisch wäre es doch, wenn man diese automatisch z.B. mit fexsend verschicken könnte. Das ist mit iwatch kein Problem.

So geht's:
Config File /etc/iwatch/iwatch-fexsend.xml

<?xml version="1.0" ?>
<!DOCTYPE config SYSTEM "/etc/iwatch/iwatch.dtd" >

<!-- iWatch configuration -->

<config charset="utf-8">
  <guard email="root@localhost" name="iwatch"></guard>
<watchlist>
   <title>Arduino: send zip files</title>
   <contactpoint email="root@localhost" name="iwatch"></contactpoint>
   <path type="single" alert="off" filter=".*\.zip$" syslog="on" events="close_write" exec="/usr/bin/fexsend -K -k 365 %f user@domain">/home/smicha/Arduino</path>
  </watchlist>
</config>

Hier triggert iwatch* nur auf “.zip„ Files, wenn sie „komplett“ auf die Platte geschrieben wurden (Fokus ist hier wieder das Verzeichnis „home/smicha/Arduino“). iwatch führt dann den fexsend Befehl aus. Somit wird immer, wenn ein „Archive Sketch“ erstellt wird, das ZIP-File in den F*EX Account verschickt. Auch hier muss man iwatch** mit dem Config File starten.

/usr/bin/iwatch -d -f /etc/iwatch/iwatch-fexsend.xml

Viel Spass damit

Michael Schleicher 2014/08/08 21:29

doku/iwatch.txt · Zuletzt geändert: 2014/08/08 22:16 von smicha

Seiten-Werkzeuge

Deine IP ist 35.175.182.106