hello dirvish users and developers
i am an excessive dirvish user and think about implementing some improvements.
please let me known your opinion about the following ideas:
###################
# mail generation #
###################
#Background#
a good backup runs automatically and informs you only about the state. the best
backup is useless if it fails silently.
#Current state#
no real good reporting mechanism is implemented, many dirvish users implement
their own mechanism, partly by greping through the vaults and log files
(complicated for new users and error prone)
#Target state#
dirvish generates an configurable mail content, listing all vaults and
vault-details like the table below:
vault runtime files status
blue-etc 1h 24min 0 success
blue-home 4min 22s 29 success
blue-svn 2min 34s 0 success
emma-dat 1min 7s 0 error xy
emma-etc 16s 0 success
the columns of the table can be selected by the master.conf
report:
vault
runtime
files
status
please let me known which columns you need and which are important
the column order is defined by the config order - the sorting of the rows need
to be discussed.
an option in the master.conf can define an "mail" hook like "pre-client",
"pre-server" etc..., which is used to send the mail and generate the subject
line user specific. for this several variables are passed $STATE and
$MAIL_FILE, with the return value of all "dirvish" commands and a path the mail
file
#implementation#
i think this feature can only work with dirvish-runall:
- dirvish-runall has to create a file at a configured place, with a
configured name (configurable by master.conf)
- dirvish-runall generates the header of the table and passes the filename of
the report file to the dirvish command
- dirvish-runall invokes the mail hook, which sends the mail
#options#
OPT1: dirvish-runall could invoke also "dirvish-expire" and pass the report
file to it. "dirvish-expire" also reports to the file, possibly better formated
then in the current implementation. naturally the invokation of dirvish-expire
is an option of dirvish-runall defined within the master.conf and/or by a
command line option
########################################
# dirvish-runall runs dirvish parallel #
########################################
#current state#
dirvish-runall process all vaults like listed in master.conf under "runall:".
this not fine, if you backup over a speed-limited and not so reliable
connection. a "big" backup in the middle of the list blocks "small" backups at
the end. especially if the connection is lost.
#target state#
all vaults within the "runall"-list are processed parallel, the maximum number
of processes can be limited by an option in master.conf. for instance
"runall-parallel: 3"
with "runall-parallel: 1" its the same like before
with "runall-parallel: 5" five vaults are backuped parallel at maximum, and if
there are two "big" ones - no problem
with "runall-parallel: -1" every "dirvish" command gets its own process
#implementation#
should be no problem with the perl "fork" and "wait" functions
the "mail" generation could also be done - but sorting is an issue!
"runall-parallel: 1" should stay default for backward compatibility
####################################
# selectable interpreter for hooks #
####################################
#current state#
there are 4 hooks "pre-server", "pre-client", "post-client" and "post-server"
these commands are executed by /bin/sh
#target state#
an master.conf option defines the interpreter /bin/bash -c or /bin/whatever
--option
#implementation#
should be no problem
the variables like "$DIRVISH_IMAGE" could be replaced by the value directly by
"sed" (the perl one)
/bin/sh should stay default for backward compatibility
#########################################
# dirvish-runall vaults on command line #
#########################################
#current state#
dirvish-runall executes dirvish on all vaults within master.conf and "runall:"
if you split your backup, for instance in daily backups and weekly backups, you
have to do one the invokations by hand
#target state#
a command like "dirvish-runall /srv/backup/daily/*" executes dirvish on all
vaults in "/srv/backup/daily/"
a command like "dirvish-runall /srv/backup/weekly/*" executes dirvish on all
vaults in "/srv/backup/weekly/"
a command like "dirvish-runall" executes dirvish on all vaults specified in
master.conf
#implementation#
adjust the command line option scanning
#####################
# summary #
#####################
i am willing to implement these features - who whats to update the documentation
thanks for your feedback
jacki
--
GMX FreeMail: 1 GB Postfach, 5 E-Mail-Adressen, 10 Free SMS.
Alle Infos und kostenlose Anmeldung: http://www.gmx.net/de/go/freemail
_______________________________________________
Dirvish mailing list
[email protected]
http://www.dirvish.org/mailman/listinfo/dirvish