
Ich verwende Drag & Drop zum Kopieren und Verschieben von Dateien. Ein Nachteil dabei ist, dass Dateien möglicherweise an den falschen Stellen landen. Nehmen wir also an, ich habe viele Dateien und Ordner an mehrere verschiedene Ziele kopiert/verschoben.
Wie kann ich nachvollziehen, wo alles gelandet ist, um sicherzustellen, dass alles an die richtigen Stellen kopiert/verschoben wurde?
Antwort1
Was Sie verlangen, ist ein „Dateisystem-Watcher“.
ich schaue 
iWatch ist ein Echtzeit-Dateisystemüberwachungsprogramm. Es ist ein einfaches Perl-Skript, um Änderungen in bestimmten Verzeichnissen/Dateien zu überwachen und sofort E-Mail-Benachrichtigungen zu senden. Es liest die Verzeichnis-/Dateiliste aus der XML-Konfigurationsdatei und benötigt Inotify-Unterstützung im Kernel (Linux-Kernel >= 2.6.13).
Es gibt noch mehr, aber dies scheint die einfachste Methode zu sein, ist nativ für Ubuntu und verwendet inotify (so dass es das System nicht überlastet).
iWatch gibt es in zwei Varianten:
- Befehlszeile
- Daemon
Einige Befehlszeilenoptionen zum Protokollieren:
-m <email address>
Specify the contact point's email address. Without this option, iwatch will
not send any email notification.
-s <on|off>
Enable or disable reports to the syslog (default is off/disabled)
Einige Befehlszeilenbeispiele:
iwatch /tmp
Überwachen Sie Änderungen im Verzeichnis /tmp mit Standardereignissen
iwatch -r -e access,create -m cahya@localhost -x /etc/mail /etc
Überwachen Sie nur den Zugriff und erstellen Sie rekursiv Ereignisse im Verzeichnis /etc mit /etc/mail als Ausnahme und senden Sie eine E-Mail-Benachrichtigung an cahya@localhost.
iwatch -r -c "(w;ps -ef)|mail -s '%f was changed' cahya@localhost" /bin
Überwachen Sie das Verzeichnis /bin rekursiv und führen Sie den Befehl aus.
iwatch -r -X '\.svn' ~/projects
Überwachen Sie das Verzeichnis ~/projects rekursiv, schließen Sie jedoch alle darin enthaltenen .svn-Verzeichnisse aus. Dies ist mit der normalen Option „-x“ nicht möglich, da „-x“ nur den definierten Pfad ausschließen kann.
Beispielkonfigurationsdateibei Verwendung des Daemon-Modus. Die Protokollierung erfolgt mit XML-Optionen in der Konfigurationsdatei:
<config>
<guard email="myadmin@localhost" name="IWatch"></guard>
<watchlist>
<title>Public Website</title>
<contactpoint email="webmaster@localhost" name="Web Master"/>
<path type="single">/var/www/localhost/htdocs</path>
<path type="single" syslog="on">/var/www/localhost/htdocs/About</path>
<path type="recursive">/var/www/localhost/htdocs/Photos</path>
</watchlist>
<watchlist>
<title>Operating System</title>
<contactpoint email="admin@localhost" name="Administrator"/>
<path type="recursive">/etc/apache2</path>
<path type="single">/etc/passwd</path>
<path type="recursive">/etc/mail</path>
<path type="exception">/etc/mail/statistics</path>
<path type="single" filter="shadow|passwd">/etc</path>
</watchlist>
<watchlist>
<title>Only Test</title>
<contactpoint email="root@localhost" name="Administrator"/>
<path type="single" alert="off" exec="(w;ps -ef)|mail -s %f
root@localhost">/tmp/dir1</path>
<path type="single" events="access,close" alert="off" exec="(w;ps -ef)|mail -s %f
root@localhost">/tmp/dir2</path>
<path type="single" events="default,access" alert="off" exec="(w;ps -ef)|mail -s '%f is
accessed' root@localhost">/tmp/dir3</path>
<path type="single" events="all_events" alert="off">/tmp/dir4</path>
</watchlist>
</config>
Mit dieser Konfiguration überwacht iWatch ein einzelnes Verzeichnis /var/www/localhost/htdocs
ohne dessen Unterverzeichnisse und alle Benachrichtigungen werden an die Kontaktstelle webmaster@localhost gesendet. Es wird jedoch der gesamte Verzeichnisbaum von überwacht /etc/apache2
, einschließlich aller Unterverzeichnisse, die nach dem Start von IWatch erstellt werden. Sie können hier auch Ausnahmen erstellen, wenn Sie keine Benachrichtigung für eine Datei oder ein Unterverzeichnis innerhalb des überwachten Verzeichnisses erhalten möchten.