Repwatcher
File event monitoring in watched directories. Accesses to files can be stored in SQL and/or reported by email, dbus local or remote notifications.
Install / Use
/learn @gbe/RepwatcherREADME
This software is under the MIT license.
To contact the author : gregory.bellier -- gmail -- com
Dependencies for Debian/Ubuntu: ocaml ocaml-findlib ocaml-nox ocaml-native-compilers libssl-ocaml-dev libmysql-ocaml-dev libpostgresql-ocaml-dev libinotify-ocaml-dev libdbus-ocaml-dev libdbus-1-dev libocamlnet-ocaml-dev libsyslog-ocaml-dev libcalendar-ocaml-dev
and also the ocaml-fdinfo library version 0.4.1 or above, downloadable: https://github.com/gbe/ocaml-fdinfo
- Please note that you need ocaml-ssl version 0.4.5 or +
- Please note that you need ocaml-mysql version 1.1.1 or +
The Repwatcher database and its "accesses" table are automatically created at Repwatcher server runtime if:
- sql_rdbms is activated in the configuration file
- they do not already exist.
The database name is the one set in the configuration file. However, for your information, this is the accesses table in MySQL syntax:
CREATE TABLE IF NOT EXISTS accesses (
ID int(10) NOT NULL AUTO_INCREMENT,
LOGIN varchar(32) NOT NULL,
USERNAME varchar(256) NOT NULL,
PROGRAM varchar(26) NOT NULL,
PROGRAM_PID int(8) NOT NULL,
PATH varchar(512) NOT NULL,
FILENAME varchar(256) NOT NULL,
FILESIZE bigint(20) unsigned DEFAULT NULL,
FILEDESCRIPTOR int(7) unsigned NOT NULL,
FIRST_KNOWN_OFFSET bigint(20) unsigned DEFAULT NULL,
LAST_KNOWN_OFFSET bigint(20) unsigned DEFAULT NULL,
OPENING_DATE datetime NOT NULL,
CLOSING_DATE datetime DEFAULT NULL,
CREATED tinyint(1) unsigned NOT NULL,
IN_PROGRESS tinyint(1) unsigned NOT NULL,
PRIMARY KEY (ID),
INDEX in_progress_idx (IN_PROGRESS)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
As usual, to clean the sources and build: make clean && make Before running the server, you need to configure the file repwatcher.conf.
If you want remote notifications, you need a CA, private keys and certificates for the server and its clients. You can generate a set with the script in the Certificate folder. The authorisations are not supported yet. It means that somebody will have an access granted if the certificate presented by the client has been signed by the same CA than the server.
You can either run Repwatcher in a "screen" or with "nohup ./rw_server &".
Use the -f argument to tell the server where the configuration file is. It searches by default in the directory rw_server runs.
Don't hesitate to give me some feedbacks.
