From: Micah Anderson Date: Wed, 26 Oct 2005 23:04:16 +0000 (+0000) Subject: Moving to autotools standard layout X-Git-Tag: backupninja-0.9.2~94 X-Git-Url: https://git.stderr.nl/gitweb?a=commitdiff_plain;h=c4785ba5edb9738f7e9da8c4086a4b6984515dd2;p=matthijs%2Fupstream%2Fbackupninja.git Moving to autotools standard layout --- diff --git a/docs/README b/docs/README deleted file mode 100644 index 849fe3a..0000000 --- a/docs/README +++ /dev/null @@ -1,256 +0,0 @@ - - |\_ - B A C K U P N I N J A /()/ - `\| - - a silent flower blossom death strike to lost data. - -Backupninja allows you to coordinate system backup by dropping a few -simple configuration files into /etc/backup.d/. Most programs you -might use for making backups don't have their own configuration file -format. Backupninja provides a centralized way to configure and -coordinate many different backup utilities. - -Features: - - easy to read ini style configuration files. - - you can drop in scripts to handle new types of backups. - - backup actions can be scheduled - - you can choose when status report emails are mailed to you - (always, on warning, on error, never). - - console-based wizard (ninjahelper) makes it easy to create - backup action configuration files. - - passwords are never sent via the command line to helper programs. - - works with Linux-Vservers (http://linux-vserver.org/) - -Backup types: - - secure, remote, incremental filesytem backup (via rdiff-backup). - incremental data is compressed. permissions are retained even - with an unpriviledged backup user. - - backup of mysql databases (via mysqlhotcopy and mysqldump). - - backup of ldap databases (via slapcat and ldapsearch). - - basic system and hardware info - - encrypted remote backups (via duplicity). - - backup of subversion repositories. - -The following options are available: --h, --help This usage message --d, --debug Run in debug mode, where all log messages are - output to the current shell. --f, --conffile FILE Use FILE for the main configuration instead - of /etc/backupninja.conf --t, --test Test run mode. This will test if the backup could run, without actually - preforming any backups. For example, it will attempt to authenticate - or test that ssh keys are set correctly. --n, --now Perform actions now, instead of when they might be scheduled. - No output will be created unless also run with -d. ---run FILE Runs the specified action FILE (e.g. one of the /etc/backup.d/ files). - Also puts backupninja in debug mode. - -CONFIGURATION FILES -=================== - -The general configuration file is /etc/backupninja.conf. In this file -you can set the log level and change the default directory locations. -You can force a different general configuration file with "backupninja --f /path/to/conf". - -To preform the actual backup, backupninja processes each configuration -file in /etc/backup.d according to the file's suffix: - - .sh -- run this file as a shell script. - .rdiff -- filesystem backup (using rdiff-backup) - .dup -- filesystem backup (using duplicity) - .mysql -- backup mysql databases - .ldap -- backup ldap databases - .pgsql -- backup PostgreSQL databases - .sys -- general hardware, partition, and system reports. - .svn -- backup subversion repositories - .maildir -- incrementally backup maildirs (very specialized) - -Support for additional configuration types can be added by dropping -bash scripts with the name of the suffix into /usr/share/backupninja. - -The configuration files are processed in alphabetical order. However, -it is suggested that you name the config files in "sysvinit style." - -For example: - 00-disabled.ldap - 10-runthisfirst.sh - 20-runthisnext.mysql - 90-runthislast.rdiff - -Typically, you will put a '.rdiff' config file last, so that any -database dumps you make are included in the filesystem backup. -Configurations files with names beginning with 0 (zero) or ending with -.disabled (preferred method) are skipped. - -Unless otherwise specified, the config file format is "ini style." - -For example: - - # this is a comment - - [fishes] - fish = red - fish = blue - - [fruit] - apple = yes - pear = no thanks \ - i will not have a pear. - - -SCHEDULING -========== - -By default, each configuration file is processed everyday at 01:00 (1 -AM). This can be changed by specifying the 'when' option in a config -file. - -For example: - - when = sundays at 02:00 - when = 30th at 22 - when = 30 at 22:00 - when = everyday at 01 <-- the default - when = Tuesday at 05:00 - -A configuration file will be processed at the time(s) specified by the -"when" option. If multiple "when" options are present, then they all -apply. If two configurations files are scheduled to run in the same -hour, then we fall back on the alphabetical ordering specified above. -If two configurations files are scheduled close to one another in -time, it is possible to have multiple copies of backupninja running if -the first instance is not finished before the next one starts. - -Make sure that you put the "when" option before any sections in your -configuration file. - -These values for 'when' are equivalent: - - when = tuesday at 05:30 - when = TUESDAYS at 05 - -These values for 'when' are invalid: - - when = tuesday at 2am - when = tuesday at 2 - when = tues at 02 - - -REAL WORLD USAGE -================ - -Backupninja can be used to implement whatever backup strategy you -choose. It is intended, however, to be used like so: - -(1) First, databases are safely copied or exported to /var/backups. - Typically, you cannot make a file backup of a database while it - is in use, hence the need to use special tools to make a safe copy - or export into /var/backups. - -(2) Then, vital parts of the file system, including /var/backups, are - nightly pushed to a remote, off-site, hard disk (using - rdiff-backup). The local user is root, but the remote user is not - priviledged. Hopefully, the remote filesystem is encrypted. - -There are many different backup strategies out there, including "pull -style", magnetic tape, rsync + hard links, etc. We believe that the -strategy outlined above is the way to go because: (1) hard disks are -very cheap these days, (2) pull style backups are no good, because then -the backup server must have root on the production server, and (3) -rdiff-backup is more space efficient and featureful than using rsync + -hard links. - - -SSH KEYS -======== - -In order for rdiff-backup to sync files over ssh unattended, you must -create ssh keys on the source server and copy the public key to the -remote user's authorized keys file. For example: - - root@srchost# ssh-keygen -t dsa - root@srchost# ssh-copy-id -i /root/.ssh/id_dsa.pub backup@desthost - -Now, you should be able to ssh from user 'root' on srchost to -user 'backup' on desthost without specifying a password. - -Note: when prompted for a password by ssh-keygen, just leave it -blank by hitting return. - -The included helper program "ninjahelper" will walk you through creating -an rdiff-backup configuration, and will set up the ssh keys for you. - -INSTALLATION -============ - -Requirements: - apt-get install bash gawk - -Recommended: - apt-get install rdiff-backup gzip hwinfo - -Files: - /usr/sbin/backupninja -- main script - /etc/cron.d/backupninja -- runs main script nightly - /etc/logrotate.d/backupninja -- rotates backupninja.log - /etc/backup.d/ -- directory for configuration files - /etc/backupninja.conf -- general options - /usr/share/backupninja -- handler scripts which do the actual work - -Installation: - There is no install script, but you just need to move files to the - correct locations. All files should be owned by root. - - # tar xvzf backupninja.tar.gz - # cd backupninja - # mv backupninja /usr/sbin/backupninja - # mv ninjahelper /usr/sbin/ninjahelper - # mv etc/logrotate.d/backupninja /etc/logrotate.d/backupninja - # mv etc/cron.d/backupninja /etc/cron.d/backupninja - # mkdir /etc/backup.d/ - # mv etc/backupninja.conf /etc/backupninja.conf - # mv handlers /usr/share/backupninja - - -VSERVERS -======== - -If you are using Linux-Vservers (http://linux-vserver.org/) there are some -special capabilities that different handlers have to make vserver backups easier. -Set the variable "vservers" to be "yes" in /etc/backupninja.conf and see the -example configuration files for each handler to configure the vserver specific -variables. - -Additional vserver variables that can be configured in /etc/backupninja.conf. but -probably don't need to be changed: - -VSERVERINFO (default: /usr/sbin/vserver-info) -VSERVER (default: /usr/sbin/vserver) -VROOTDIR (default: `$VSERVERINFO info SYSINFO |grep vserver-Rootdir | awk '{print $2}'`) - -NINJAHELPER -=========== - -Ninjahelper is an additional script which will walk you through the process of -configuring backupninja. Ninjahelper has a menu driven curses based interface -(using dialog). - -To add an additional 'wizard' to ninjahelper, follow these steps: - -(1) to add a helper for the handler "blue", create the file - blue.helper in the directory where the handlers live. - (ie /usr/share/backupninja). - -(2) next, you need to add your helper to the global HELPERS variable - and define the main function for your helper (the function name - is always _wizard). for example, blue.helper: - HELPERS="$HELPERS blue:description_of_this_helper" - blue_wizard() { - ... do work here ... - } - -(3) check the examples of the included helpers to see how they are - written. The dialog functions are defined in easydialog.sh. - diff --git a/docs/changelog b/docs/changelog deleted file mode 100644 index 04b6181..0000000 --- a/docs/changelog +++ /dev/null @@ -1,165 +0,0 @@ -version 0.9.1 - fixed many bugs in rdiff helper - rdiff handler does not require 'label' - -version 0.9 -- October 19 2005 - *** IMPORTANT CHANGE, UPGRADE AT ONCE *** - fixed insecure temporary file creation - ***************************************** - removed erroneous magic file marker in pgsql handler - fixed incorrect find positional - changed direct grep of /etc/passwd to getent passwd. - rdiff helper has much better information on failed ssh attempt - (patch from cmccallum@thecsl.org). - rdiff handler now supports remote source and local dest. - (patch from cmccallum@thecsl.org). - man pages are greatly improved. - -version 0.8 -- September 15 2005 - added pgsql (PostgreSQL) handler, with vservers support. - added vservers support to duplicity handler - Note: the configuration is a bit different than the rdiff - handler's one, but the default behavior is the same: - have a look at example.dup. - improved README - documented .disabled method. - corrected VROOTDIR default value. - added ninjahelper to the install instructions. - improved rdiff, dup and sys handlers' vservers support - prevent vserver-debiantools' $VROOTDIR/ARCHIVES directory - to be seen as a vserver - changes to sys handler - make use of configurable $VSERVERINFO instead of hard-coded vserver-info. - fixed dpkg existence test inside vserver. - fixed $nodpkg use. - changes to pgsql handler - now checks if the specified vserver is running. - now checks if $PGSQLDUMP/$PGSQLDUMPALL are available where needed. - now checks if "postgres" user exists on the host/vserver. - changes to ninjahelper - check_perms() does not die anymore on group/world readable - helper scripts (now consistent with the "helper scripts - must not be group or world writable!" error msg). - xedit action now tries $EDITOR, then /etc/alternatives/editor, - then nano, vim and vi, and aborts if none of these exists. - added helper for pgsql handler. - rdiff handler now does not require 'label' - changes to mysql and svn handlers' vservers support - these handlers now check if the source vserver is running - added 'ignores' for mysql handler. (thanks Daniel.Bonniot@inria.fr) - -version 0.7 -- July 26 2005 - added ninjahelper: a dialog based wizard for creating backupninja configs. - considerably improved and changed the log file output. - you can now disable actions with .disabled (this is new preferred method). - added makecd handler and example.makecd for backing up to cd/dvd (thanks stef). - fixed bug when specifying multiple 'when' options. - -version 0.6 -- June 16 2005 - ldap handler has new options: backup method to use (ldapsearch or - slapcat), restart, passwordfile and binddn. Default backup method - is set to ldapsearch as this is safer - ****************************************************************** - NOTE: to get the previous default behavior with the ldap handler, - you must set "method = slapcat". The new default is ldapsearch. - ****************************************************************** - implemented fix so that the main script will echo fatal errors rather - than being silent about them, this means an error message every hour - if there is a major configuration problem (not a handler problem) - added vserver support to main script and to the handlers: mysql, svn, sys, rdiff - changes to duplicity handler (thanks intrigeri!): - "keep = yes" now disables file cleaning on desthost - added "sign" option for backups signing - added "encryptkey" option to specify the gpg key to use - split config into [source], [gpg] and [dest] sections - added "nicelevel" option - added "testconnect" option - added "sshoptions" option (will be passed to ssh/scp) - added "bandwidthlimit" option - example.dup example config file for duplicity handler - added trac (http://trac.edgewall.com/) environment handler (thanks Charles Lepple!) - added configfile option to mysql handler - the default is /etc/mysql/debian.cnf. with this, - sqldump doesn't need dbusername. (hotcopy still does). - fixed bug in mysql handler which caused some passwords to not work. - (.my.cnf files now have double quotes around password) - can now pass options to hwinfo and sfdisk in sys handler. - -version 0.5 -- April 12 2005 - rdiff handler works when remote sshd has a banner - rdiff handler supports local dest - logfile is created if it doesn't exist - added "when = hourly" - added optional 'nicelevel' to rdiff handler - fixed bug where actions were not run in numeric order. - improved 'when' parsing. - -version 0.4.4 -- March 18 2005 - results of handlers are now read line by line. - changes to rdiff handler: added "options", and "keep" is - not necessarily days now (ie, it will pass straight through to - rdiff-backup if the keep has a unit on it, otherwise it adds the 'D'). - added dup handler (still pretty beta) - added maildir handler (very specialized handler) - added --run option (runs the specified action file) - improved sys handler, now uses hwinfo - added subversion hotbackup handler, svn. - added PATH to cron.d file, which fixes file not found errors. - -version 0.4.2 -- Jan 6 2005 - fixed bug which caused a report email to be sent even if no actions were run. - fixed bug where multiple handler status messages were ignored - added status in the subject line of report emails - -version 0.4.1 -- Jan 3 2005 - added $usecolors and now more conservative about when colors are echoed. - fixed major bug, 'when' actually works now. - replaced debug function with debug, info, warning, error, fatal. - added --now option to force all actions to be performed now. - -version 0.4 -- Dec 26 2004 - added "when" option, so that all configs can specify when - they are to be run. - added reportsuccess and reportwarning config options - added .sys handler (hardware, packages, partitions). - -version 0.3.4 -- Dec 8 2004 - fixed numerical variable quoting compatibility with older wc - fixed stderr redirect bug - some comments in example.rdiff - -version 0.3.3 -- Nov 10 2004 - '*' (asterisk) works now in rdiff config files - works now with gawk as well as mawk - many bug fixes to ldap handler - paths to helper scripts can be configured in global config - does not require /usr/bin/stat - -version 0.3.2 -- Sept 29 2004 - handler scripts are no longer executable (to comply with debian policy) - handler error and warning messages are sent with the notify email - -version 0.3.1 -- Sept 5 2004 - added ldap handler - moved sh support to a handler script - add test mode, where no action is taken. - added --help - force only root can read /etc/backup.d/* - fixed missing equals symbols in example.rdiff - changed backupninja executable to be /usr/sbin rather than /usr/bin - -version 0.3 -- Oct 20 2004 - ** IMPORTANT ** all config files are now ini style, not apache style - rewrote all scripts in bash for portability - added drop-in backupninja lib directory (/usr/share/backupninja) - all scripts are now run as root - -version 0.2 -- Oct 14 2004 - move distribution folder ./cron.d to ./etc/cron.d - fixed bug: removed printr of excludes (!) - added support for changing the user/group in rdiff sources. - added support for .mysql config files. - -version 0.1 -- Oct 8 2004 - initial release - diff --git a/docs/examples/example.dup b/docs/examples/example.dup deleted file mode 100644 index 7db7771..0000000 --- a/docs/examples/example.dup +++ /dev/null @@ -1,111 +0,0 @@ - -# passed directly to duplicity -#options = --verbosity 8 - -# default is 0, but set to 19 if you want to lower the priority. -nicelevel = 19 - -# default is yes. set to no to skip the test if the remote host is alive -#testconnect = no - -###################################################### -## gpg section -## (how to encrypt and optionnally sign the backups) - -[gpg] - -# passphrase needed to unlock the GnuPG key -# NB: do not quote it, and it should not contain any quote -password = a_very_complicated_passphrase - -# default is no, for backward compatibility with backupninja <= 0.5. -# when set to yes, encryptkey option must be set below. -sign = yes - -# key ID used for data encryption and, optionnally, signing. -# if not set, local root's default gpg key is used. -encryptkey = 04D9EA79 - -###################################################### -## source section -## (where the files to be backed up are coming from) - -[source] - -# files to include in the backup -# (supports globbing with '*') -# BIG FAT WARNING -# Symlinks are not dereferenced. Moreover, an include line whose path -# contains, at any level, a symlink to a directory, will only have the -# symlink backed-up, not the target directory's content. Yes, you have -# to dereference yourself the symlinks, or to use 'mount --bind' -# instead. -# EXAMPLE -# Let's say /home is a symlink to /mnt/crypt/home ; the following line -# will only backup a "/home" symlink ; neither /home/user nor -# /home/user/Mail will be backed-up : -# include = /home/user/Mail -# A workaround is to 'mount --bind /mnt/crypt/home /home' ; another -# one is to write : -# include = /mnt/crypt/home/user/Mail - -include = /var/spool/cron/crontabs -include = /var/backups -include = /etc -include = /root -include = /home -include = /usr/local/bin -include = /usr/local/sbin -include = /var/lib/dpkg/status -include = /var/lib/dpkg/status-old - -# If vservers = yes in /etc/backupninja.conf then the following variables can -# be used: -# vsnames = all | ... (default = all) -# vsinclude = -# Any path specified in vsinclude is added to the include list for each vserver -# listed in vsnames (or all if vsnames = all). -# E.g. vsinclude = /home will backup the /home partition in every vserver -# listed in vsnames. If you have vsnames = "foo bar baz", this vsinclude will -# add to the include list /vservers/foo/home, /vservers/bar/home and -# /vservers/baz/home. -# Vservers paths are derived from $VROOTDIR. - -# rdiff-backup specific comment, TO ADAPT -# files to exclude from the backup -# (supports globbing with '*') -exclude = /home/*/.gnupg - -###################################################### -## destination section -## (where the files are copied to) - -[dest] - -# perform an incremental backup? (default = yes) -# if incremental = no, perform a full backup in order to start a new backup set -#incremental = yes - -# how many days of data to keep ; default is 60 days. -# (you can also use the time format of duplicity) -# 'keep = yes' means : do not delete old data, the remote host will take care of this -#keep = 60 -#keep = yes - -# bandwith limit, in kbit/s ; default is 0, i.e. no limit -#bandwidthlimit = 128 - -# passed directly to ssh and scp -sshoptions = -i /root/.ssh/id_dsa_duplicity - -# put the backups under this directory -destdir = /backups - -# the machine which will receive the backups -desthost = backuphost - -# make the files owned by this user -# note: you must be able to ssh backupuser@backhost -# without specifying a password (if type = remote). -destuser = backupuser - diff --git a/docs/examples/example.ldap b/docs/examples/example.ldap deleted file mode 100644 index adc1fcd..0000000 --- a/docs/examples/example.ldap +++ /dev/null @@ -1,45 +0,0 @@ -## -## configuration file for openldap backups -## -## If the method is set to "slapcat", the LDIFs generated are -## suitable for use with slapadd. As the entries are in database -## order, not superior first order, they cannot be loaded with -## ldapadd without being reordered. -## - -## backupdir (default /var/backups/ldap): the destination for the backups -# backupdir = /var/backups/ldap - -## conf (default /etc/ldap/slapd.conf): the location of the slapd.conf file. -# conf = /etc/ldap/slapd.conf - -## databases (default all): either a space separated list of database -## numbers or prefixes, or the keyword 'all'. -# databases = all - -## compress (default yes): if set to yes, ldif exports are gzipped. -# compress = yes - -## restart (default no): if set to yes, slapd is stopped before backups are -## performed, and then started again after they have finished, this is necessary -## if your backend is ldbm and your method is slapcat, but unnecessary otherwise. -# restart = no - -## method (default ldapsearch): either 'ldapsearch' or 'slapcat' -## ldapsearch is the safer method to do backups, but is slow, slapcat -## is much faster, but should not be done on an ldbm backend unless you have -## restart set to yes -## NOTE: with the ldapsearch method passwordfile and binddn need to be set -# method = ldapsearch - -## passwordfile (no default): this should be set to the file that contains -## your ldap password, this is required for ldapsearch and not needed for slapcat -## this file should have no newlines in it, echo -n "password" > passfile works. -## NOTE: be sure to set the permissions on your password file appropriately -## (hint: world readable is not appropriate) -# passwordfile = - -## binddn (no default): set this to the DN of the user that the ldapsearch binds -## to, not needed for slapcat -# binddn = - diff --git a/docs/examples/example.makecd b/docs/examples/example.makecd deleted file mode 100644 index b01094e..0000000 --- a/docs/examples/example.makecd +++ /dev/null @@ -1,31 +0,0 @@ - -# TYP is cd or dvd AS WELL AS the disk inside!! -burnertype = cd - -# system (yes) or directory/files (no) -# this function not yet implemented -#system = yes - -# location for image file -backupdir = /var/backups/makecd - -# image filename -imagefile = example.iso - -# iso or burn to cd/dvd? -isoonly = no - -# cd/dvd burner device -device=/dev/hdc - -# base directory to include in the backup -target = / - -# files or directories to be excluded -exclude = /proc -exclude = /lost+found -exclude = /tmp - -# backupninja will perfrom this at gvien date/time -when = wednesday at 02:00 - diff --git a/docs/examples/example.mysql b/docs/examples/example.mysql deleted file mode 100644 index 51c2247..0000000 --- a/docs/examples/example.mysql +++ /dev/null @@ -1,75 +0,0 @@ -### backupninja mysql config file ### - -databases = all -backupdir = /var/backups/mysql -hotcopy = no -sqldump = yes -compress = yes - -### authentication ### - -# three authentication methods: -# -# 1. setting the user, so that /home/user/.my.cnf is used. -# user = some-unix-user -# -# 2. specifying the mysql dbuser and dbpassword, -# which generates a temporary .my.cnf in /root/.my.cnf -# dbusername = -# dbpassword = -# -# 3. specify which config file to use with configfile -# (this option does not work with hotcopy) -# configfile = /etc/mysql/debian.cnf -# -# if user and dbusername are not specified, the default is to use -# /etc/mysql/debian.cnf for configfile. - -### all options ### - -# configfile = < path/to/file > (default = /etc/mysql/debian.cnf) -# The config file is passed to mysql with --defaults-file. -# On debian, this default will allow backupninja to make backups -# of mysql without configuring any additional options. -# (this option is not compatible with "user" or "dbusername"). -# -# user = (default = root) -# Run mysql commands as 'user'. A valid .my.cnf must exist with a -# database username and password in the user's home directory. -# (this option is not compatible with "configfile" or "dbusername"). -# -# dbusername = (no default) -# The user must have access to the databases specified later. -# (this option is not compatible with "configfile" or "user"). -# -# dbpassword = (no default) -# The password used with dbusername. this password will NOT be passed -# on the command line and is not readable using "ps aux". -# -# dbhost = (default = localhost) -# only localhost works right now. -# -# databases = < all | db1 db2 db3 > (default = all) -# which databases to backup. should either be the word 'all' or a -# space separated list of database names. -# -# backupdir = < path/to/destination > (default = /var/backups/mysql) -# where to dump the backups. hotcopy backups will be in a subdirectory 'hotcopy' and -# sqldump backups will be in a subdirectory 'sqldump' -# -# hotcopy = < yes | no > (default = no) -# make a backup of the actual database binary files using mysqlhotcopy. -# -# sqldump = < yes | no > (default = no) -# make a backup using mysqldump. this creates text files with sql commands -# sufficient to recontruct the database. -# -# compress = < yes | no > (default = yes) -# if yes, compress the sqldump output. -# -# vsname = (no default) -# what vserver to operate on, only used if vserver = yes in /etc/backupninja.conf -# if you do not specify a vsname the host will be operated on -# -# NB: databases = all doesn't seem to work with hotcopy = yes when vsname is specified -# I would like to know how to fix this. diff --git a/docs/examples/example.pgsql b/docs/examples/example.pgsql deleted file mode 100644 index d9aab42..0000000 --- a/docs/examples/example.pgsql +++ /dev/null @@ -1,20 +0,0 @@ -### backupninja PostgreSQL config file ### - -# vsname = (no default) -# what vserver to operate on, only used if vserver = yes in /etc/backupninja.conf -# if you do not specify a vsname the host will be operated on -# Note: if operating on a vserver, $VROOTDIR will be prepended to backupdir. - -# backupdir = (default: /var/backups/postgres) -# where to dump the backups - -# databases = < all | db1 db2 db3 > (default = all) -# which databases to backup. should either be the word 'all' or a -# space separated list of database names. -# Note: when using 'all', pg_dumpall is used instead of pg_dump, which means -# that cluster-wide data (such as users and groups) are saved. - -# compress = < yes | no > (default = yes) -# if yes, compress the pg_dump/pg_dumpall output. - - diff --git a/docs/examples/example.rdiff b/docs/examples/example.rdiff deleted file mode 100644 index 8878ad0..0000000 --- a/docs/examples/example.rdiff +++ /dev/null @@ -1,85 +0,0 @@ -## -## This is an example rdiff-backup configuration file. -## The defaults are useful in most cases, just make sure -## to configure the destination host and user. -## - -## passed directly to rdiff-backup -# options = --force - -## default is 0, but set to 19 if you want to lower the priority. -# nicelevel = 19 - -## default is yes. set to no to skip the test if the remote host is alive -# testconnect = no - -###################################################### -## source section -## (where the files to be backed up are coming from) - -[source] - -# an optional subdirectory below 'directory' (see [dest]) -label = thishostname - -# type can be "local" or "remote" -type = local - -# only use if '[source] type = remote' -#host = srchost -#user = srcuser - -# how many days of data to keep -# (you can also use the time format of rdiff-backup, e.g. 6D5h) -keep = 60 - -# a note about includes and excludes: -# All the excludes come after all the includes. The order is -# not otherwise taken into account. Symlinks are backed up as -# symlinks, they are not followed! This means you must specify -# the real canonical path of a directory for it to actually -# get included. - -# files to include in the backup -# (supports globbing with '*') -include = /var/spool/cron/crontabs -include = /var/backups -include = /etc -include = /root -include = /home -include = /usr/local/bin -include = /usr/local/sbin -include = /var/lib/dpkg/status -include = /var/lib/dpkg/status-old - -# If vservers = yes in /etc/backupninja.conf then vsinclude -# may be used. Any path specified in vsinclude is added to -# the include list for each vserver on the system. e.g. -# vsinclude = /home will backup /vservers/v1/home, -# /vservers/v2/home, etc. - -# files to exclude from the backup -# (supports globbing with '*') -#exclude = /home/*/.gnupg - -###################################################### -## destination section -## (where the files are copied to) - -[dest] - -# type can be "local" or "remote" -type = remote - -# put the backups under this directory -directory = /backups - -# the machine which will receive the backups. -# only use if "[dest] type = remote" -host = backuphost - -# make the files owned by this user. you must be able to -# `su -c ssh backupuser@backhost` without specifying a password. -# only use if "[dest] type = remote" -user = backupuser - diff --git a/docs/examples/example.sh b/docs/examples/example.sh deleted file mode 100644 index f02f026..0000000 --- a/docs/examples/example.sh +++ /dev/null @@ -1,2 +0,0 @@ - -dpkg --get-selections > /var/backups/dpkg-selections.txt diff --git a/docs/examples/example.svn b/docs/examples/example.svn deleted file mode 100644 index e849706..0000000 --- a/docs/examples/example.svn +++ /dev/null @@ -1,23 +0,0 @@ -## -## Perform a hot backup of subversion repositories. -## -## REQUIRES: apt-get install subversion-tools -## -## This file can be empty, the defaults are usually good. -## - -## where subversion data lives -# src = /var/lib/svn - -## where to save the backups to -# dest = /var/backups/svn - -## where to save temporary backups -## (if successful, $tmp is moved to $dest) -# tmp = /var/backups/svn.tmp - -## the hotbackup program to use. -# HOTBACKUP = /usr/lib/subversion/hot-backup.py - -## the name of the vserver containing svn, if using vservers -# vsname = \ No newline at end of file diff --git a/docs/examples/example.sys b/docs/examples/example.sys deleted file mode 100644 index 9ebd4b2..0000000 --- a/docs/examples/example.sys +++ /dev/null @@ -1,32 +0,0 @@ -# -# this config file will save various reports of vital system information. -# by default, all the reports are enabled and are saved in /var/backups. -# -# requires dpkg, sfdisk, and hwinfo -# -# (1) a list of all the packages installed and removed. -# this file can be used to restore the state of installed packages -# by running "dpkg --set-selections < dpkg-selections.txt -# -# (2) the partition table of all disks. -# this partition table can be used to format another disk of -# the same size. this can be handy if using software raid and -# you have a disk go bad. just replace the disk and partition it -# by running "sfdisk /dev/sdb < partitions.sdb.txt" -# (MAKE SURE YOU PARTITION THE CORRECT DISK!!!) -# -# (3) hardware information. -# detailed information on most important aspects of the hardware. -# - -# here are the defaults, commented out: - -# packages = yes -# packagesfile = /var/backups/dpkg-selections.txt - -# partitions = yes -# partitionsfile = /var/backups/partitions.__star__.txt - -# hardware = yes -# hardwarefile = /var/backups/hardware.txt - diff --git a/docs/examples/example.trac b/docs/examples/example.trac deleted file mode 100644 index 645998e..0000000 --- a/docs/examples/example.trac +++ /dev/null @@ -1,16 +0,0 @@ -## -## Perform backups of trac environment -## -## REQUIRES: apt-get install trac -## -## This file can be empty, the defaults are usually good. -## - -## where one or more Trac environments live -src = /var/lib/trac - -## where to save the backups to -dest = /var/backups/trac - -## where to save temporary backups -tmp = /var/backups/trac.tmp diff --git a/examples/example.dup b/examples/example.dup new file mode 100644 index 0000000..7db7771 --- /dev/null +++ b/examples/example.dup @@ -0,0 +1,111 @@ + +# passed directly to duplicity +#options = --verbosity 8 + +# default is 0, but set to 19 if you want to lower the priority. +nicelevel = 19 + +# default is yes. set to no to skip the test if the remote host is alive +#testconnect = no + +###################################################### +## gpg section +## (how to encrypt and optionnally sign the backups) + +[gpg] + +# passphrase needed to unlock the GnuPG key +# NB: do not quote it, and it should not contain any quote +password = a_very_complicated_passphrase + +# default is no, for backward compatibility with backupninja <= 0.5. +# when set to yes, encryptkey option must be set below. +sign = yes + +# key ID used for data encryption and, optionnally, signing. +# if not set, local root's default gpg key is used. +encryptkey = 04D9EA79 + +###################################################### +## source section +## (where the files to be backed up are coming from) + +[source] + +# files to include in the backup +# (supports globbing with '*') +# BIG FAT WARNING +# Symlinks are not dereferenced. Moreover, an include line whose path +# contains, at any level, a symlink to a directory, will only have the +# symlink backed-up, not the target directory's content. Yes, you have +# to dereference yourself the symlinks, or to use 'mount --bind' +# instead. +# EXAMPLE +# Let's say /home is a symlink to /mnt/crypt/home ; the following line +# will only backup a "/home" symlink ; neither /home/user nor +# /home/user/Mail will be backed-up : +# include = /home/user/Mail +# A workaround is to 'mount --bind /mnt/crypt/home /home' ; another +# one is to write : +# include = /mnt/crypt/home/user/Mail + +include = /var/spool/cron/crontabs +include = /var/backups +include = /etc +include = /root +include = /home +include = /usr/local/bin +include = /usr/local/sbin +include = /var/lib/dpkg/status +include = /var/lib/dpkg/status-old + +# If vservers = yes in /etc/backupninja.conf then the following variables can +# be used: +# vsnames = all | ... (default = all) +# vsinclude = +# Any path specified in vsinclude is added to the include list for each vserver +# listed in vsnames (or all if vsnames = all). +# E.g. vsinclude = /home will backup the /home partition in every vserver +# listed in vsnames. If you have vsnames = "foo bar baz", this vsinclude will +# add to the include list /vservers/foo/home, /vservers/bar/home and +# /vservers/baz/home. +# Vservers paths are derived from $VROOTDIR. + +# rdiff-backup specific comment, TO ADAPT +# files to exclude from the backup +# (supports globbing with '*') +exclude = /home/*/.gnupg + +###################################################### +## destination section +## (where the files are copied to) + +[dest] + +# perform an incremental backup? (default = yes) +# if incremental = no, perform a full backup in order to start a new backup set +#incremental = yes + +# how many days of data to keep ; default is 60 days. +# (you can also use the time format of duplicity) +# 'keep = yes' means : do not delete old data, the remote host will take care of this +#keep = 60 +#keep = yes + +# bandwith limit, in kbit/s ; default is 0, i.e. no limit +#bandwidthlimit = 128 + +# passed directly to ssh and scp +sshoptions = -i /root/.ssh/id_dsa_duplicity + +# put the backups under this directory +destdir = /backups + +# the machine which will receive the backups +desthost = backuphost + +# make the files owned by this user +# note: you must be able to ssh backupuser@backhost +# without specifying a password (if type = remote). +destuser = backupuser + diff --git a/examples/example.ldap b/examples/example.ldap new file mode 100644 index 0000000..adc1fcd --- /dev/null +++ b/examples/example.ldap @@ -0,0 +1,45 @@ +## +## configuration file for openldap backups +## +## If the method is set to "slapcat", the LDIFs generated are +## suitable for use with slapadd. As the entries are in database +## order, not superior first order, they cannot be loaded with +## ldapadd without being reordered. +## + +## backupdir (default /var/backups/ldap): the destination for the backups +# backupdir = /var/backups/ldap + +## conf (default /etc/ldap/slapd.conf): the location of the slapd.conf file. +# conf = /etc/ldap/slapd.conf + +## databases (default all): either a space separated list of database +## numbers or prefixes, or the keyword 'all'. +# databases = all + +## compress (default yes): if set to yes, ldif exports are gzipped. +# compress = yes + +## restart (default no): if set to yes, slapd is stopped before backups are +## performed, and then started again after they have finished, this is necessary +## if your backend is ldbm and your method is slapcat, but unnecessary otherwise. +# restart = no + +## method (default ldapsearch): either 'ldapsearch' or 'slapcat' +## ldapsearch is the safer method to do backups, but is slow, slapcat +## is much faster, but should not be done on an ldbm backend unless you have +## restart set to yes +## NOTE: with the ldapsearch method passwordfile and binddn need to be set +# method = ldapsearch + +## passwordfile (no default): this should be set to the file that contains +## your ldap password, this is required for ldapsearch and not needed for slapcat +## this file should have no newlines in it, echo -n "password" > passfile works. +## NOTE: be sure to set the permissions on your password file appropriately +## (hint: world readable is not appropriate) +# passwordfile = + +## binddn (no default): set this to the DN of the user that the ldapsearch binds +## to, not needed for slapcat +# binddn = + diff --git a/examples/example.makecd b/examples/example.makecd new file mode 100644 index 0000000..b01094e --- /dev/null +++ b/examples/example.makecd @@ -0,0 +1,31 @@ + +# TYP is cd or dvd AS WELL AS the disk inside!! +burnertype = cd + +# system (yes) or directory/files (no) +# this function not yet implemented +#system = yes + +# location for image file +backupdir = /var/backups/makecd + +# image filename +imagefile = example.iso + +# iso or burn to cd/dvd? +isoonly = no + +# cd/dvd burner device +device=/dev/hdc + +# base directory to include in the backup +target = / + +# files or directories to be excluded +exclude = /proc +exclude = /lost+found +exclude = /tmp + +# backupninja will perfrom this at gvien date/time +when = wednesday at 02:00 + diff --git a/examples/example.mysql b/examples/example.mysql new file mode 100644 index 0000000..51c2247 --- /dev/null +++ b/examples/example.mysql @@ -0,0 +1,75 @@ +### backupninja mysql config file ### + +databases = all +backupdir = /var/backups/mysql +hotcopy = no +sqldump = yes +compress = yes + +### authentication ### + +# three authentication methods: +# +# 1. setting the user, so that /home/user/.my.cnf is used. +# user = some-unix-user +# +# 2. specifying the mysql dbuser and dbpassword, +# which generates a temporary .my.cnf in /root/.my.cnf +# dbusername = +# dbpassword = +# +# 3. specify which config file to use with configfile +# (this option does not work with hotcopy) +# configfile = /etc/mysql/debian.cnf +# +# if user and dbusername are not specified, the default is to use +# /etc/mysql/debian.cnf for configfile. + +### all options ### + +# configfile = < path/to/file > (default = /etc/mysql/debian.cnf) +# The config file is passed to mysql with --defaults-file. +# On debian, this default will allow backupninja to make backups +# of mysql without configuring any additional options. +# (this option is not compatible with "user" or "dbusername"). +# +# user = (default = root) +# Run mysql commands as 'user'. A valid .my.cnf must exist with a +# database username and password in the user's home directory. +# (this option is not compatible with "configfile" or "dbusername"). +# +# dbusername = (no default) +# The user must have access to the databases specified later. +# (this option is not compatible with "configfile" or "user"). +# +# dbpassword = (no default) +# The password used with dbusername. this password will NOT be passed +# on the command line and is not readable using "ps aux". +# +# dbhost = (default = localhost) +# only localhost works right now. +# +# databases = < all | db1 db2 db3 > (default = all) +# which databases to backup. should either be the word 'all' or a +# space separated list of database names. +# +# backupdir = < path/to/destination > (default = /var/backups/mysql) +# where to dump the backups. hotcopy backups will be in a subdirectory 'hotcopy' and +# sqldump backups will be in a subdirectory 'sqldump' +# +# hotcopy = < yes | no > (default = no) +# make a backup of the actual database binary files using mysqlhotcopy. +# +# sqldump = < yes | no > (default = no) +# make a backup using mysqldump. this creates text files with sql commands +# sufficient to recontruct the database. +# +# compress = < yes | no > (default = yes) +# if yes, compress the sqldump output. +# +# vsname = (no default) +# what vserver to operate on, only used if vserver = yes in /etc/backupninja.conf +# if you do not specify a vsname the host will be operated on +# +# NB: databases = all doesn't seem to work with hotcopy = yes when vsname is specified +# I would like to know how to fix this. diff --git a/examples/example.pgsql b/examples/example.pgsql new file mode 100644 index 0000000..d9aab42 --- /dev/null +++ b/examples/example.pgsql @@ -0,0 +1,20 @@ +### backupninja PostgreSQL config file ### + +# vsname = (no default) +# what vserver to operate on, only used if vserver = yes in /etc/backupninja.conf +# if you do not specify a vsname the host will be operated on +# Note: if operating on a vserver, $VROOTDIR will be prepended to backupdir. + +# backupdir = (default: /var/backups/postgres) +# where to dump the backups + +# databases = < all | db1 db2 db3 > (default = all) +# which databases to backup. should either be the word 'all' or a +# space separated list of database names. +# Note: when using 'all', pg_dumpall is used instead of pg_dump, which means +# that cluster-wide data (such as users and groups) are saved. + +# compress = < yes | no > (default = yes) +# if yes, compress the pg_dump/pg_dumpall output. + + diff --git a/examples/example.rdiff b/examples/example.rdiff new file mode 100644 index 0000000..8878ad0 --- /dev/null +++ b/examples/example.rdiff @@ -0,0 +1,85 @@ +## +## This is an example rdiff-backup configuration file. +## The defaults are useful in most cases, just make sure +## to configure the destination host and user. +## + +## passed directly to rdiff-backup +# options = --force + +## default is 0, but set to 19 if you want to lower the priority. +# nicelevel = 19 + +## default is yes. set to no to skip the test if the remote host is alive +# testconnect = no + +###################################################### +## source section +## (where the files to be backed up are coming from) + +[source] + +# an optional subdirectory below 'directory' (see [dest]) +label = thishostname + +# type can be "local" or "remote" +type = local + +# only use if '[source] type = remote' +#host = srchost +#user = srcuser + +# how many days of data to keep +# (you can also use the time format of rdiff-backup, e.g. 6D5h) +keep = 60 + +# a note about includes and excludes: +# All the excludes come after all the includes. The order is +# not otherwise taken into account. Symlinks are backed up as +# symlinks, they are not followed! This means you must specify +# the real canonical path of a directory for it to actually +# get included. + +# files to include in the backup +# (supports globbing with '*') +include = /var/spool/cron/crontabs +include = /var/backups +include = /etc +include = /root +include = /home +include = /usr/local/bin +include = /usr/local/sbin +include = /var/lib/dpkg/status +include = /var/lib/dpkg/status-old + +# If vservers = yes in /etc/backupninja.conf then vsinclude +# may be used. Any path specified in vsinclude is added to +# the include list for each vserver on the system. e.g. +# vsinclude = /home will backup /vservers/v1/home, +# /vservers/v2/home, etc. + +# files to exclude from the backup +# (supports globbing with '*') +#exclude = /home/*/.gnupg + +###################################################### +## destination section +## (where the files are copied to) + +[dest] + +# type can be "local" or "remote" +type = remote + +# put the backups under this directory +directory = /backups + +# the machine which will receive the backups. +# only use if "[dest] type = remote" +host = backuphost + +# make the files owned by this user. you must be able to +# `su -c ssh backupuser@backhost` without specifying a password. +# only use if "[dest] type = remote" +user = backupuser + diff --git a/examples/example.sh b/examples/example.sh new file mode 100644 index 0000000..f02f026 --- /dev/null +++ b/examples/example.sh @@ -0,0 +1,2 @@ + +dpkg --get-selections > /var/backups/dpkg-selections.txt diff --git a/examples/example.svn b/examples/example.svn new file mode 100644 index 0000000..e849706 --- /dev/null +++ b/examples/example.svn @@ -0,0 +1,23 @@ +## +## Perform a hot backup of subversion repositories. +## +## REQUIRES: apt-get install subversion-tools +## +## This file can be empty, the defaults are usually good. +## + +## where subversion data lives +# src = /var/lib/svn + +## where to save the backups to +# dest = /var/backups/svn + +## where to save temporary backups +## (if successful, $tmp is moved to $dest) +# tmp = /var/backups/svn.tmp + +## the hotbackup program to use. +# HOTBACKUP = /usr/lib/subversion/hot-backup.py + +## the name of the vserver containing svn, if using vservers +# vsname = \ No newline at end of file diff --git a/examples/example.sys b/examples/example.sys new file mode 100644 index 0000000..9ebd4b2 --- /dev/null +++ b/examples/example.sys @@ -0,0 +1,32 @@ +# +# this config file will save various reports of vital system information. +# by default, all the reports are enabled and are saved in /var/backups. +# +# requires dpkg, sfdisk, and hwinfo +# +# (1) a list of all the packages installed and removed. +# this file can be used to restore the state of installed packages +# by running "dpkg --set-selections < dpkg-selections.txt +# +# (2) the partition table of all disks. +# this partition table can be used to format another disk of +# the same size. this can be handy if using software raid and +# you have a disk go bad. just replace the disk and partition it +# by running "sfdisk /dev/sdb < partitions.sdb.txt" +# (MAKE SURE YOU PARTITION THE CORRECT DISK!!!) +# +# (3) hardware information. +# detailed information on most important aspects of the hardware. +# + +# here are the defaults, commented out: + +# packages = yes +# packagesfile = /var/backups/dpkg-selections.txt + +# partitions = yes +# partitionsfile = /var/backups/partitions.__star__.txt + +# hardware = yes +# hardwarefile = /var/backups/hardware.txt + diff --git a/examples/example.trac b/examples/example.trac new file mode 100644 index 0000000..645998e --- /dev/null +++ b/examples/example.trac @@ -0,0 +1,16 @@ +## +## Perform backups of trac environment +## +## REQUIRES: apt-get install trac +## +## This file can be empty, the defaults are usually good. +## + +## where one or more Trac environments live +src = /var/lib/trac + +## where to save the backups to +dest = /var/backups/trac + +## where to save temporary backups +tmp = /var/backups/trac.tmp