You can subscribe to this list here.
2007 |
Jan
(76) |
Feb
(76) |
Mar
(54) |
Apr
(14) |
May
(23) |
Jun
(21) |
Jul
|
Aug
|
Sep
(9) |
Oct
(14) |
Nov
(12) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
|
Feb
(18) |
Mar
(3) |
Apr
|
May
|
Jun
(2) |
Jul
(3) |
Aug
|
Sep
|
Oct
(17) |
Nov
(13) |
Dec
|
2009 |
Jan
(1) |
Feb
(1) |
Mar
(15) |
Apr
(2) |
May
(18) |
Jun
(1) |
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
(1) |
Feb
(5) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(61) |
Dec
|
2011 |
Jan
|
Feb
|
Mar
(18) |
Apr
|
May
|
Jun
(5) |
Jul
|
Aug
(1) |
Sep
(2) |
Oct
(4) |
Nov
(10) |
Dec
(9) |
2012 |
Jan
(10) |
Feb
(23) |
Mar
|
Apr
(5) |
May
(2) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(4) |
2013 |
Jan
(17) |
Feb
(1) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <st...@us...> - 2007-01-26 11:04:59
|
Revision: 298 http://safekeep.svn.sourceforge.net/safekeep/?rev=298&view=rev Author: stelian Date: 2007-01-26 03:04:57 -0800 (Fri, 26 Jan 2007) Log Message: ----------- Fix backup.log marker logic. Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-01-26 04:27:04 UTC (rev 297) +++ safekeep/trunk/safekeep 2007-01-26 11:04:57 UTC (rev 298) @@ -54,8 +54,7 @@ if marker: if line.startswith(marker): marker = None - else: - continue + continue info(line.rstrip()) finally: fin.close() @@ -566,6 +565,9 @@ backup_log = os.path.join(rdiff_logdir, 'backup.log') if os.path.isfile(backup_log): backup_marker = '=== Backup session on %s ===' % time.asctime() + fbm = open(backup_log, 'a') + fbm.write(backup_marker + '\n') + fbm.close() else: backup_marker = None This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-26 04:27:06
|
Revision: 297 http://safekeep.svn.sourceforge.net/safekeep/?rev=297&view=rev Author: dimi Date: 2007-01-25 20:27:04 -0800 (Thu, 25 Jan 2007) Log Message: ----------- Make the keys options more like options rather then mode selectors. This means that any combination of them is now valid as input on the command line. Addition documentation work to match these changes. Modified Paths: -------------- safekeep/trunk/doc/safekeep.txt safekeep/trunk/safekeep Modified: safekeep/trunk/doc/safekeep.txt =================================================================== --- safekeep/trunk/doc/safekeep.txt 2007-01-26 04:09:05 UTC (rev 296) +++ safekeep/trunk/doc/safekeep.txt 2007-01-26 04:27:04 UTC (rev 297) @@ -11,7 +11,7 @@ 'safekeep' --client -'safekeep' --keys [-q] [-v] [--status|--print|--deploy] <clientid>* +'safekeep' --keys [-q] [-v] [--status] [--print] [--deploy] <clientid>* 'safekeep' -h | -V @@ -43,8 +43,8 @@ Each mode accepts a few options as described below. -OPTIONS -------- +OPERATION MODE +-------------- --server:: Selects the server mode (default) @@ -56,6 +56,9 @@ --keys:: Selects the SSH key management mode + +GENERAL OPTIONS +--------------- -h, --help:: Selects the help mode, in which safekeep prints out the online help and exits. @@ -72,6 +75,8 @@ Increases the verbosity level. Can be specified more than once. +SERVER OPTIONS +-------------- -C, --cfg=FILE|DIR:: Specifies the configuration file location. This can be a single file (for a single client configuration) @@ -88,14 +93,20 @@ Specifies the SMTP server used for sending mails when `-e` is used. Defaults to `localhost`. +KEYS OPTIONS +------------ --status:: - (key mode only) Display the key status for the clients. + Display the key status for the clients. It is implied if no other + option is specified. In effect this option prints the steps that + will be taken when the keys are deployed to the client. --print:: - (key mode only) Display the authorization keys for the clients. + Display the authorization keys for the clients. This is useful in + case you want to manually copy it into the client's + `~/.ssh/authorized_keys` file. This option is seldom useful. --deploy:: - (key mode only) Deploy the authorization keys on the clients. + Deploy the authorization keys on the clients. Configuration file ------------------ Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-01-26 04:09:05 UTC (rev 296) +++ safekeep/trunk/safekeep 2007-01-26 04:27:04 UTC (rev 297) @@ -588,7 +588,7 @@ debug('Server backup done') -def do_keys(cfgs, ids, action): +def do_keys(cfgs, ids, status, dump, deploy): matches = [] for cfg in cfgs: id = cfg['id'] @@ -608,13 +608,13 @@ if os.path.isfile(publickeyfile): error('%s: Public key exists %s, but private key is missing. Skipping client.' % (id, publickeyfile)) break - if action is 'print': - print '%s: Key do not exist: %s.' % (id, privatekeyfile) + if dump: + print '%s: Key does not exist: %s.' % (id, privatekeyfile) break - if action is 'status': - print '%s: Key do not exist: %s. Will be generated.' % (id, privatekeyfile) + if status: + print '%s: Key does not exist: %s. Will be generated.' % (id, privatekeyfile) break - elif action is 'deploy': + if deploy: info('%s: Key do not exist, generating it now: %s' % (id, privatekeyfile)) gencmd = 'ssh-keygen -q -b 1024 -t dsa -N "" -C "SafeKeep auto generated key at %s@%s" -f %s' % \ (os.environ['LOGNAME'], os.uname()[1], privatekeyfile) @@ -637,9 +637,9 @@ continue output = '\n'.join(lines) - if action is 'print': + if dump: print output - elif action in ('status', 'deploy'): + if status or deploy: cmd = 'ssh %s@%s "if test -f .ssh/authorized_keys; then cat .ssh/authorized_keys; fi"' % (cfg['user'], cfg['host']) debug(cmd) out = os.popen(cmd, 'r') @@ -655,21 +655,19 @@ else: new_keys.append(this_key) if not new_keys: - if action is 'status': + if status: print '%s: Client is up to date.' % id continue - if action is 'deploy': + if status: + print '%s: Keys will be deployed on the client.' % id + if deploy: cmd = 'ssh %s@%s "umask 077; test -d .ssh || mkdir .ssh; cat >> .ssh/authorized_keys"' % (cfg['user'], cfg['host']) debug(cmd) pipe = os.popen(cmd, 'w') pipe.write('\n'.join([key[4] for key in new_keys])) if pipe.close(): error('Failed to deliver the keys to the client') - elif action is 'status': - print '%s: Keys will be deployed on the client.' % id - else: - assert False, 'Unknown action: %s' % action for id in ids: if id not in matches: @@ -776,7 +774,9 @@ cfglocs = [] verbosity = 0 clientid = None - action = None + keys_status = None + keys_print = None + keys_deploy = None for o, a in opts: if o in ('-C', '--cfg'): cfglocs.append(a) @@ -794,11 +794,11 @@ elif o in ('--keys', ): mode = 'keys' elif o in ('--status', ): - action = 'status' + keys_status = True elif o in ('--print', ): - action = 'print' + keys_print = True elif o in ('--deploy', ): - action = 'deploy' + keys_deploy = True elif o in ('-q', '--quiet'): verbosity -= 1 elif o in ('-v', '--verbose'): @@ -824,8 +824,9 @@ elif mode == 'keys': is_client = False verbosity_level = 1 + verbosity - if not action: action = 'status' - do_keys(cfgs, args, action) + if not keys_status and not keys_print and not keys_deploy: + keys_status = True + do_keys(cfgs, args, keys_status, keys_print, keys_deploy) else: assert False, 'Unkown mode: ' + mode except Exception, ex: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-26 04:09:06
|
Revision: 296 http://safekeep.svn.sourceforge.net/safekeep/?rev=296&view=rev Author: dimi Date: 2007-01-25 20:09:05 -0800 (Thu, 25 Jan 2007) Log Message: ----------- Remove the short options for selecting the operation mode, since they were polluting the namespace and they weren't all that useful: - the server mode is the defalt mode, no switch is required - the client mode should never be invoked manually - the keys mode benefits slighly from the additional clarity. This should allow us in the future more freedom to add other options with those names. Modified Paths: -------------- safekeep/trunk/doc/safekeep.txt safekeep/trunk/safekeep Modified: safekeep/trunk/doc/safekeep.txt =================================================================== --- safekeep/trunk/doc/safekeep.txt 2007-01-26 03:56:40 UTC (rev 295) +++ safekeep/trunk/doc/safekeep.txt 2007-01-26 04:09:05 UTC (rev 296) @@ -7,11 +7,11 @@ SYNOPSIS -------- -'safekeep' [-s] [-q] [-v] [-C file] [-e <email>] [-m <smtp>] +'safekeep' [--server] [-q] [-v] [-C file] [-e <email>] [-m <smtp>] -'safekeep' -c +'safekeep' --client -'safekeep' -k [-q] [-v] [--status|--print|--deploy] <clientid>* +'safekeep' --keys [-q] [-v] [--status|--print|--deploy] <clientid>* 'safekeep' -h | -V @@ -45,15 +45,15 @@ OPTIONS ------- --s, --server:: +--server:: Selects the server mode (default) --c, --client:: +--client:: Selects the client mode. This should never be invoked manually, the clients are started automatically by the server on the client machines using SSH. --k, --keys:: +--keys:: Selects the SSH key management mode -h, --help:: Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-01-26 03:56:40 UTC (rev 295) +++ safekeep/trunk/safekeep 2007-01-26 04:09:05 UTC (rev 296) @@ -735,14 +735,14 @@ ###################################################################### def usage(): - print 'usage: %s [-s|--server] [common options] [server options]' % (sys.argv[0]) - print ' %s [-c|--client] [common options]' % (sys.argv[0]) - print ' %s [-k|--keys] [common options] [keys options] [clientid1 [clientid2] ...]' % (sys.argv[0]) + print 'usage: %s [--server] [common options] [server options]' % (sys.argv[0]) + print ' %s --client [common options]' % (sys.argv[0]) + print ' %s --keys [common options] [keys options] [clientid1 [clientid2] ...]' % (sys.argv[0]) print print 'mode selection (pick one):' - print '-s, --server launch in server mode (default)' - print '-c, --client launch in client mode' - print '-k, --keys launch in keys management mode' + print '--server launch in server mode (default)' + print '--client launch in client mode' + print '--keys launch in keys management mode' print print 'common options:' print '-h, --help show this help message and exit' @@ -762,7 +762,7 @@ def main(): try: - opts, args = getopt.getopt(sys.argv[1:], 'C:e:hkm:scqvV', + opts, args = getopt.getopt(sys.argv[1:], 'C:e:hm:qvV', [ 'cfg=', 'client', 'clientid=', 'deploy', 'email=', 'help', 'keys', 'print', 'quiet', 'server', 'smtp=', 'status', @@ -787,11 +787,11 @@ sys.exit() elif o in ('-m', '--smtp'): smtp = a - elif o in ('-s', '--server'): + elif o in ('--server', ): mode = 'server' - elif o in ('-c', '--client'): + elif o in ('--client', ): mode = 'client' - elif o in ('-k', '--keys'): + elif o in ('--keys', ): mode = 'keys' elif o in ('--status', ): action = 'status' This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-26 03:56:41
|
Revision: 295 http://safekeep.svn.sourceforge.net/safekeep/?rev=295&view=rev Author: dimi Date: 2007-01-25 19:56:40 -0800 (Thu, 25 Jan 2007) Log Message: ----------- Reorganize the help message for clarity Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-01-25 18:36:32 UTC (rev 294) +++ safekeep/trunk/safekeep 2007-01-26 03:56:40 UTC (rev 295) @@ -735,24 +735,30 @@ ###################################################################### def usage(): - print 'usage: %s <mode> [options]' % (sys.argv[0]) - print ' %s [-k|--keys] [--status|--print|--deploy] [clientid1 [clientid2] ...]' % (sys.argv[0]) + print 'usage: %s [-s|--server] [common options] [server options]' % (sys.argv[0]) + print ' %s [-c|--client] [common options]' % (sys.argv[0]) + print ' %s [-k|--keys] [common options] [keys options] [clientid1 [clientid2] ...]' % (sys.argv[0]) + print print 'mode selection (pick one):' print '-s, --server launch in server mode (default)' print '-c, --client launch in client mode' - print '-k, --keys manage SSH keys' + print '-k, --keys launch in keys management mode' + print + print 'common options:' print '-h, --help show this help message and exit' + print '-q, --quiet decreases the verbosity level' + print '-v, --verbose increases the verbosity level' print '-V, --version show the version number and exit' print - print 'options:' + print 'keys options:' + print '--status display the key status for the clients (default)' + print '--print display the authorization keys' + print '--deploy deploy the authorization keys' + print + print 'server options:' print '-C, --cfg=FILE|DIR use the given configuration file/directory' print '-e, --email=EMAIL send results by email (can appear multiple times)' print '-m, --smtp=SMTP SMTP server to use when sending mails (default: built-in SMTP)' - print '--status display the key status for the clients (keys mode only, default)' - print '--print display the authorization keys (keys mode only)' - print '--deploy deploy the authorization keys (keys mode only)' - print '-q, --quiet decreases the verbosity level' - print '-v, --verbose increases the verbosity level' def main(): try: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-25 18:36:36
|
Revision: 294 http://safekeep.svn.sourceforge.net/safekeep/?rev=294&view=rev Author: dimi Date: 2007-01-25 10:36:32 -0800 (Thu, 25 Jan 2007) Log Message: ----------- According to the FHS (http://www.pathname.com/fhs/), we can also exclude the following dirs: /var/cache /var/lock /var/run /var/tmp Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-01-25 16:46:22 UTC (rev 293) +++ safekeep/trunk/safekeep 2007-01-25 18:36:32 UTC (rev 294) @@ -204,14 +204,18 @@ cludes.append({ 'type' : 'exclude', 'path' : '', 'glob' : '', 'regexp' : '.*' }) else: cludes = [ - { 'type' : 'exclude', 'path' : '/dev/', 'glob' : None, 'regexp' : None }, - { 'type' : 'exclude', 'path' : '/media/', 'glob' : None, 'regexp' : None }, - { 'type' : 'exclude', 'path' : '/mnt/', 'glob' : None, 'regexp' : None }, - { 'type' : 'exclude', 'path' : '/net/', 'glob' : None, 'regexp' : None }, - { 'type' : 'exclude', 'path' : '/proc/', 'glob' : None, 'regexp' : None }, - { 'type' : 'exclude', 'path' : '/sys/', 'glob' : None, 'regexp' : None }, - { 'type' : 'exclude', 'path' : '/tmp/', 'glob' : None, 'regexp' : None }, - { 'type' : 'include', 'path' : '/', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/dev/', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/media/', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/mnt/', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/net/', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/proc/', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/sys/', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/tmp/', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/var/cache', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/var/lock', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/var/run', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/var/tmp', 'glob' : None, 'regexp' : None }, + { 'type' : 'include', 'path' : '/', 'glob' : None, 'regexp' : None }, ] return { 'id': id, 'host' : host, 'user' : user, 'key_ctrl' : key_ctrl, 'key_data' : key_data, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-25 16:46:27
|
Revision: 293 http://safekeep.svn.sourceforge.net/safekeep/?rev=293&view=rev Author: dimi Date: 2007-01-25 08:46:22 -0800 (Thu, 25 Jan 2007) Log Message: ----------- Use os.environ['LOGNAME'] instead of os.getlogin() to avoid errors when the controlling terminal goes missing (http://docs.python.org/lib/os-procinfo.html) Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-01-25 14:50:51 UTC (rev 292) +++ safekeep/trunk/safekeep 2007-01-25 16:46:22 UTC (rev 293) @@ -613,7 +613,7 @@ elif action is 'deploy': info('%s: Key do not exist, generating it now: %s' % (id, privatekeyfile)) gencmd = 'ssh-keygen -q -b 1024 -t dsa -N "" -C "SafeKeep auto generated key at %s@%s" -f %s' % \ - (os.getlogin(), os.uname()[1], privatekeyfile) + (os.environ['LOGNAME'], os.uname()[1], privatekeyfile) debug(gencmd) if os.system(gencmd): error('%s: Failed to generate key %s. Skipping client.' % (id, privatekeyfile)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <st...@us...> - 2007-01-25 14:51:07
|
Revision: 292 http://safekeep.svn.sourceforge.net/safekeep/?rev=292&view=rev Author: stelian Date: 2007-01-25 06:50:51 -0800 (Thu, 25 Jan 2007) Log Message: ----------- Fix 'safekeep -k --deploy' problem. Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-01-25 04:57:07 UTC (rev 291) +++ safekeep/trunk/safekeep 2007-01-25 14:50:51 UTC (rev 292) @@ -612,10 +612,10 @@ break elif action is 'deploy': info('%s: Key do not exist, generating it now: %s' % (id, privatekeyfile)) - cmd = 'ssh-keygen -q -b 1024 -t dsa -N "" -C "SafeKeep auto generated key at %s@%s" -f %s' % \ + gencmd = 'ssh-keygen -q -b 1024 -t dsa -N "" -C "SafeKeep auto generated key at %s@%s" -f %s' % \ (os.getlogin(), os.uname()[1], privatekeyfile) - debug(cmd) - if os.system(cmd): + debug(gencmd) + if os.system(gencmd): error('%s: Failed to generate key %s. Skipping client.' % (id, privatekeyfile)) break if not os.path.isfile(publickeyfile): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-25 04:57:09
|
Revision: 291 http://safekeep.svn.sourceforge.net/safekeep/?rev=291&view=rev Author: dimi Date: 2007-01-24 20:57:07 -0800 (Wed, 24 Jan 2007) Log Message: ----------- Always nuke yum's cache of our repo, it's changing too fast and causes problems Modified Paths: -------------- safekeep/trunk/safekeep-test Modified: safekeep/trunk/safekeep-test =================================================================== --- safekeep/trunk/safekeep-test 2007-01-25 04:47:26 UTC (rev 290) +++ safekeep/trunk/safekeep-test 2007-01-25 04:57:07 UTC (rev 291) @@ -206,7 +206,7 @@ lattica_repo = '\n'.join([line.strip() for line in lattica_repo.splitlines()]) cmd = 'echo %s > /etc/yum.repos.d/lattica-development.repo' % (mkarg(lattica_repo).strip()) rcmd(cmd, 'root', host, 'install Lattica Repo') - cmd = 'if rpm -q safekeep; then rm -rf /var/cache/yum/lattica-development/; yum update -y safekeep; else yum install -y safekeep; fi' + cmd = 'rm -rf /var/cache/yum/lattica-development/; if rpm -q safekeep; then yum update -y safekeep; else yum install -y safekeep; fi' rcmd(cmd, 'root', host, 'install safekeep') def createKey(user, host, keyname, comment): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-25 04:47:29
|
Revision: 290 http://safekeep.svn.sourceforge.net/safekeep/?rev=290&view=rev Author: dimi Date: 2007-01-24 20:47:26 -0800 (Wed, 24 Jan 2007) Log Message: ----------- Create the config dir so it is available to receive config files Modified Paths: -------------- safekeep/trunk/safekeep.spec.in Modified: safekeep/trunk/safekeep.spec.in =================================================================== --- safekeep/trunk/safekeep.spec.in 2007-01-25 04:21:04 UTC (rev 289) +++ safekeep/trunk/safekeep.spec.in 2007-01-25 04:47:26 UTC (rev 290) @@ -31,6 +31,7 @@ make build %install +install -d -m 755 "%{buildroot}%{_sysconfdir}/safekeep.d" install -d -m 755 "%{buildroot}%{_bindir}/" install -m 755 safekeep "%{buildroot}%{_bindir}/" install -d -m 755 "%{buildroot}%{_mandir}/man1/" @@ -41,6 +42,7 @@ %files %defattr(-,root,root,-) +%dir %{_sysconfdir}/safekeep.d %{_bindir}/safekeep %{_mandir}/man1/safekeep.1* %doc AUTHORS COPYING LICENSE README safekeep-test sample.cfg This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-25 04:21:05
|
Revision: 289 http://safekeep.svn.sourceforge.net/safekeep/?rev=289&view=rev Author: dimi Date: 2007-01-24 20:21:04 -0800 (Wed, 24 Jan 2007) Log Message: ----------- Fix server namer. Modified Paths: -------------- safekeep/trunk/safekeep-test Modified: safekeep/trunk/safekeep-test =================================================================== --- safekeep/trunk/safekeep-test 2007-01-25 04:09:17 UTC (rev 288) +++ safekeep/trunk/safekeep-test 2007-01-25 04:21:04 UTC (rev 289) @@ -278,7 +278,7 @@ '/var/www/repos/lattica/yum/fedora/6/devel/i386', '/var/www/repos/lattica/yum/centos/4/devel/i386', ] - packageAndUpload(tmproot, 'Lattica, Inc. (Devel Key) <de...@la...>', repodirs, 'root', 'achilles') + packageAndUpload(tmproot, 'Lattica, Inc. (Devel Key) <de...@la...>', repodirs, 'root', 'ulysses') takeOver(client, 'client') takeOver(server, 'server') This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-25 04:09:20
|
Revision: 288 http://safekeep.svn.sourceforge.net/safekeep/?rev=288&view=rev Author: dimi Date: 2007-01-24 20:09:17 -0800 (Wed, 24 Jan 2007) Log Message: ----------- If the backup.log exists, mark current possition and dump starting from the marker only Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-01-24 19:58:01 UTC (rev 287) +++ safekeep/trunk/safekeep 2007-01-25 04:09:17 UTC (rev 288) @@ -1,7 +1,7 @@ #!/usr/bin/python import getopt, os, os.path, popen2, re, sys -import commands, tempfile, traceback +import commands, tempfile, time, traceback import xml.dom.minidom import socket, smtplib @@ -46,11 +46,16 @@ else: print >> sys.stderr, msg -def info_file(file): +def info_file(file, marker=None): info('## File: ' + file) fin = open(file, 'r') try: for line in fin.readlines(): + if marker: + if line.startswith(marker): + marker = None + else: + continue info(line.rstrip()) finally: fin.close() @@ -554,10 +559,16 @@ else: rdiff_logpre = [] + backup_log = os.path.join(rdiff_logdir, 'backup.log') + if os.path.isfile(backup_log): + backup_marker = '=== Backup session on %s ===' % time.asctime() + else: + backup_marker = None + do_server_rdiff(cfg, bdir) if os.path.isdir(rdiff_logdir): - info_file(os.path.join(rdiff_logdir, 'backup.log')) + info_file(backup_log, backup_marker) rdiff_logpost = os.listdir(rdiff_logdir) for lfn in rdiff_logpost: if lfn.startswith('session_statistics.') and lfn.endswith('.data') and lfn not in rdiff_logpre: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-24 19:58:05
|
Revision: 287 http://safekeep.svn.sourceforge.net/safekeep/?rev=287&view=rev Author: dimi Date: 2007-01-24 11:58:01 -0800 (Wed, 24 Jan 2007) Log Message: ----------- Provide a reasonable set of includes/excludes if not specified Modified Paths: -------------- safekeep/trunk/safekeep Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-01-23 22:11:35 UTC (rev 286) +++ safekeep/trunk/safekeep 2007-01-24 19:58:01 UTC (rev 287) @@ -186,17 +186,29 @@ snaps.append(parse_snap(snap_el)) data_el = backup_el.getElementsByTagName('data') + + if data_el: + child_els = data_el[0].childNodes + cludes = [] + for child_el in child_els: + if child_el.nodeType != child_el.ELEMENT_NODE: + continue + if child_el.tagName not in ('include', 'exclude'): + continue + cludes.append(parse_clude(child_el)) + cludes.append({ 'type' : 'exclude', 'path' : '', 'glob' : '', 'regexp' : '.*' }) + else: + cludes = [ + { 'type' : 'exclude', 'path' : '/dev/', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/media/', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/mnt/', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/net/', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/proc/', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/sys/', 'glob' : None, 'regexp' : None }, + { 'type' : 'exclude', 'path' : '/tmp/', 'glob' : None, 'regexp' : None }, + { 'type' : 'include', 'path' : '/', 'glob' : None, 'regexp' : None }, + ] - child_els = data_el[0].childNodes - cludes = [] - for child_el in child_els: - if child_el.nodeType != child_el.ELEMENT_NODE: - continue - if child_el.tagName not in ('include', 'exclude'): - continue - cludes.append(parse_clude(child_el)) - cludes.append({ 'type' : 'exclude', 'path' : '', 'glob' : '', 'regexp' : '.*' }) - return { 'id': id, 'host' : host, 'user' : user, 'key_ctrl' : key_ctrl, 'key_data' : key_data, 'dir' : dir, 'retention' : retention, 'dumps' : dumps, 'snaps' : snaps, 'cludes' : cludes} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-23 22:11:36
|
Revision: 286 http://safekeep.svn.sourceforge.net/safekeep/?rev=286&view=rev Author: dimi Date: 2007-01-23 14:11:35 -0800 (Tue, 23 Jan 2007) Log Message: ----------- Create dirs for the man page too Modified Paths: -------------- safekeep/trunk/safekeep.spec.in Modified: safekeep/trunk/safekeep.spec.in =================================================================== --- safekeep/trunk/safekeep.spec.in 2007-01-23 22:04:42 UTC (rev 285) +++ safekeep/trunk/safekeep.spec.in 2007-01-23 22:11:35 UTC (rev 286) @@ -31,8 +31,9 @@ make build %install -install -d -m 755 "%{buildroot}%{_bindir}" -install -m 755 safekeep "%{buildroot}%{_bindir}" +install -d -m 755 "%{buildroot}%{_bindir}/" +install -m 755 safekeep "%{buildroot}%{_bindir}/" +install -d -m 755 "%{buildroot}%{_mandir}/man1/" install -m 755 doc/safekeep.1 "%{buildroot}%{_mandir}/man1/" %clean This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-23 22:04:44
|
Revision: 285 http://safekeep.svn.sourceforge.net/safekeep/?rev=285&view=rev Author: dimi Date: 2007-01-23 14:04:42 -0800 (Tue, 23 Jan 2007) Log Message: ----------- Document the build requirements Modified Paths: -------------- safekeep/trunk/README Modified: safekeep/trunk/README =================================================================== --- safekeep/trunk/README 2007-01-23 22:04:23 UTC (rev 284) +++ safekeep/trunk/README 2007-01-23 22:04:42 UTC (rev 285) @@ -1,4 +1,10 @@ +Requirements +~~~~~~~~~~~~ + * rdiff-backup + * asciidoc + * xmlto + Full Test ~~~~~~~~~ To run the full test simply invoke the target: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-23 22:04:24
|
Revision: 284 http://safekeep.svn.sourceforge.net/safekeep/?rev=284&view=rev Author: dimi Date: 2007-01-23 14:04:23 -0800 (Tue, 23 Jan 2007) Log Message: ----------- We need to create the dir for the binary Modified Paths: -------------- safekeep/trunk/safekeep.spec.in Modified: safekeep/trunk/safekeep.spec.in =================================================================== --- safekeep/trunk/safekeep.spec.in 2007-01-12 11:58:53 UTC (rev 283) +++ safekeep/trunk/safekeep.spec.in 2007-01-23 22:04:23 UTC (rev 284) @@ -31,6 +31,7 @@ make build %install +install -d -m 755 "%{buildroot}%{_bindir}" install -m 755 safekeep "%{buildroot}%{_bindir}" install -m 755 doc/safekeep.1 "%{buildroot}%{_mandir}/man1/" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <st...@us...> - 2007-01-12 11:58:58
|
Revision: 283 http://safekeep.svn.sourceforge.net/safekeep/?rev=283&view=rev Author: stelian Date: 2007-01-12 03:58:53 -0800 (Fri, 12 Jan 2007) Log Message: ----------- Add safekeep(1) man page. Added Paths: ----------- website/trunk/WebContent/safekeep-man-1.shtml Added: website/trunk/WebContent/safekeep-man-1.shtml =================================================================== --- website/trunk/WebContent/safekeep-man-1.shtml (rev 0) +++ website/trunk/WebContent/safekeep-man-1.shtml 2007-01-12 11:58:53 UTC (rev 283) @@ -0,0 +1,509 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" + "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<meta name="generator" content="AsciiDoc 7.1.2" /> +<style type="text/css"> +/* Debug borders */ +p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 { +/* + border: 1px solid red; +*/ +} + +body { + margin: 1em 5% 1em 5%; +} + +a { + color: blue; + text-decoration: underline; +} +a:visited { + color: fuchsia; +} + +em { + font-style: italic; +} + +strong { + font-weight: bold; +} + +tt { + color: navy; +} + +h1, h2, h3, h4, h5, h6 { + color: #527bbd; + font-family: sans-serif; + margin-top: 1.2em; + margin-bottom: 0.5em; + line-height: 1.3; +} + +h1 { + border-bottom: 2px solid silver; +} +h2 { + border-bottom: 2px solid silver; + padding-top: 0.5em; +} + +div.sectionbody { + font-family: serif; + margin-left: 0; +} + +hr { + border: 1px solid silver; +} + +p { + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +pre { + padding: 0; + margin: 0; +} + +span#author { + color: #527bbd; + font-family: sans-serif; + font-weight: bold; + font-size: 1.2em; +} +span#email { +} +span#revision { + font-family: sans-serif; +} + +div#footer { + font-family: sans-serif; + font-size: small; + border-top: 2px solid silver; + padding-top: 0.5em; + margin-top: 4.0em; +} +div#footer-text { + float: left; + padding-bottom: 0.5em; +} +div#footer-badges { + float: right; + padding-bottom: 0.5em; +} + +div#preamble, +div.tableblock, div.imageblock, div.exampleblock, div.verseblock, +div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock, +div.admonitionblock { + margin-right: 10%; + margin-top: 1.5em; + margin-bottom: 1.5em; +} +div.admonitionblock { + margin-top: 2.5em; + margin-bottom: 2.5em; +} + +div.content { /* Block element content. */ + padding: 0; +} + +/* Block element titles. */ +div.title, caption.title { + font-family: sans-serif; + font-weight: bold; + text-align: left; + margin-top: 1.0em; + margin-bottom: 0.5em; +} +div.title + * { + margin-top: 0; +} + +td div.title:first-child { + margin-top: 0.0em; +} +div.content div.title:first-child { + margin-top: 0.0em; +} +div.content + div.title { + margin-top: 0.0em; +} + +div.sidebarblock > div.content { + background: #ffffee; + border: 1px solid silver; + padding: 0.5em; +} + +div.listingblock > div.content { + border: 1px solid silver; + background: #f4f4f4; + padding: 0.5em; +} + +div.quoteblock > div.content { + padding-left: 2.0em; +} + +div.attribution { + text-align: right; +} +div.verseblock + div.attribution { + text-align: left; +} + +div.admonitionblock .icon { + vertical-align: top; + font-size: 1.1em; + font-weight: bold; + text-decoration: underline; + color: #527bbd; + padding-right: 0.5em; +} +div.admonitionblock td.content { + padding-left: 0.5em; + border-left: 2px solid silver; +} + +div.exampleblock > div.content { + border-left: 2px solid silver; + padding: 0.5em; +} + +div.verseblock div.content { + white-space: pre; +} + +div.imageblock div.content { padding-left: 0; } +div.imageblock img { border: 1px solid silver; } +span.image img { border-style: none; } + +dl { + margin-top: 0.8em; + margin-bottom: 0.8em; +} +dt { + margin-top: 0.5em; + margin-bottom: 0; + font-style: italic; +} +dd > *:first-child { + margin-top: 0; +} + +ul, ol { + list-style-position: outside; +} +ol.olist2 { + list-style-type: lower-alpha; +} + +div.tableblock > table { + border: 3px solid #527bbd; +} +thead { + font-family: sans-serif; + font-weight: bold; +} +tfoot { + font-weight: bold; +} + +div.hlist { + margin-top: 0.8em; + margin-bottom: 0.8em; +} +td.hlist1 { + vertical-align: top; + font-style: italic; + padding-right: 0.8em; +} +td.hlist2 { + vertical-align: top; +} + +@media print { + div#footer-badges { display: none; } +} +include1::./stylesheets/xhtml11-manpage.css[] +/* Workarounds for IE6's broken and incomplete CSS2. */ + +div.sidebar-content { + background: #ffffee; + border: 1px solid silver; + padding: 0.5em; +} +div.sidebar-title, div.image-title { + font-family: sans-serif; + font-weight: bold; + margin-top: 0.0em; + margin-bottom: 0.5em; +} + +div.listingblock div.content { + border: 1px solid silver; + background: #f4f4f4; + padding: 0.5em; +} + +div.quoteblock-content { + padding-left: 2.0em; +} + +div.exampleblock-content { + border-left: 2px solid silver; + padding-left: 0.5em; +} +</style> +<title>safekeep(1)</title> +</head> +<body> +<div id="header"> +<h1> +safekeep(1) Manual Page +</h1> +<h2>NAME</h2> +<div class="sectionbody"> +<p>safekeep - + Client/server backup script +</p> +</div> +</div> +<h2>SYNOPSIS</h2> +<div class="sectionbody"> +<p><em>safekeep</em> [-s] [-q] [-v] [-C file] [-e <email>] [-m <smtp>]</p> +<p><em>safekeep</em> -c</p> +<p><em>safekeep</em> -k [-q] [-v] [--status|--print|--deploy] <clientid>*</p> +<p><em>safekeep</em> -h | -V</p> +</div> +<h2>DESCRIPTION</h2> +<div class="sectionbody"> +<p>SafeKeep is a client/server backup script which enhances the +power of rdiff-backup with simple configuration and use.</p> +<p>SafeKeep can work in server mode, client mode or SSH key management mode.</p> +<p>In server mode, SafeKeep parses a set of configurations files which +defines a set of backup clients. For each backup client, SafeKeep +connects to the client host over SSH (using a public key authentification +system previously set up using <tt>safekeep -k --deploy</tt>), and launches +<tt>safekeep --client</tt> onto the client host. The client does the real backup +and sends the data over SSH to the SafeKeep server which stores it in +the specified location.</p> +<p>In client mode, SafeKeep does a few setup steps, depending on the +client configuration (database dump, LVM device snapshot), then backups +the client data using <tt>rdiff-backup</tt>, and then cleanups the state +(removes the database dumps, deactivates the LVM snapshots)</p> +<p>Note that the client mode of SafeKeep should never be invoked manually, +this mode is meant to be used only by the server mode of SafeKeep.</p> +<p>The SSH key management mode is a helper mode for deploying or verifying +the setup of the SSH authentification keys.</p> +<p>Each mode accepts a few options as described below.</p> +</div> +<h2>OPTIONS</h2> +<div class="sectionbody"> +<dl> +<dt> +-s, --server +</dt> +<dd> +<p> + Selects the server mode (default) +</p> +</dd> +<dt> +-c, --client +</dt> +<dd> +<p> + Selects the client mode. This should never be invoked manually, the + clients are started automatically by the server on the client machines + using SSH. +</p> +</dd> +<dt> +-k, --keys +</dt> +<dd> +<p> + Selects the SSH key management mode +</p> +</dd> +<dt> +-h, --help +</dt> +<dd> +<p> + Selects the help mode, in which safekeep prints out the + online help and exits. +</p> +</dd> +<dt> +-V, --version +</dt> +<dd> +<p> + Selects the version mode, in which safekeep prints out the + version number and exits. +</p> +</dd> +<dt> +-q, --quiet +</dt> +<dd> +<p> + Decreases the verbosity level. Can be specified more than + once. +</p> +</dd> +<dt> +-v, --verbose +</dt> +<dd> +<p> + Increases the verbosity level. Can be specified more than + once. +</p> +</dd> +<dt> +-C, --cfg=FILE|DIR +</dt> +<dd> +<p> + Specifies the configuration file location. + This can be a single file (for a single client configuration) + or a directory containing several configuration files (one per + backup client) +</p> +</dd> +<dt> +-e, --email=EMAIL +</dt> +<dd> +<p> + In addition to writing the session logs + on the standard output, this parameter let the user specify + the mail address where the logs are to be send. Can be specified + more than once to send reports to multiple addresses. +</p> +</dd> +<dt> +-m, --smtp=SMTP +</dt> +<dd> +<p> + Specifies the SMTP server used for sending + mails when <tt>-e</tt> is used. Defaults to <tt>localhost</tt>. +</p> +</dd> +<dt> +--status +</dt> +<dd> +<p> + (key mode only) Display the key status for the clients. +</p> +</dd> +<dt> +--print +</dt> +<dd> +<p> + (key mode only) Display the authorization keys for the clients. +</p> +</dd> +<dt> +--deploy +</dt> +<dd> +<p> + (key mode only) Deploy the authorization keys on the clients. +</p> +</dd> +</dl> +</div> +<h2>Configuration file</h2> +<div class="sectionbody"> +<p>Each backup client is described by a configuration file in XML format of the +following form:</p> +<div class="listingblock"> +<div class="content"> +<pre><tt><!-- the client backup id --> +<backup id="my.host.com primary backup"> + + <!-- the client backup host, the user under which the servers will connect, + the SSH keys used for launching "safekeep -c" and "rdiff-backup" --> + <host + name="localhost" user="guest" + key-ctrl="/home/dimi/.ssh/backup_id_dsa" + key-data="/home/dimi/.ssh/backup2_id_dsa" + /> + + <!-- location where the backuped data will be stored on the server + and for how long (s=sec, m=min, h=hours, D=days, W=weeks, M=months, or Y=years) --> + <repo + path="./tmp" + retention="10D" + /> + + <!-- settings for database dump and for volume snapshot --> + <setup> + + <!-- database type ("postgres" or "mysql"), user with backup rights, + location of the dump file on the client host, and flag to remove + or not the dump file after the backup is done --> + <dump + type="postgres" + db="dbname" + user="foobar" + file="/var/backup/dumps/mydata" + cleanup="true" + /> + + <!-- what volume is to be snapshoted (device location) and the size + of the snapshot (unallocated space must exist in the volume group) --> + <snapshot + device="/path/to/volume" + size="500M" + /> + + </setup> + + <!-- data to be backuped --> + <data> + <!-- each type of tag can be present more than one time --> + <!-- if a database dump was created, it must be added in this section --> + <include path="/home"/> + <exclude path="/home/guest"/> + + <include glob="**/important/"/> + <exclude glob="/home/*/tmp"/> + + <include regexp=".*\.ogg"/> + <exclude regexp=".*\.mp3"/> + </data> +</backup></tt></pre> +</div></div> +</div> +<h2>See Also</h2> +<div class="sectionbody"> +<p>rdiff-backup(1)</p> +</div> +<h2>Author</h2> +<div class="sectionbody"> +<p>Written by Dimi Paun <di...@la...> and Stelian Pop <st...@la...>.</p> +</div> +<div id="footer"> +<div id="footer-text"> +Last updated 12-Jan-2007 12:57:50 CEST +</div> +</div> +</body> +</html> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <st...@us...> - 2007-01-12 11:57:26
|
Revision: 282 http://safekeep.svn.sourceforge.net/safekeep/?rev=282&view=rev Author: stelian Date: 2007-01-12 03:57:25 -0800 (Fri, 12 Jan 2007) Log Message: ----------- Fix typo. Modified Paths: -------------- website/trunk/WebContent/motivation.shtml Modified: website/trunk/WebContent/motivation.shtml =================================================================== --- website/trunk/WebContent/motivation.shtml 2007-01-12 11:53:26 UTC (rev 281) +++ website/trunk/WebContent/motivation.shtml 2007-01-12 11:57:25 UTC (rev 282) @@ -59,7 +59,7 @@ </p> <p> -The end result of our efforts is SmartKeep. We decided to free the +The end result of our efforts is SafeKeep. We decided to free the code in the hope that others will find it useful. If you do, please send us your impressions and suggestions at <a href="mailto:saf...@li...">saf...@li...</a>. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <st...@us...> - 2007-01-12 11:53:28
|
Revision: 281 http://safekeep.svn.sourceforge.net/safekeep/?rev=281&view=rev Author: stelian Date: 2007-01-12 03:53:26 -0800 (Fri, 12 Jan 2007) Log Message: ----------- Fix the debian build rules for the manpage. Modified Paths: -------------- safekeep/trunk/debian/control safekeep/trunk/debian/rules Modified: safekeep/trunk/debian/control =================================================================== --- safekeep/trunk/debian/control 2007-01-12 11:45:49 UTC (rev 280) +++ safekeep/trunk/debian/control 2007-01-12 11:53:26 UTC (rev 281) @@ -2,7 +2,7 @@ Section: Applications/System Priority: optional Maintainer: Lattica, Inc. -Build-Depends: debhelper (>= 4.0.0), xmlto, asciidoc > 6.0.3 +Build-Depends: debhelper (>= 4.0.0), xmlto, asciidoc (> 6.0.3) Standards-Version: 3.6.2 Package: safekeep Modified: safekeep/trunk/debian/rules =================================================================== --- safekeep/trunk/debian/rules 2007-01-12 11:45:49 UTC (rev 280) +++ safekeep/trunk/debian/rules 2007-01-12 11:53:26 UTC (rev 281) @@ -16,9 +16,10 @@ mkdir -p $(CURDIR)/debian/safekeep/usr/bin mkdir -p $(CURDIR)/debian/safekeep/etc/safekeep.d + mkdir -p $(CURDIR)/debian/safekeep/usr/share/man/man1 install -m 755 safekeep $(CURDIR)/debian/safekeep/usr/bin - install -m 755 doc/safekeep.1 $(CURDIR)/debian/safekeep/usr/man/man1 + install -m 755 doc/safekeep.1 $(CURDIR)/debian/safekeep/usr/share/man/man1 binary-indep: install dh_testdir This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <st...@us...> - 2007-01-12 11:45:51
|
Revision: 280 http://safekeep.svn.sourceforge.net/safekeep/?rev=280&view=rev Author: stelian Date: 2007-01-12 03:45:49 -0800 (Fri, 12 Jan 2007) Log Message: ----------- Add documentation and rework the sample configuration file. Modified Paths: -------------- safekeep/trunk/Makefile safekeep/trunk/debian/control safekeep/trunk/debian/rules safekeep/trunk/safekeep safekeep/trunk/safekeep.spec.in safekeep/trunk/sample.cfg Added Paths: ----------- safekeep/trunk/doc/ safekeep/trunk/doc/Makefile safekeep/trunk/doc/asciidoc.conf safekeep/trunk/doc/callouts.xsl safekeep/trunk/doc/safekeep.txt Modified: safekeep/trunk/Makefile =================================================================== --- safekeep/trunk/Makefile 2007-01-12 05:02:13 UTC (rev 279) +++ safekeep/trunk/Makefile 2007-01-12 11:45:49 UTC (rev 280) @@ -35,6 +35,7 @@ @echo "SVN Root = $(svnroot)" build: + $(MAKE) -C doc build release: check-info commit-release tag-release rpm-release @@ -95,5 +96,6 @@ safekeep-test --remote clean: + $(MAKE) -C doc clean rm -rf `find -name "*.py[co]" -o -name "*~"``` rm -f $(name).spec debian/changelog Modified: safekeep/trunk/debian/control =================================================================== --- safekeep/trunk/debian/control 2007-01-12 05:02:13 UTC (rev 279) +++ safekeep/trunk/debian/control 2007-01-12 11:45:49 UTC (rev 280) @@ -2,7 +2,7 @@ Section: Applications/System Priority: optional Maintainer: Lattica, Inc. -Build-Depends: debhelper (>= 4.0.0) +Build-Depends: debhelper (>= 4.0.0), xmlto, asciidoc > 6.0.3 Standards-Version: 3.6.2 Package: safekeep Modified: safekeep/trunk/debian/rules =================================================================== --- safekeep/trunk/debian/rules 2007-01-12 05:02:13 UTC (rev 279) +++ safekeep/trunk/debian/rules 2007-01-12 11:45:49 UTC (rev 280) @@ -12,10 +12,13 @@ dh_clean -k dh_installdirs + make build + mkdir -p $(CURDIR)/debian/safekeep/usr/bin mkdir -p $(CURDIR)/debian/safekeep/etc/safekeep.d install -m 755 safekeep $(CURDIR)/debian/safekeep/usr/bin + install -m 755 doc/safekeep.1 $(CURDIR)/debian/safekeep/usr/man/man1 binary-indep: install dh_testdir Added: safekeep/trunk/doc/Makefile =================================================================== --- safekeep/trunk/doc/Makefile (rev 0) +++ safekeep/trunk/doc/Makefile 2007-01-12 11:45:49 UTC (rev 280) @@ -0,0 +1,25 @@ +MAN_TXT := $(wildcard *.txt) +DOC_HTML := $(patsubst %.txt,%.html,$(MAN_TXT)) +DOC_MAN := $(patsubst %.txt,%.1,$(MAN_TXT)) + +all: html man + +build: all + +html: $(DOC_HTML) + +man: $(DOC_MAN) + +clean: + rm -f *.xml *.html *.1 + +$(DOC_HTML) $(DOC_MAN): asciidoc.conf + +%.html: %.txt + asciidoc -b xhtml11 -d manpage -f asciidoc.conf $< + +%.1: %.xml + xmlto -m callouts.xsl man $< + +%.xml: %.txt + asciidoc -b docbook -d manpage -f asciidoc.conf $< Added: safekeep/trunk/doc/asciidoc.conf =================================================================== --- safekeep/trunk/doc/asciidoc.conf (rev 0) +++ safekeep/trunk/doc/asciidoc.conf 2007-01-12 11:45:49 UTC (rev 280) @@ -0,0 +1,5 @@ +[attributes] +caret=^ +startsb=[ +endsb=] +tilde=~ Added: safekeep/trunk/doc/callouts.xsl =================================================================== --- safekeep/trunk/doc/callouts.xsl (rev 0) +++ safekeep/trunk/doc/callouts.xsl 2007-01-12 11:45:49 UTC (rev 280) @@ -0,0 +1,30 @@ +<!-- callout.xsl: converts asciidoc callouts to man page format --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> +<xsl:template match="co"> + <xsl:value-of select="concat('\fB(',substring-after(@id,'-'),')\fR')"/> +</xsl:template> +<xsl:template match="calloutlist"> + <xsl:text>.sp </xsl:text> + <xsl:apply-templates/> + <xsl:text> </xsl:text> +</xsl:template> +<xsl:template match="callout"> + <xsl:value-of select="concat('\fB',substring-after(@arearefs,'-'),'. \fR')"/> + <xsl:apply-templates/> + <xsl:text>.br </xsl:text> +</xsl:template> + +<!-- sorry, this is not about callouts, but attempts to work around + spurious .sp at the tail of the line docbook stylesheets seem to add --> +<xsl:template match="simpara"> + <xsl:variable name="content"> + <xsl:apply-templates/> + </xsl:variable> + <xsl:value-of select="normalize-space($content)"/> + <xsl:if test="not(ancestor::authorblurb) and + not(ancestor::personblurb)"> + <xsl:text> </xsl:text> + </xsl:if> +</xsl:template> + +</xsl:stylesheet> Added: safekeep/trunk/doc/safekeep.txt =================================================================== --- safekeep/trunk/doc/safekeep.txt (rev 0) +++ safekeep/trunk/doc/safekeep.txt 2007-01-12 11:45:49 UTC (rev 280) @@ -0,0 +1,171 @@ +safekeep(1) +========== + +NAME +---- +safekeep - Client/server backup script + +SYNOPSIS +-------- +'safekeep' [-s] [-q] [-v] [-C file] [-e <email>] [-m <smtp>] + +'safekeep' -c + +'safekeep' -k [-q] [-v] [--status|--print|--deploy] <clientid>* + +'safekeep' -h | -V + +DESCRIPTION +----------- +SafeKeep is a client/server backup script which enhances the +power of rdiff-backup with simple configuration and use. + +SafeKeep can work in server mode, client mode or SSH key management mode. + +In server mode, SafeKeep parses a set of configurations files which +defines a set of backup clients. For each backup client, SafeKeep +connects to the client host over SSH (using a public key authentification +system previously set up using `safekeep -k --deploy`), and launches +`safekeep --client` onto the client host. The client does the real backup +and sends the data over SSH to the SafeKeep server which stores it in +the specified location. + +In client mode, SafeKeep does a few setup steps, depending on the +client configuration (database dump, LVM device snapshot), then backups +the client data using `rdiff-backup`, and then cleanups the state +(removes the database dumps, deactivates the LVM snapshots) + +Note that the client mode of SafeKeep should never be invoked manually, +this mode is meant to be used only by the server mode of SafeKeep. + +The SSH key management mode is a helper mode for deploying or verifying +the setup of the SSH authentification keys. + +Each mode accepts a few options as described below. + +OPTIONS +------- +-s, --server:: + Selects the server mode (default) + +-c, --client:: + Selects the client mode. This should never be invoked manually, the + clients are started automatically by the server on the client machines + using SSH. + +-k, --keys:: + Selects the SSH key management mode + +-h, --help:: + Selects the help mode, in which safekeep prints out the + online help and exits. + +-V, --version:: + Selects the version mode, in which safekeep prints out the + version number and exits. + +-q, --quiet:: + Decreases the verbosity level. Can be specified more than + once. + +-v, --verbose:: + Increases the verbosity level. Can be specified more than + once. + +-C, --cfg=FILE|DIR:: + Specifies the configuration file location. + This can be a single file (for a single client configuration) + or a directory containing several configuration files (one per + backup client) + +-e, --email=EMAIL:: + In addition to writing the session logs + on the standard output, this parameter let the user specify + the mail address where the logs are to be send. Can be specified + more than once to send reports to multiple addresses. + +-m, --smtp=SMTP:: + Specifies the SMTP server used for sending + mails when `-e` is used. Defaults to `localhost`. + +--status:: + (key mode only) Display the key status for the clients. + +--print:: + (key mode only) Display the authorization keys for the clients. + +--deploy:: + (key mode only) Deploy the authorization keys on the clients. + +Configuration file +------------------ + +Each backup client is described by a configuration file in XML format of the +following form: + +------------------------------------------------------------------------ +<!-- the client backup id --> +<backup id="my.host.com primary backup"> + + <!-- the client backup host, the user under which the servers will connect, + the SSH keys used for launching "safekeep -c" and "rdiff-backup" --> + <host + name="localhost" user="guest" + key-ctrl="/home/dimi/.ssh/backup_id_dsa" + key-data="/home/dimi/.ssh/backup2_id_dsa" + /> + + <!-- location where the backuped data will be stored on the server + and for how long (s=sec, m=min, h=hours, D=days, W=weeks, M=months, or Y=years) --> + <repo + path="./tmp" + retention="10D" + /> + + <!-- settings for database dump and for volume snapshot --> + <setup> + + <!-- database type ("postgres" or "mysql"), user with backup rights, + location of the dump file on the client host, and flag to remove + or not the dump file after the backup is done --> + <dump + type="postgres" + db="dbname" + user="foobar" + file="/var/backup/dumps/mydata" + cleanup="true" + /> + + <!-- what volume is to be snapshoted (device location) and the size + of the snapshot (unallocated space must exist in the volume group) --> + <snapshot + device="/path/to/volume" + size="500M" + /> + + </setup> + + <!-- data to be backuped --> + <data> + <!-- each type of tag can be present more than one time --> + <!-- if a database dump was created, it must be added in this section --> + <include path="/home"/> + <exclude path="/home/guest"/> + + <include glob="**/important/"/> + <exclude glob="/home/*/tmp"/> + + <include regexp=".*\.ogg"/> + <exclude regexp=".*\.mp3"/> + </data> +</backup> +------------------------------------------------------------------------ + +See Also +-------- +rdiff-backup(1) + +Author +------ +Written by Dimi Paun <di...@la...> and Stelian Pop <st...@la...>. + Modified: safekeep/trunk/safekeep =================================================================== --- safekeep/trunk/safekeep 2007-01-12 05:02:13 UTC (rev 279) +++ safekeep/trunk/safekeep 2007-01-12 11:45:49 UTC (rev 280) @@ -721,7 +721,6 @@ print '-C, --cfg=FILE|DIR use the given configuration file/directory' print '-e, --email=EMAIL send results by email (can appear multiple times)' print '-m, --smtp=SMTP SMTP server to use when sending mails (default: built-in SMTP)' - print '--clientid=ID manage the keys of client identified by ID (keys mode only)' print '--status display the key status for the clients (keys mode only, default)' print '--print display the authorization keys (keys mode only)' print '--deploy deploy the authorization keys (keys mode only)' Modified: safekeep/trunk/safekeep.spec.in =================================================================== --- safekeep/trunk/safekeep.spec.in 2007-01-12 05:02:13 UTC (rev 279) +++ safekeep/trunk/safekeep.spec.in 2007-01-12 11:45:49 UTC (rev 280) @@ -16,6 +16,7 @@ BuildArch: noarch +BuildRequires: xmlto, asciidoc > 6.0.3 Requires: rdiff-backup Provides: safekeep @@ -27,9 +28,11 @@ %setup -q %build +make build %install install -m 755 safekeep "%{buildroot}%{_bindir}" +install -m 755 doc/safekeep.1 "%{buildroot}%{_mandir}/man1/" %clean rm -rf "%{buildroot}" @@ -37,6 +40,7 @@ %files %defattr(-,root,root,-) %{_bindir}/safekeep +%{_mandir}/man1/safekeep.1* %doc AUTHORS COPYING LICENSE README safekeep-test sample.cfg %changelog Modified: safekeep/trunk/sample.cfg =================================================================== --- safekeep/trunk/sample.cfg 2007-01-12 05:02:13 UTC (rev 279) +++ safekeep/trunk/sample.cfg 2007-01-12 11:45:49 UTC (rev 280) @@ -1,32 +1,48 @@ +<!-- the client backup id --> <backup id="my.host.com primary backup"> - <!-- the host from which the backup data will be copied, user under which "rdiff-backup --server" will run --> - <host name="localhost" user="guest" - <!-- key for SafeKeep --> - key-ctrl="/home/dimi/.ssh/backup_id_dsa" - <!-- key for rdiff-backup --> - key-data="/home/dimi/.ssh/backup2_id_dsa" /> - <!-- where the backuped data will be stored and how long--> - <!-- s=sec, m=min, h=hours, D=days, W=weeks, M=months, or Y=years, - <repo path="./tmp" retention="10D" /> + + <!-- the client backup host, the user under which the servers will connect, + the SSH keys used for launching "safekeep -c" and "rdiff-backup" --> + <host + name="localhost" user="guest" + key-ctrl="/home/dimi/.ssh/backup_id_dsa" + key-data="/home/dimi/.ssh/backup2_id_dsa" + /> + + <!-- location where the backuped data will be stored on the server + and for how long (s=sec, m=min, h=hours, D=days, W=weeks, M=months, or Y=years) --> + <repo + path="./tmp" + retention="10D" + /> + <!-- settings for database dump and for volume snapshot --> <setup> - <!-- type can be "postgres" or "mysql" --> - <dump type="postgres" - <!-- database name --> - db="dbname" - <!-- database user with backup rights --> - user="foobar" - <!-- location of the dump file on the original server --> - file="/var/backup/dumps/mydata" - <!-- cleanup flag --> - cleanup="true" /> - <!-- what volume is to be snapshoted (device location) --> - <!-- special care should be taken when size is decided. Unallocated space must exist on the physical drive --> - <snapshot device="/path/to/volume" size="500M"/> + + <!-- database type ("postgres" or "mysql"), user with backup rights, + location of the dump file on the client host, and flag to remove + or not the dump file after the backup is done --> + <dump + type="postgres" + db="dbname" + user="foobar" + file="/var/backup/dumps/mydata" + cleanup="true" + /> + + <!-- what volume is to be snapshoted (device location) and the size + of the snapshot (unallocated space must exist in the volume group) --> + <snapshot + device="/path/to/volume" + size="500M" + /> + </setup> + + <!-- data to be backuped --> <data> - <!-- each type of tag can be present more than one time --> - <!-- if a database dump was created, it must be added in this section --> + <!-- each type of tag can be present more than one time --> + <!-- if a database dump was created, it must be added in this section --> <include path="/home"/> <exclude path="/home/guest"/> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-12 05:02:14
|
Revision: 279 http://safekeep.svn.sourceforge.net/safekeep/?rev=279&view=rev Author: dimi Date: 2007-01-11 21:02:13 -0800 (Thu, 11 Jan 2007) Log Message: ----------- Fix project name Modified Paths: -------------- safekeep/trunk/.project Modified: safekeep/trunk/.project =================================================================== --- safekeep/trunk/.project 2007-01-12 04:09:52 UTC (rev 278) +++ safekeep/trunk/.project 2007-01-12 05:02:13 UTC (rev 279) @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <projectDescription> - <name>LaBackup</name> + <name>SafeKeep</name> <comment></comment> <projects> </projects> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-12 04:09:54
|
Revision: 278 http://safekeep.svn.sourceforge.net/safekeep/?rev=278&view=rev Author: dimi Date: 2007-01-11 20:09:52 -0800 (Thu, 11 Jan 2007) Log Message: ----------- Write up the motivation page. Modified Paths: -------------- website/trunk/WebContent/motivation.shtml Modified: website/trunk/WebContent/motivation.shtml =================================================================== --- website/trunk/WebContent/motivation.shtml 2007-01-11 23:29:30 UTC (rev 277) +++ website/trunk/WebContent/motivation.shtml 2007-01-12 04:09:52 UTC (rev 278) @@ -5,22 +5,64 @@ <div id="PageMenu"> <span class="PageMenuTitle">On This Page:</span> <a href="#intro">Introduction</a> / - <a href="#adhoc">What's wrong with ad-hoc scripts?</a> + <a href="#why">Why yet another backup program?</a> / </div> <a name="intro"></a> <h2>Introduction</h2> +<p> +Every once in a while you read on a random Internet forum of a poor +soul complaining that program XYZ eat his data for lunch. Invariably, +there is someone there to ask: "You do keep regular backups, don't you?". +You can almost see the smirk on their faces when they ask this irrelevant +question, knowing full well that most likely the person did not do +any regular backups. +</p> <p> -TODO +Truth of the matter is that most people don't do regular backups, +yet few people admit to it. Skipping this essential step of protecting +such a valuable asset seems reckless or lazy at best, and that doesn't +sit well with most folks. </p> -<a name="adhoc"></a> -<h2>What's wrong with ad-hoc scripts?</h2> +<p> +Why do people have such a difficult time understanding the need for +implementing such a simple and basic procedure that can save them +from untold grief? I used to blame the people as lazy, until I realized +I didn't keep regular backups! In fact, I come to realize that it is +not such a simple and basic procedure after all. Shouldn't it be? +</p> +<a name="why"></a> +<h2>Why yet another backup program?</h2> <p> -TODO +Soon after setting up shop as a Linux company, we faced the unavoidable +task of backing up our data. More importantly, our clients that deployed +Linux based systems needed a backup solution. We figured that this was +a "solved" problem, so we took a quick look around for something that +would satisfy our quite reasonable requirements: +<ul> + <li>Must be under an accepted Open Source License</li> + <li>Security is important, even on a LAN</li> + <li>Good error handling, data is important</li> + <li>Take advantage of modern features, like LVM snapshoting</li> + <li>Bandwidth efficient, it may be used over slower links</li> +</ul> </p> +<p> +It turns out that the offer is a little underwhelming. The only one +that came reasonably close to what we needed was <tt>rdiff-backup</tt>, +but that needed work to do what we needed it to do. And so we went +ahead and did the work for our own internal purposes. +</p> +<p> +The end result of our efforts is SmartKeep. We decided to free the +code in the hope that others will find it useful. If you do, please +send us your impressions and suggestions at +<a href="mailto:saf...@li...">saf...@li...</a>. +</p> + <!--#include virtual="footer.shtml" --> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-11 23:29:36
|
Revision: 277 http://safekeep.svn.sourceforge.net/safekeep/?rev=277&view=rev Author: dimi Date: 2007-01-11 15:29:30 -0800 (Thu, 11 Jan 2007) Log Message: ----------- Initial import of the website, still a work-in-progress Added Paths: ----------- website/ website/branches/ website/tags/ website/trunk/ website/trunk/Makefile website/trunk/WebContent/ website/trunk/WebContent/contributing.shtml website/trunk/WebContent/documentation.shtml website/trunk/WebContent/download.shtml website/trunk/WebContent/faq.shtml website/trunk/WebContent/footer.shtml website/trunk/WebContent/forums.shtml website/trunk/WebContent/header.shtml website/trunk/WebContent/images/ website/trunk/WebContent/images/grey_pixel.gif website/trunk/WebContent/images/transp.gif website/trunk/WebContent/index.shtml website/trunk/WebContent/license.shtml website/trunk/WebContent/motivation.shtml website/trunk/WebContent/support.shtml website/trunk/WebContent/theme/ website/trunk/WebContent/theme/formatting.css website/trunk/WebContent/theme/layout.css Added: website/trunk/Makefile =================================================================== --- website/trunk/Makefile (rev 0) +++ website/trunk/Makefile 2007-01-11 23:29:30 UTC (rev 277) @@ -0,0 +1,14 @@ + +all: help + +help: + @echo "Targets:" + @echo " help Displays this message" + @echo " deploy Deploys teh website to SourceForge" + @echo " clean Cleans up the source tree" + +deploy: + cd WebContent; scp -r *.shtml theme images shell.sourceforge.net:/home/groups/s/sa/safekeep/htdocs + +clean: + rm -f WebContent/*~ Property changes on: website/trunk/Makefile ___________________________________________________________________ Name: svn:executable + Added: website/trunk/WebContent/contributing.shtml =================================================================== --- website/trunk/WebContent/contributing.shtml (rev 0) +++ website/trunk/WebContent/contributing.shtml 2007-01-11 23:29:30 UTC (rev 277) @@ -0,0 +1,89 @@ +<!--#set var="title" value="SafeKeep Contributions" --> +<!--#include virtual="header.shtml" --> + +<h1>Contributing</h1> +<div id="PageMenu"> + <span class="PageMenuTitle">On This Page:</span> + <a href="#start">Getting Started</a> / + <a href="#test">Testing and Reporting</a> / + <a href="#style">Coding Style</a> / + <a href="#patches">Submitting Patches</a> +</div> + +<a name="start"></a> +<h2>Getting Started</h2> +<p> +Working knowledge of Python is required. Your best bet is to start with +a fresh source code snapshot, which you may obtain from our +<a href="download.shtml#svn">SVN Repository</a> at SourceForge. +</p> + +<a name="test"></a> +<h2>Testing and Reporting</h2> +<p> +Testing on different distributions is also a valuable contribution. Please report +your results back to us on +<a href="mailto:saf...@li...">saf...@li...</a>. +Do not hesitate to provide as much detail as possible in your reports about +the problems you are seeing. At a minimum, try to include the following: +<ul> + <li>The version of SafeKeep you are using</li> + <li>The operating system you are running SafeKeep on</li> + <li>The version of Python you are running</li> +</ul> + +<a name="style"></a> +<h2>Coding Style</h2> +<p> +Maintain whatever style is present in the code being modified. New code +should also follow the style used in the other files so that the entire +codebase maintains a unified "look". +</p> +<p> +<strong>Note</strong>: please make sure that your Tab size is set to 8. +This is the only sane way in which people in a distributed environment +can work together. If you are using Eclipse, you need to adjust it as +it comes set to 4 by default. +</p> + +<a name="patches"></a> +<h2>Submitting Patches</h2> +<p> +Please submit your patches to the development mailing list: +<a href="mailto:saf...@li...">saf...@li...</a>. +If you aren't sure what exactly a "patch" is, or don't know how to generate one, +but you have got code contributions to make, please don't hesitate to ask questions +on the mailing lists. Generating and appliying patches is an easy thing to get +the hang of, and they drastically simplify code submission and review. +</p> +<p> +Unified contextual diffs against the latest development snapshot are preferred. +If you are using Eclipse, there is built-in support for patch generation and application +under the "Team" menu. +</p> +<p> +When submitting patches, please: +<ul> + <li>Include a ChangeLog entry with your name, email address and a description of what your patch does. </li> + <li>Keep the patch small and the point of the change clear. </li> + <li>Submit one fix or group of related changes per patch. </li> + <li>Generate your patch against the latest version of SafeKeep from SVN (see below). </li> + <li>Be careful to not corrupt the patch through line-wrapping. </li> + <li>Avoid unnecessarily changing the formatting of the code. </li> + <li>Read the diff and make sure it contains only what you want in it. </li> +</ul> +</p> +<p> +Accepted patches will appear in the +<a href="mailto:saf...@li...">saf...@li...</a> +mailing list. If your patch is not applied, review it carefully and check it against the above points. +</p> +<p> +Rejected patches will receive a note in the +<a href="mailto:saf...@li...">saf...@li...</a> +mailing list. We do reply to all patch submissions, so if you receive no response to +your patch please try resubmitting it. +</p> + + +<!--#include virtual="footer.shtml" --> Added: website/trunk/WebContent/documentation.shtml =================================================================== --- website/trunk/WebContent/documentation.shtml (rev 0) +++ website/trunk/WebContent/documentation.shtml 2007-01-11 23:29:30 UTC (rev 277) @@ -0,0 +1,30 @@ +<!--#set var="title" value="SafeKeep Documentation" --> +<!--#include virtual="header.shtml" --> + +<h1>Documentation</h1> +<div id="PageMenu"> + <span class="PageMenuTitle">On This Page:</span> + <a href="#docs">Documentation</a> / + <a href="#ex">Quick Example</a> +</div> + +<a name="docs"></a> +<h2>Documentation</h2> +<p> +Please note that this section is a works-in-progress. +We hope to have them available in the next little while. +<ul> + <li><a href="safekeep-man-1.shtml">SafeKeep man(1) page</a></li> + <li><a href="safekeep-man-5.shtml">SafeKeep man(5) page</a></li> + <li><a href="safekeep-tips.shtml">SafeKeep Tips</a></li> +</ul> +</p> + +<a name="ex"></a> +<h2>Quick Example</h2> +<p> +TODO +</p> + + +<!--#include virtual="footer.shtml" --> Added: website/trunk/WebContent/download.shtml =================================================================== --- website/trunk/WebContent/download.shtml (rev 0) +++ website/trunk/WebContent/download.shtml 2007-01-11 23:29:30 UTC (rev 277) @@ -0,0 +1,62 @@ +<!--#set var="title" value="SafeKeep Download" --> +<!--#include virtual="header.shtml" --> + +<h1>Download</h1> +<div id="PageMenu"> + <span class="PageMenuTitle">On This Page:</span> + <a href="#releases">Releases</a> / + <a href="#svn">Subversion (SVN)</a> / + <a href="#browse">Browse SVN Repository</a> +</div> + +<a name="releases"></a> +<h2>Releases</h2> +<p> +We do not currently provide a release. Version 0.1 of SafeKeep was an internal-only release, +and we are currently in the process of preparing the codebase for a public release. +Please check this space for a release in the near future (within the first quarter of 2007). +</p> + +<a name="svn"></a> +<h2>Subversion (SVN)</h2> +<p> +The source code for SafeKeep is maintained in a SVN repository +at SourceForge. For detailed information on how to checkout +the SafeKeep source code using SVN, see our SourceForge +<a href="http://sourceforge.net/svn/?group_id=185128">SVN page</a>. +</p> +<p> +Here is a quick summary of the SVN information you need: +<ul> + <li><b>Host</b>: <tt>safekeep.svn.sourceforge.net</tt></li> + <li><b>Path</b>: <tt>/svnroot/safekeep/safekeep/trunk</tt></li> +</ul> +To check out the project read-only: +<pre> +$ svn co https://safekeep.svn.sourceforge.net/svnroot/safekeep/<b>ModuleName</b>/trunk <b>ModuleName</b> +</pre> +The following modules are available: +<table border="2"> + <tr> + <th>ModuleName</th> <th>Description</th> + </tr> + <tr> + <td><tt>safekeep</tt></td> <td>The SafeKeep application</td> + </tr> + <tr> + <td><tt>website</tt></td> <td>The HTML code for this website</td> + </tr> +</table> +</p> + +<a name="browse"></a> +<h2>Browse SVN Repository</h2> +<p> +If you just want to take a quick look at the code, you can directly browse the +SVN repository over the web: +<ul> + <li><a href="http://safekeep.svn.sourceforge.net/viewvc/safekeep/">safekeep.svn.sourceforge.net/viewvc/safekeep</a> +</ul> +</p> + +<!--#include virtual="footer.shtml" --> Added: website/trunk/WebContent/faq.shtml =================================================================== --- website/trunk/WebContent/faq.shtml (rev 0) +++ website/trunk/WebContent/faq.shtml 2007-01-11 23:29:30 UTC (rev 277) @@ -0,0 +1,88 @@ +<!--#set var="title" value="SafeKeep FAQ" --> +<!--#include virtual="header.shtml" --> + +<h1>FAQ</h1> +<ol> + <li><a href="#whatis">What is SafeKeep?</a></li> + <li><a href="#who">Who is resposible for it?</a></li> + <li><a href="#why">Why did you write it?</a></li> + <li><a href="#open">Is it Open Source?</a></li> + <li><a href="#commercial">Can it be used in commercial environments?</a></li> + <li><a href="#mylicense">Will the SafeKeep license restrict the choise of license for my code?</a></li> + <li><a href="#modify">Can I modify the SafeKeep code?</a></li> + <li><a href="#develop">How do I become a SafeKeep developer? What do I need to know?</a></li> + <li><a href="#submit">How can I submit code that I have written back to the project?</a></li> +</ol> + +<ol class="faq"> + <li> <a name="whatis"></a>What is SafeKeep? + <div class="answer"> + SafeKeep is a centralized and easy to use backup application that + combines the best features of a mirror and an incremental backup. + It is designed for ease of use and centralized management, removing + a lot of the tedium typically involved in setting up such systems. + It take advantage of new Linux features such as the LVM system, to + provide consistent and secure backups. + </div> + </li> + <li> <a name="who"></a>Who is resposible for it? + <div class="answer"> + SafeKeep was written at Lattica by: + <ul> + <li>Dimi Paun</li> + <li>Stelian Pop</li> + </ul> + </div> + </li> + <li> <a name="why"></a>Why did you write it? + <div class="answer"> + There are lots of such packages out there, but none seem to + fit the bill. See our <a href="motivation.shtml">Motivation page</a> + for more on this subject. + </div> + </li> + <li> <a name="open"></a>Is it Open Source? + <div class="answer"> + Yes, and it is <a href="license.shtml">licensed</a> under the + terms of the <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a>. + </div> + </li> + <li> <a name="commercial"></a>Can it be used in commercial environments? + <div class="answer"> + Absolutely. We welcome and encourage both free and commercial use. + </div> + </li> + <li> <a name="mylicense"></a>Will the SafeKeep license restrict the choice of license for my code? + <div class="answer"> + Not at all, as long as you don't copy parts of it into your code. + </div> + </li> + <li> <a name="modify"></a>Can I modify the SafeKeep code? + <div class="answer"> + Yes, you can. We encourage you to contribute them back so that + all users benefit. If you want to keep them private, you can + do so as long as you don't redistribute the results. If you want + to distribute modified versions of SafeKeep, you will have + to make sure the recipients can easily get to the changes that + you've made. You can read more about this on our + <a href="license.shtml">License page</a>. + </div> + </li> + <li> <a name="develop"></a>How do I become a SafeKeep developer? What do I need to know? + <div class="answer"> + Working knowledge of Python and Linux is required. + For more information on this subject, please refer + to our <a href="contributing.shtml">Contributing page</a>. + </div> + </li> + <li> <a name="submit"></a>How can I submit code that I have written back to the project? + <div class="answer"> + To submit a patch for inclusion in SafeKeep, simply + send a <code>diff -u</code> to the + <a href="saf...@li...">saf...@li...</a> + mailing list. Please provide a description of your changes, and + the license (BSD) for your code. + </div> + </li> +</ol> +<!--#include virtual="footer.shtml" --> Added: website/trunk/WebContent/footer.shtml =================================================================== --- website/trunk/WebContent/footer.shtml (rev 0) +++ website/trunk/WebContent/footer.shtml 2007-01-11 23:29:30 UTC (rev 277) @@ -0,0 +1,6 @@ +</div><!--end of Content--> + +<div id="Footer"> +</div> +</body> +</html> Added: website/trunk/WebContent/forums.shtml =================================================================== --- website/trunk/WebContent/forums.shtml (rev 0) +++ website/trunk/WebContent/forums.shtml 2007-01-11 23:29:30 UTC (rev 277) @@ -0,0 +1,62 @@ +<!--#set var="title" value="SafeKeep Mailing Lists, IRC" --> +<!--#include virtual="header.shtml" --> + +<h1>Forums</h1> +<div id="PageMenu"> + <span class="PageMenuTitle">On This Page:</span> + <a href="#ml">Mailing Lists</a> / + <a href="#irc">IRC Channel</a> +</div> + +<a name="ml"></a> +<h2>Mailing Lists</h2> + +<p>Our mailing lists are hosted at <a href="http://sourceforge.net">SourceForge</a>, +and are being managed by <a href="http://www.list.org">GNU Mailman</a>. They can be subscribed +to, and unsubscribed from <a href="http://sourceforge.net/mail/?group_id=185128">over the web</a>. + +<ul> + <li> + [<a href="http://lists.sourceforge.net/lists/listinfo/safekeep-devel">(Un-)Subscribe</a>] + [<a href="http://sourceforge.net/mailarchive/forum.php?forum_id=51273">Archive</a>] + <a href="mailto:saf...@li...">saf...@li...</a><br /> + A medium traffic open list for discussing SafeKeep development, patches, support + questions, or anything else of interest to SafeKeep developers and users.<br /><br /> + </li> + + <li> + [<a href="http://lists.sourceforge.net/lists/listinfo/safekeep-commit">(Un-)Subscribe</a>] + [<a href="http://sourceforge.net/mailarchive/forum.php?forum_id=51271">Archive</a>] + <a href="mailto:saf...@li...">saf...@li...</a><br /> + A medium traffic read only list which tracks commits to the SVN tree. <br /> + Please note that the notification emails contain the patches that are being + applied. Volume notwithstanding, this list is the best way to keep on top + of the latest development progress.<br /><br /> + </li> +</ul> + +<p>Please direct all bug reports, support questions, patches, feature requests, or any other +SafeKeep-related issue to <a href="mailto:saf...@li...">saf...@li...</a>. +This will ensure that your request will be looked at by a developer in a timely fashion. +Note that you do not need to be subscribed to the mailing list to post, simply email +us at the address above. +</p> + +<a name="irc"></a> +<h2>IRC Channel</h2> + +<p><a href="http://www.freenode.net">Freenode.net</a> hosts a chat room for +SafeKeep. You can access the chat room using an IRC program such as +<a href="http://www.xchat.org/">X-Chat</a> (Linux) or +<a href="http://www.mirc.com/">mIRC</a> (Windows). Use the settings listed below: + +<ul> + <li><b>Server:</b> irc.freenode.net</li> + <li><b>Port:</b> 6667</li> + <li><b>Channel:</b> #safekeep</li> +</ul> + +If you use Mozilla or any other browser that supports IRC urls, you can +join the chat by clicking on <a href="irc://irc.freenode.net/#safekeep">irc://irc.freenode.net/#safekeep</a>. + +<!--#include virtual="footer.shtml" --> Added: website/trunk/WebContent/header.shtml =================================================================== --- website/trunk/WebContent/header.shtml (rev 0) +++ website/trunk/WebContent/header.shtml 2007-01-11 23:29:30 UTC (rev 277) @@ -0,0 +1,26 @@ +<html> + +<head> + <title><!--#echo var="title" --></title> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> + <meta name="description" content="A design by Alina Silvestrovici" /> + + <link rel="stylesheet" href="theme/layout.css" type="text/css" /> + <link rel="stylesheet" href="theme/formatting.css" type="text/css" /> +</head> + +<body> +<div id="Header"> + <div id="HeaderTitle">SafeKeep</div> + <div id="HeaderNavigation"> + <a href="index.shtml">Home</a> + <a href="support.shtml">Support</a> + <a href="license.shtml">License</a> + <a href="download.shtml">Download</a> + <a href="forums.shtml">Forums</a> + <a href="faq.shtml">FAQ</a> + <a href="documentation.shtml">Documentation</a> + </div> <!--end of HeaderNavigation--> +</div> <!--end of Header --> + +<div id="Content"> Added: website/trunk/WebContent/images/grey_pixel.gif =================================================================== (Binary files differ) Property changes on: website/trunk/WebContent/images/grey_pixel.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: website/trunk/WebContent/images/transp.gif =================================================================== (Binary files differ) Property changes on: website/trunk/WebContent/images/transp.gif ___________________________________________________________________ Name: svn:mime-type + application/octet-stream Added: website/trunk/WebContent/index.shtml =================================================================== --- website/trunk/WebContent/index.shtml (rev 0) +++ website/trunk/WebContent/index.shtml 2007-01-11 23:29:30 UTC (rev 277) @@ -0,0 +1,54 @@ +<!--#set var="title" value="SafeKeep Home" --> +<!--#include virtual="header.shtml" --> + +<h1>Introduction</h1> +<p> +SafeKeep is a centralized and easy to use backup application that combines +the best features of a mirror and an incremental backup. +</p> + +<p> +SafeKeep is probably for you, if you: +<ul> + <li><strong>Run Linux</strong>, and you need to backup your data, </li> + <li><strong>Prefer Open Source</strong>, and you are not willing to trust + your valuable data to a closed, prorietary product, </li> + <li><strong>Demand Security</strong>, because it is not negotiable, </li> + <li><strong>Strive for Simplicity</strong>, because TCO matters. </li> +</ul> +</p> + +<p> +If you feel SafeKeep may be the answer for your data backup needs, take +a few moments to see what it can offer. We've tried to make it +<strong>simple</strong>, <strong>secure</strong>, and +<strong>manageable</strong>. We <a href="motivation.shtml">built it</a> +on top of solid open source components that have been extensively +tested by the community. You can trust SafeKeep with your data. +</p> + +<p> +To see how SafeKeep looks like in action, take a look our +<a href="documentation.shtml#ex">quick example</a>, or +browse the <a href="documentation.shtml">documentation</a>. +Last but not least, SafeKeep is Open Source and you are always +welcome to jump in and <a href="contributing.shtml">contribute</a>! +</p> + +<h2>News</h2> + +<div class="NewsBox"> +<p class="NewsTitle">Jan 19, 2007: SafeKeep website goes live +<img src="images/grey_pixel.gif" width="100%" height="1" alt=""> +</p> +<blockquote> +<p> +The SafeKeep site is up-and-running! We will continue to add content +and improve the rendering in various browsers. Meanwhile, please +report all problems to +<a href="mailto:saf...@li...">saf...@li...</a>. +</p> +</blockquote +</div> + +<!--#include virtual="footer.shtml" --> Added: website/trunk/WebContent/license.shtml =================================================================== --- website/trunk/WebContent/license.shtml (rev 0) +++ website/trunk/WebContent/license.shtml 2007-01-11 23:29:30 UTC (rev 277) @@ -0,0 +1,43 @@ +<!--#set var="title" value="SafeKeep License" --> +<!--#include virtual="header.shtml" --> + +<h1>License</h1> +<div id="PageMenu"> + <span class="PageMenuTitle">On This Page:</span> + <a href="#copyright">Copyright</a> / + <a href="#license">License</a> +</div> + + +<a name="copyright"></a> +<h2>Copyright</h2> +<p> +Copyright (c) 2007 Lattica, Inc. (see AUTHORS file for a complete list). +</p> + +<a name="license"></a> +<h2>License</h2> +<p> +SafeKeep is <a href="http://www.opensource.org">Open Source</a>, distributed under the terms of the +<a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</a> (GPL). +</p> +<p> +As a backup application, SafeKeep is a key components of your infrastructure. +We believe that infrastructure components should be open, especially when they +safeguard such an important asset as your data. +</p> +<p> +The GPL is a standard license designed to allow the use of SafeKeep in both open source +and commercial environemnts, while quaranting you access to the source code. It places +<em>no restrictions</em> on your other application's lincenses, and avoids the need for +any sort of license management, no matter how and where your use the application. +</p> +<p> +If you need to modify SafeKeep to adjust it to your own requirements, you are allowed +to do so without the need to share those changes with others. However, if you want to +redistribute your modifications, the GPL requires that you license them under the GPL +terms so that others can benefit from them. This requirement ensures that all users of +the software have access to any future improvements. +</p> + +<!--#include virtual="footer.shtml" --> Added: website/trunk/WebContent/motivation.shtml =================================================================== --- website/trunk/WebContent/motivation.shtml (rev 0) +++ website/trunk/WebContent/motivation.shtml 2007-01-11 23:29:30 UTC (rev 277) @@ -0,0 +1,26 @@ +<!--#set var="title" value="SafeKeep Raison d'Etre" --> +<!--#include virtual="header.shtml" --> + +<h1>Motivation</h1> +<div id="PageMenu"> + <span class="PageMenuTitle">On This Page:</span> + <a href="#intro">Introduction</a> / + <a href="#adhoc">What's wrong with ad-hoc scripts?</a> +</div> + +<a name="intro"></a> +<h2>Introduction</h2> + +<p> +TODO +</p> + +<a name="adhoc"></a> +<h2>What's wrong with ad-hoc scripts?</h2> + +<p> +TODO +</p> + + +<!--#include virtual="footer.shtml" --> Added: website/trunk/WebContent/support.shtml =================================================================== --- website/trunk/WebContent/support.shtml (rev 0) +++ website/trunk/WebContent/support.shtml 2007-01-11 23:29:30 UTC (rev 277) @@ -0,0 +1,53 @@ +<!--#set var="title" value="SafeKeep Support" --> +<!--#include virtual="header.shtml" --> + +<h1>Support</h1> +<div id="PageMenu"> + <span class="PageMenuTitle">On This Page:</span> + <a href="#community">Community</a> / + <a href="#commercial">Commercial</a> / + <a href="#bugs">Bug Reporting</a> +</div> + +<a name="community"></a> +<h2>Community</h2> +<p> +SafeKeep has a variety of community and commercial support options available for users. +Community support is offered on <a href="forums.shtml#ml">mailing lists</a>, and +on <a href="forums.shtml#irc">IRC</a>. We prefer to keep the bulk of the support +discussions on the mailing list rather then IRC, so that the information gets +archived and indexed to benefit everybody. +</p> + +<a name="commercial"></a> +<h2>Commercial</h2> +<p> +Commercial support is also available from the company sponsoring +the project, <a href="http://lattica.com">Lattica, Inc.</a> +</p> +<p> +While we believe that the free community support should satisfy +most people's needs, there are environments where time and +service guarantees are important. Please email +<a href="mail:sa...@la...">sa...@la...</a> for more +information. +</p> + +<a name="bugs"></a> +<h2>Bug Reporting</h2> +<p> +If you've found a bug in SafeKeep, please submit all the relevant details to +<a href="mailto:saf...@li...">saf...@li...</a>. +Do not hesitate to provide as much detail as possible in your report. At a minimum, +try to include the following: +<ul> + <li>A detalied description of the problem</li> + <li>Instructions on how to replicate it, if possible</li> + <li>The version of SafeKeep you are using</li> + <li>The configuration files, if they don't contain confidential information</li> + <li>The operating system you are running SafeKeep on</li> +</ul> + +</p> + +<!--#include virtual="footer.shtml" --> Added: website/trunk/WebContent/theme/formatting.css =================================================================== --- website/trunk/WebContent/theme/formatting.css (rev 0) +++ website/trunk/WebContent/theme/formatting.css 2007-01-11 23:29:30 UTC (rev 277) @@ -0,0 +1,218 @@ +/* Predefined XHTML Tags */ +body { + background: #fefefe; + color: #000000; + font-family: Arial, Lucida Grande, sans-serif; + font-size: 1em; + line-height: 1.25em; +} +h1 { + font-family: "trebuchet ms", tahoma, sans-serif; + color: #515351; + border-bottom: 1px solid #515351; + line-height: 1.2em; +} +h2 { + color: #515351; + font-size: 1.3em; +} +h3 { + color:#515351; + border-bottom: #515351 1px dashed; + font-size: 1.2em; +} +h4 { + color:#515351; + font-size: 1.1em; +} +p { + line-spacing: 0.2em; + line-height: 1.2em; +} +p, tr, td, ul, li { + font-size: 0.9em; +} + + + +/*Custom ID tags*/ +#Header {margin-top: 30px; + background-color: #7b7da5; + border: 2px solid #6b6d8f; + color: #ffffff; +} +#HeaderTitle { + font-size: 3em; + font-weight: bold; + padding: 10px; +} +#HeaderTitleSub { + font-weight: bold; +} +#HeaderNavigation { + padding: 0.5em; + border: 2px solid #8386AF; + background-color: #9B9ECF; +} +#HeaderNavigation a { + border-right: 2px solid #39471c; + border-left: 2px solid #39471c; + color: #000000; + padding-left: 0.5em; + padding-right: 0.5em; + padding-bottom: 0.2em; + text-decoration: none; +} +#HeaderNavigation a:hover { + + border-bottom: 2px solid #39471c; +} +#Content{ + background: #DDDDDD; + text-align: left; + border: 2px dashed #ccc; +} +#Footer { + padding: 0.5em; + font: sans-serif 0.9em; + color: #000; +} + + +/*Code Box Style*/ + +pre { + padding: 0.5em; + border: 1pt solid #c0c0c0; + background: #F0ECE6; + white-space: pre; + /* begin css 3 or browser specific rules - do not remove! + see: http://forums.techguy.org/archive/index.php/t-249849.html */ + white-space: pre-wrap; + word-wrap: break-word; + swhite-space: -moz-pre-wrap; + white-space: -pre-wrap; + white-space: -o-pre-wrap; + /* end css 3 or browser specific rules */ +} + +code { + white-space: pre; +} + +/*Lists Styles*/ +ol, ul { + margin-left: 0; + padding-left: 1.5em; + list-style-position: inside; + } +ol ol, ul ul { + padding-left: 2em; + } +ol ol ol, ul ul ul { + padding-left: 2.5em; + } +ul { + list-style-type: disc; + } +ul ul { + list-style-type: circle; + } +ul ul ul { + list-style-type: square; + } + + +/*Side Menu*/ +div.menu { + + width:100%; + padding: 0; + background-color: #9c9ece; + } +div.menu a { + display: block; + margin: 0; + width: 100%; + padding: 0.5em; + color: #000000; + text-decoration: none; + } +html>body div.menu a { + width: auto; + } +div.menu a:hover { + color: white; + text-decoration: underline; + } +.LeftContainerItem { + border-top: 2px solid #f5a626; + border-bottom: 2px solid #f5a626; + margin-bottom: 1em; + background-color: ##9B9ECF; +} +.LeftContainerItem img { + border: 0px solid black; + text-align: center; +} +.LeftContainerHeader { + border-bottom: 1px dashed #8386AF; + padding: 0.5em; + font-weight: bold; + background-color: #7b7da5; +} + +/*Links, general*/ +a:link { + color: #4d55cf; + text-decoration: underline; +} +a:visited { + color:##4B8F47; + text-decoration: underline; +} +a:hover { + color:#000000; + text-decoration: none; +} +a:active { + color:#000000; + text-decoration: none; +} + +#PageMenu { + margin-top: -1em; +} + +.PageMenuTitle { + font-weight: bold; + color: #7b7da5; +} + +.faq li { + font-weight: bold; +} + +.answer { + padding: 0.5em 2em 1.5em 2em; + font-weight: normal; +} + +.NewsBox { +} + +.NewsBox hr { + margin: -1em 2em 0em 1.5em; + height: 1px; +} + +.NewsBox blockquote { + margin-top: -0.2em; +} + +.NewsTitle { + padding: 0em 2em 0em 2em; + font-size: 14px; + font-weight: bold; + color: black; +} Added: website/trunk/WebContent/theme/layout.css =================================================================== --- website/trunk/WebContent/theme/layout.css (rev 0) +++ website/trunk/WebContent/theme/layout.css 2007-01-11 23:29:30 UTC (rev 277) @@ -0,0 +1,40 @@ +/* Predefined XHTML Tags */ +body { + padding: 0; + margin: 0; + text-align: center; + } + +/* Custom defined IDs */ +#Header +{ margin: 0 auto 25px; + padding: 10px; + width:75%; + text-align: left; + } +#HeaderNavigation { + float: right; + } +#LeftContainer { + margin: 10px; + float: left; + width: 10em; + clear: left; +} +#BackgroundColor { + margin: 1em; +} +#Content { + margin: 0 auto 5px; + padding: 10px; + width: 75%; + text-align: left; + } +#Footer { + margin: 0 auto 25px; + padding: 2px; + width: 75%; + } + + + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-04 00:36:30
|
Revision: 276 http://safekeep.svn.sourceforge.net/safekeep/?rev=276&view=rev Author: dimi Date: 2007-01-03 16:36:26 -0800 (Wed, 03 Jan 2007) Log Message: ----------- Test checkin 2 Modified Paths: -------------- safekeep/trunk/README Modified: safekeep/trunk/README =================================================================== --- safekeep/trunk/README 2007-01-04 00:31:07 UTC (rev 275) +++ safekeep/trunk/README 2007-01-04 00:36:26 UTC (rev 276) @@ -56,4 +56,3 @@ features, or it will proceed as if they were the same. In that case, the other end must be able to handle the older protocol appropriately. - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <di...@us...> - 2007-01-04 00:31:09
|
Revision: 275 http://safekeep.svn.sourceforge.net/safekeep/?rev=275&view=rev Author: dimi Date: 2007-01-03 16:31:07 -0800 (Wed, 03 Jan 2007) Log Message: ----------- Test checkin 1 Modified Paths: -------------- safekeep/trunk/README Modified: safekeep/trunk/README =================================================================== --- safekeep/trunk/README 2007-01-03 14:36:40 UTC (rev 274) +++ safekeep/trunk/README 2007-01-04 00:31:07 UTC (rev 275) @@ -57,4 +57,3 @@ other end must be able to handle the older protocol appropriately. - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: Dimi P. <di...@la...> - 2007-01-03 18:51:23
|
--=20 Dimi Paun <di...@la...> Lattica, Inc. |