From 3f2a826652cb804c9abd14b3808f7a7a4648258a Mon Sep 17 00:00:00 2001 From: Micah Anderson Date: Sat, 24 Nov 2007 21:32:30 +0000 Subject: [PATCH] fixed Trac #1, actually add example.rsync --- ChangeLog | 6 +- examples/example.rsync | 124 +++++++++++++++++++++++++++++++++++++++++ examples/example.sys | 2 + handlers/sys.in | 18 ++++-- 4 files changed, 142 insertions(+), 8 deletions(-) create mode 100644 examples/example.rsync diff --git a/ChangeLog b/ChangeLog index 983341e..72c5923 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,8 +10,8 @@ version 0.9.5 -- unreleased applied to fix #370396 broke this, especially for configuration files created with permissions 000 by an older ninjahelper version. . Enhanced portability for other platforms - . Fixed Trac#11 (quoting needed to prevent shell expansion, broke the - toint function sometimes) + . Added quoting because it was needed to prevent shell expansion, broking the + toint function sometimes (Trac#11) . Fixed reportspace option (Trac#10) handler changes dup: @@ -61,6 +61,8 @@ version 0.9.5 -- unreleased . Fixed example in example.sys to detail the __star__ in partitionsfile and note why its necessary (Closes: #409192) . Force C locale for sfdisk to ensure english words are found in grep + . Make directory where output is placed configurable, and create the parent dir + if it doesn't exist (Closes: Trac#1) fixed 'make install' bug that failed if /etc/backup.d already existed changed spaces to tabs in Makefile.am diff --git a/examples/example.rsync b/examples/example.rsync new file mode 100644 index 0000000..2902d0b --- /dev/null +++ b/examples/example.rsync @@ -0,0 +1,124 @@ +# +# rsync handler example file +# +# Mandatory options are uncommented with sugested values +# Other options are commented out with their default values +# +# Note: You dont need to manually specify vservers using "include = /vservers". +# They're automatically backuped if vserver is set to "yes" on you backupninja.conf. + +[general] + +# rsync log file +#log = /var/log/backup/rsync.log + +# partition device where the backup lives +# just use this option if your data is backed up in a separate partition and +# you want backupninja to fsck it; this option will just be used if fscheck +# (see below) is set to 'yes' +#partition = + +# backup partition mountpoint or backup main folder +# this doesn't need to be a real partition, but should be at least the +# main folder where the backup is being stored +mountpoint = /mnt/backup + +# folder relative do mountpoint where the backup should be stored +backupdir = myserver + +# number of backup increments (min = 5) +days = 7 + +# set to 1 if fsck should run on partition after the backup is made +#fscheck = + +# set to 1 if $partition is mounted read-only +#read_only = + +# use this if you need a lockfile to be kept during backup execution +# this is an useful feature in case you have some tasks that should +# know if the backup is running or not +#lockfile = + +# rsync command nice level +#nicelevel = 0 + +# set to "yes" if your system isnt handling timestamps correctly +#enable_mv_timestamp_bug = no + +# temp folder +#tmp = /tmp + +[source] + +# where the data to be backed up is (local or remote) +#from = local + +# when "yes", test the connection for a remote source before backup +#testconnect = no + +# include folder on backup +include = /etc +include = /var + +# exclude folder on backup +exclude = exclude_folder1 +exclude = exclude_folder2 + +# exlude some vserver from backup +# this is used only if vservers = yes on backupninja.conf +exclude_vserver = excluded_vserver1 +exclude_vserver = excluded_vserver2 + +# ssh command line (remote only) +#ssh = ssh + +# rsync program +# it defaults to $RSYNC value from backupninja.conf +#rsync = $RSYNC + +# rsync command options +#rsync_options = "-av --delete" + +# when set to 1, use numeric ids instead of user/group mappings on rsync +#numericids = 0 + +# if set to 1, compress data on rsync (remote source only) +#compress = 0 + +# set a badnwidth limit in kbps (remote source only) +#bandwidthlimit = + +# remote rsync program (remote source only) +#remote_rsync = rsync + +# This section is used to stop and start services that should be turned of +# during the backup procedure. +# +#[services] +# +# absolute path where scripts are located +#initscripts = +# +# script name to be stoped at the begining of the backup and started at its end +#service = + +# You can also specify some system comands if you don't want the default system values +# by enabling the section below. +# +#[system] +# +# rm command +#rm = rm +# +# cp command +#cp = cp +# +# touch command +#touch = touch +# +# mv command +#mv = mv +# +# fsck command +#fsck = fsck diff --git a/examples/example.sys b/examples/example.sys index 2af2c50..9081334 100644 --- a/examples/example.sys +++ b/examples/example.sys @@ -21,6 +21,8 @@ # here are the defaults, commented out: +# The output from the sys handler will be placed in $parentdir +# parentdir = /var/backups # packages = yes # packagesfile = /var/backups/dpkg-selections.txt diff --git a/handlers/sys.in b/handlers/sys.in index 2e181c8..b6c7fbc 100755 --- a/handlers/sys.in +++ b/handlers/sys.in @@ -32,35 +32,41 @@ else warning "Unknown OS detected!" fi +getconf parentdir /var/backups getconf packages yes getconf dosfdisk yes getconf dohwinfo yes + +if [ ! -d $parentdir ]; then + mkdir -p $parentdir +fi + if [ $os = "debian" ] then - getconf packagesfile /var/backups/dpkg-selections.txt + getconf packagesfile $parentdir/dpkg-selections.txt getconf packagemgr `which dpkg` getconf packagemgroptions ' --get-selections *' elif [ $os = "redhat" ] then - getconf packagesfile /var/backups/rpmpackages.txt + getconf packagesfile $parentdir/rpmpackages.txt getconf packagemgr `which rpm` getconf packagemgroptions ' -qa ' getconf SYSREPORT `which sysreport` getconf sysreport_options ' -norpm ' else - getconf packagesfile /var/backups/unknownOS.txt + getconf packagesfile $parentdir/unknownOS.txt fi packagemgroptions="${packagemgroptions//__star__/*}" getconf partitions yes -getconf partitionsfile /var/backups/partitions.__star__.txt +getconf partitionsfile $parentdir/partitions.__star__.txt getconf hardware yes -getconf hardwarefile /var/backups/hardware.txt +getconf hardwarefile $parentdir/hardware.txt getconf sysreport yes -getconf sysreportfile /var/backups/sysreport.txt +getconf sysreportfile $parentdir/sysreport.txt getconf SFDISK `which sfdisk` getconf HWINFO `which hwinfo` -- 2.30.2