diff --git a/.gitignore b/.gitignore index e5c18f6..4e9c74d 100644 --- a/.gitignore +++ b/.gitignore @@ -8,6 +8,7 @@ doc/man/*.html doc/man/*.htm doc/man/*.texi doc/man/*.man +test/* .*.swp doc/man/*.[0-9] doc/*.xml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 5391f4d..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,12 +0,0 @@ -stages: - - test - -unit_tests: - stage: test - script: - - make test - -shellcheck: - stage: test - script: - - make shellcheck diff --git a/Makefile b/Makefile index 789e099..9b07e09 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,7 @@ ASCIIDOC=asciidoc DOCBOOKTOTEXI=docbook2x-texi DOCBOOKTOMAN=docbook2x-man XSLTPROC=xsltproc -XSL=/usr/local/share/xsl/docbook/html/docbook.xsl +XSL=/usr/share/xml/docbook/stylesheet/nwalsh/html/docbook.xsl A2X=a2x prefix=/usr/packages/ccollect-git @@ -41,7 +41,11 @@ manlink=/usr/local/man/man1 path_dir=/usr/local/bin path_destination=${path_dir}/${CCOLLECT_DEST} -docs_archive_name=docs.tar + +# where to publish +host=localhost +dir=/home/users/nico/privat/rechner/netz/seiten/www.nico.schottelius.org/src/software/ccollect +docdir=${dir}/documentation # # Asciidoc will be used to generate other formats later @@ -75,8 +79,6 @@ DOCBDOCS = ${DOCS:.text=.docbook} DOC_ALL = ${HTMLDOCS} ${DBHTMLDOCS} ${TEXIDOCS} ${MANPDOCS} ${PDFDOCS} -TEST_LOG_FILE = /tmp/ccollect/ccollect.log - # # End user targets # @@ -87,8 +89,6 @@ all: @echo "info: only generate Texinfo" @echo "man: only generate manpage{s}" @echo "install: install ccollect to ${prefix}" - @echo "shellcheck: shellcheck ccollect script" - @echo "test: run unit tests" html: ${HTMLDOCS} htm: ${DBHTMLDOCS} @@ -177,9 +177,9 @@ pub: git push publish-doc: documentation + @echo "Transferring files to ${host}" @chmod a+r ${DOCS} ${DOC_ALL} - @tar cf ${docs_archive_name} ${DOCS} ${DOC_ALL} - @echo "Documentation files are in ${docs_archive_name}" + @tar c ${DOCS} ${DOC_ALL} | ssh ${host} "cd ${dir}; tar xv" # # Distribution @@ -202,49 +202,9 @@ dist: distclean documentation shellcheck: ./ccollect shellcheck -s sh -f gcc -x ./ccollect -test-nico: $(CCOLLECT_SOURCE) /tmp/ccollect +test: $(CCOLLECT_SOURCE) /tmp/ccollect cd ./conf/sources/; for s in *; do CCOLLECT_CONF=../ ../../ccollect daily "$$s"; done touch /tmp/ccollect/$$(ls /tmp/ccollect | head -n1).ccollect-marker CCOLLECT_CONF=./conf ./ccollect -a daily touch /tmp/ccollect/$$(ls /tmp/ccollect | head -n1).ccollect-marker CCOLLECT_CONF=./conf ./ccollect -a -p daily - -test-dir-source: - mkdir -p /tmp/ccollect/source - cp -R -f ./* /tmp/ccollect/source - -test-dir-destination: - mkdir -p /tmp/ccollect/backup - -test-dir-destination-chint: - mkdir -p /tmp/ccollect/backup-chint - -test-fixed-intervals: $(CCOLLECT_SOURCE) test-dir-source test-dir-destination test-dir-destination-chint - for s in ./test/conf/sources/*; do \ - CCOLLECT_CONF=./test/conf ./ccollect -l ${TEST_LOG_FILE} daily "$$(basename "$$s")"; \ - test "$$(ls -1 /tmp/ccollect/backup | wc -l)" -gt "0" || { cat ${TEST_LOG_FILE}; exit 1; }; \ - done - CCOLLECT_CONF=./test/conf ./ccollect -l ${TEST_LOG_FILE} -a -v daily - test "$$(ls -1 /tmp/ccollect/backup | wc -l)" -gt "0" || { cat ${TEST_LOG_FILE}; exit 1; } - CCOLLECT_CONF=./test/conf ./ccollect -l ${TEST_LOG_FILE} -a -p daily - test "$$(ls -1 /tmp/ccollect/backup | wc -l)" -gt "0" || { cat ${TEST_LOG_FILE}; exit 1; } - @printf "\nFixed intervals test ended successfully\n" - -test-interval-changing: $(CCOLLECT_SOURCE) test-dir-source test-dir-destination-chint - rm -rf /tmp/ccollect/backup-chint/* - test "$$(ls -1 /tmp/ccollect/backup-chint | wc -l)" -eq "0" || { cat ${TEST_LOG_FILE}; exit 1; } - printf "3" > ./test/conf/sources/local-with-interval/intervals/daily - for x in 1 2 3 4 5; do CCOLLECT_CONF=./test/conf ./ccollect -l ${TEST_LOG_FILE} daily local-with-interval; done - test "$$(ls -1 /tmp/ccollect/backup-chint | wc -l)" -eq "3" || { cat ${TEST_LOG_FILE}; exit 1; } - printf "5" > ./test/conf/sources/local-with-interval/intervals/daily - for x in 1 2 3 4 5 6 7; do CCOLLECT_CONF=./test/conf ./ccollect -l ${TEST_LOG_FILE} daily local-with-interval; done - test "$$(ls -1 /tmp/ccollect/backup-chint | wc -l)" -eq "5" || { cat ${TEST_LOG_FILE}; exit 1; } - printf "4" > ./test/conf/sources/local-with-interval/intervals/daily - for x in 1 2 3 4 5 6; do CCOLLECT_CONF=./test/conf ./ccollect -l ${TEST_LOG_FILE} daily local-with-interval; done - test "$$(ls -1 /tmp/ccollect/backup-chint | wc -l)" -eq "4" || { cat ${TEST_LOG_FILE}; exit 1; } - printf "3" > ./test/conf/sources/local-with-interval/intervals/daily - @printf "\nInterval changing test ended successfully\n" - -test: test-fixed-intervals test-interval-changing - test -f "${TEST_LOG_FILE}" - @printf "\nTests ended successfully\n" diff --git a/ccollect b/ccollect index 2deaa2d..6dd3fc0 100755 --- a/ccollect +++ b/ccollect @@ -45,8 +45,8 @@ TMP="$(mktemp "/tmp/${__myname}.XXXXXX")" export TMP CONTROL_PIPE="/tmp/${__myname}-control-pipe" -VERSION="2.10" -RELEASE="2020-08-26" +VERSION="2.6" +RELEASE="2019-11-12" HALF_VERSION="ccollect ${VERSION}" FULL_VERSION="ccollect ${VERSION} (${RELEASE})" @@ -79,7 +79,7 @@ lock_flock() # $1 = source to backup # shellcheck disable=SC2059 lockfile="${LOCKDIR}/$(printf "${LOCKFILE_PATTERN}" "$1")" - eval "exec ${LOCKFD}> '${lockfile}'" + eval "exec ${LOCKFD}> ${lockfile}" flock -n ${LOCKFD} && return 0 || return 1 } @@ -469,7 +469,7 @@ fi if [ "${PARALLEL}" ]; then mkfifo "${CONTROL_PIPE}" # fd 5 is tied to control pipe - eval "exec 5<>'${CONTROL_PIPE}'" + eval "exec 5<>${CONTROL_PIPE}" TRAPFUNC="${TRAPFUNC}; rm -f \"${CONTROL_PIPE}\"" # shellcheck disable=SC2064 trap "${TRAPFUNC}" 0 1 2 15 @@ -767,27 +767,20 @@ while [ "${source_no}" -lt "${no_sources}" ]; do _techo "Using ${oldest_bak} for destination dir ${destination_dir}" if mv "${oldest_bak}" "${destination_dir}"; then # Touch dest dir so it is not sorted wrong in listings below. - ls_rm_exclude=$(basename "${destination_dir}") + touch "${destination_dir}" # We have something to remove only if count > interval. remove="$((count - c_interval))" else _techo_err "Renaming oldest backup ${oldest_bak} to ${destination_dir} failed, removing it." remove="$((count - c_interval + 1))" - ls_rm_exclude="" fi if [ "${remove}" -gt 0 ]; then _techo "Removing ${remove} backup(s)..." - if [ -z "${ls_rm_exclude}" ]; then - # shellcheck disable=SC2010 - ls -${TSORT}1r | grep "^${INTERVAL}\\." | head -n "${remove}" > "${TMP}" || \ - _exit_err "Listing old backups failed" - else - # shellcheck disable=SC2010 - ls -${TSORT}1r | grep -v "${ls_rm_exclude}" | grep "^${INTERVAL}\\." | head -n "${remove}" > "${TMP}" || \ - _exit_err "Listing old backups failed" - fi + # shellcheck disable=SC2010 + ls -${TSORT}1r | grep "^${INTERVAL}\\." | head -n "${remove}" > "${TMP}" || \ + _exit_err "Listing old backups failed" delete_from_file "${TMP}" & fi @@ -824,11 +817,6 @@ while [ "${source_no}" -lt "${no_sources}" ]; do rsync "$@" "${source}" "${destination_dir}"; ret=$? _techo "Finished backup (rsync return code: $ret)." - # - # export rsync return code, might be useful in post_exec - # - export rsync_return_code=$ret - # # Set modification time (mtime) to current time, if sorting by mtime is enabled # @@ -861,16 +849,6 @@ while [ "${source_no}" -lt "${no_sources}" ]; do _techo "Warning: rsync failed with return code $ret." fi - # - # Create symlink to newest backup - # - # shellcheck disable=SC2010 - latest_dir="$(ls -${TSORT}p1 "${ddir}" | grep '/$' | head -n 1)" || \ - _exit_err "Failed to list content of ${ddir}." - - ln -snf "${ddir}${latest_dir}" "${ddir}current" || \ - _exit_err "Failed to create 'current' symlink." - # # post_exec # diff --git a/doc/ccollect.text b/doc/ccollect.text index f075b9a..37e4eaf 100644 --- a/doc/ccollect.text +++ b/doc/ccollect.text @@ -1,7 +1,7 @@ ccollect - Installing, Configuring and Using ============================================ Nico Schottelius -2.10, for ccollect 2.10, Initial Version from 2006-01-13 +2.6, for ccollect 2.6, Initial Version from 2006-01-13 :Author Initials: NS diff --git a/doc/changes/2.10 b/doc/changes/2.10 deleted file mode 100644 index 1d1e85d..0000000 --- a/doc/changes/2.10 +++ /dev/null @@ -1 +0,0 @@ -* Add 'current' symlink to backup destinations (Steffen Zieger) diff --git a/doc/changes/2.7 b/doc/changes/2.7 deleted file mode 100644 index bafbb01..0000000 --- a/doc/changes/2.7 +++ /dev/null @@ -1 +0,0 @@ -* Fix shellcheck reported issues diff --git a/doc/changes/2.8 b/doc/changes/2.8 deleted file mode 100644 index 563b438..0000000 --- a/doc/changes/2.8 +++ /dev/null @@ -1 +0,0 @@ -* Fix excluding destination dir from removal diff --git a/doc/changes/2.9 b/doc/changes/2.9 deleted file mode 100644 index 45097c7..0000000 --- a/doc/changes/2.9 +++ /dev/null @@ -1 +0,0 @@ -* Make rsync return code available in post_exec (Steffen Zieger) diff --git a/test/conf/ccollect_local-with b/test/conf/ccollect_local-with deleted file mode 100644 index e69de29..0000000 diff --git a/test/conf/ccollect_source b/test/conf/ccollect_source deleted file mode 100644 index e69de29..0000000 diff --git a/test/conf/defaults/intervals/daily b/test/conf/defaults/intervals/daily deleted file mode 100644 index 7ed6ff8..0000000 --- a/test/conf/defaults/intervals/daily +++ /dev/null @@ -1 +0,0 @@ -5 diff --git a/test/conf/defaults/intervals/monthly b/test/conf/defaults/intervals/monthly deleted file mode 100644 index b8626c4..0000000 --- a/test/conf/defaults/intervals/monthly +++ /dev/null @@ -1 +0,0 @@ -4 diff --git a/test/conf/defaults/intervals/normal b/test/conf/defaults/intervals/normal deleted file mode 100644 index b8626c4..0000000 --- a/test/conf/defaults/intervals/normal +++ /dev/null @@ -1 +0,0 @@ -4 diff --git a/test/conf/defaults/intervals/weekly b/test/conf/defaults/intervals/weekly deleted file mode 100644 index 0cfbf08..0000000 --- a/test/conf/defaults/intervals/weekly +++ /dev/null @@ -1 +0,0 @@ -2 diff --git a/test/conf/defaults/post_exec b/test/conf/defaults/post_exec deleted file mode 100755 index 0dac0ed..0000000 --- a/test/conf/defaults/post_exec +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -echo 'General post_exec executed.' diff --git a/test/conf/defaults/pre_exec b/test/conf/defaults/pre_exec deleted file mode 100755 index 451fdad..0000000 --- a/test/conf/defaults/pre_exec +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -echo 'General pre__exec executed.' diff --git a/test/conf/defaults/sources/exclude b/test/conf/defaults/sources/exclude deleted file mode 100644 index 6b8710a..0000000 --- a/test/conf/defaults/sources/exclude +++ /dev/null @@ -1 +0,0 @@ -.git diff --git a/test/conf/defaults/sources/rsync_options b/test/conf/defaults/sources/rsync_options deleted file mode 100644 index e69de29..0000000 diff --git a/test/conf/defaults/sources/verbose b/test/conf/defaults/sources/verbose deleted file mode 100644 index e69de29..0000000 diff --git a/test/conf/defaults/verbose b/test/conf/defaults/verbose deleted file mode 100644 index e69de29..0000000 diff --git a/test/conf/sources/delete_incomplete/delete_incomplete b/test/conf/sources/delete_incomplete/delete_incomplete deleted file mode 100644 index e69de29..0000000 diff --git a/test/conf/sources/delete_incomplete/destination b/test/conf/sources/delete_incomplete/destination deleted file mode 100644 index c2a7c55..0000000 --- a/test/conf/sources/delete_incomplete/destination +++ /dev/null @@ -1 +0,0 @@ -/tmp/ccollect/backup diff --git a/test/conf/sources/delete_incomplete/exclude b/test/conf/sources/delete_incomplete/exclude deleted file mode 100644 index 6b8710a..0000000 --- a/test/conf/sources/delete_incomplete/exclude +++ /dev/null @@ -1 +0,0 @@ -.git diff --git a/test/conf/sources/delete_incomplete/source b/test/conf/sources/delete_incomplete/source deleted file mode 100644 index 9e90576..0000000 --- a/test/conf/sources/delete_incomplete/source +++ /dev/null @@ -1 +0,0 @@ -/tmp/ccollect/source diff --git a/test/conf/sources/local-with&ersand/destination b/test/conf/sources/local-with&ersand/destination deleted file mode 100644 index c2a7c55..0000000 --- a/test/conf/sources/local-with&ersand/destination +++ /dev/null @@ -1 +0,0 @@ -/tmp/ccollect/backup diff --git a/test/conf/sources/local-with&ersand/exclude b/test/conf/sources/local-with&ersand/exclude deleted file mode 100644 index 6b8710a..0000000 --- a/test/conf/sources/local-with&ersand/exclude +++ /dev/null @@ -1 +0,0 @@ -.git diff --git a/test/conf/sources/local-with&ersand/source b/test/conf/sources/local-with&ersand/source deleted file mode 100644 index 9e90576..0000000 --- a/test/conf/sources/local-with&ersand/source +++ /dev/null @@ -1 +0,0 @@ -/tmp/ccollect/source diff --git a/test/conf/sources/local-with-interval/delete_incomplete b/test/conf/sources/local-with-interval/delete_incomplete deleted file mode 100644 index e69de29..0000000 diff --git a/test/conf/sources/local-with-interval/destination b/test/conf/sources/local-with-interval/destination deleted file mode 100644 index 4de7e06..0000000 --- a/test/conf/sources/local-with-interval/destination +++ /dev/null @@ -1 +0,0 @@ -/tmp/ccollect/backup-chint diff --git a/test/conf/sources/local-with-interval/exclude b/test/conf/sources/local-with-interval/exclude deleted file mode 100644 index 6b8710a..0000000 --- a/test/conf/sources/local-with-interval/exclude +++ /dev/null @@ -1 +0,0 @@ -.git diff --git a/test/conf/sources/local-with-interval/intervals/daily b/test/conf/sources/local-with-interval/intervals/daily deleted file mode 100644 index e440e5c..0000000 --- a/test/conf/sources/local-with-interval/intervals/daily +++ /dev/null @@ -1 +0,0 @@ -3 \ No newline at end of file diff --git a/test/conf/sources/local-with-interval/source b/test/conf/sources/local-with-interval/source deleted file mode 100644 index 9e90576..0000000 --- a/test/conf/sources/local-with-interval/source +++ /dev/null @@ -1 +0,0 @@ -/tmp/ccollect/source diff --git a/test/conf/sources/local-with-interval/verbose b/test/conf/sources/local-with-interval/verbose deleted file mode 100644 index e69de29..0000000 diff --git a/test/conf/sources/local/destination b/test/conf/sources/local/destination deleted file mode 100644 index c2a7c55..0000000 --- a/test/conf/sources/local/destination +++ /dev/null @@ -1 +0,0 @@ -/tmp/ccollect/backup diff --git a/test/conf/sources/local/exclude b/test/conf/sources/local/exclude deleted file mode 100644 index 6b8710a..0000000 --- a/test/conf/sources/local/exclude +++ /dev/null @@ -1 +0,0 @@ -.git diff --git a/test/conf/sources/local/no_verbose b/test/conf/sources/local/no_verbose deleted file mode 100644 index e69de29..0000000 diff --git a/test/conf/sources/local/source b/test/conf/sources/local/source deleted file mode 100644 index 9e90576..0000000 --- a/test/conf/sources/local/source +++ /dev/null @@ -1 +0,0 @@ -/tmp/ccollect/source diff --git a/test/conf/sources/source with spaces and interval/delete_incomplete b/test/conf/sources/source with spaces and interval/delete_incomplete deleted file mode 100644 index e69de29..0000000 diff --git a/test/conf/sources/source with spaces and interval/destination b/test/conf/sources/source with spaces and interval/destination deleted file mode 100644 index c2a7c55..0000000 --- a/test/conf/sources/source with spaces and interval/destination +++ /dev/null @@ -1 +0,0 @@ -/tmp/ccollect/backup diff --git a/test/conf/sources/source with spaces and interval/exclude b/test/conf/sources/source with spaces and interval/exclude deleted file mode 100644 index 6b8710a..0000000 --- a/test/conf/sources/source with spaces and interval/exclude +++ /dev/null @@ -1 +0,0 @@ -.git diff --git a/test/conf/sources/source with spaces and interval/source b/test/conf/sources/source with spaces and interval/source deleted file mode 100644 index 9e90576..0000000 --- a/test/conf/sources/source with spaces and interval/source +++ /dev/null @@ -1 +0,0 @@ -/tmp/ccollect/source diff --git a/test/conf/sources/source with spaces and interval/verbose b/test/conf/sources/source with spaces and interval/verbose deleted file mode 100644 index e69de29..0000000 diff --git a/test/conf/sources/very_verbose/destination b/test/conf/sources/very_verbose/destination deleted file mode 100644 index c2a7c55..0000000 --- a/test/conf/sources/very_verbose/destination +++ /dev/null @@ -1 +0,0 @@ -/tmp/ccollect/backup diff --git a/test/conf/sources/very_verbose/exclude b/test/conf/sources/very_verbose/exclude deleted file mode 100644 index 6b8710a..0000000 --- a/test/conf/sources/very_verbose/exclude +++ /dev/null @@ -1 +0,0 @@ -.git diff --git a/test/conf/sources/very_verbose/source b/test/conf/sources/very_verbose/source deleted file mode 100644 index 9e90576..0000000 --- a/test/conf/sources/very_verbose/source +++ /dev/null @@ -1 +0,0 @@ -/tmp/ccollect/source diff --git a/test/conf/sources/very_verbose/summary b/test/conf/sources/very_verbose/summary deleted file mode 100644 index e69de29..0000000 diff --git a/test/conf/sources/very_verbose/verbose b/test/conf/sources/very_verbose/verbose deleted file mode 100644 index e69de29..0000000 diff --git a/test/conf/sources/very_verbose/very_verbose b/test/conf/sources/very_verbose/very_verbose deleted file mode 100644 index e69de29..0000000 diff --git a/test/conf/sources/with_exec/destination b/test/conf/sources/with_exec/destination deleted file mode 100644 index c2a7c55..0000000 --- a/test/conf/sources/with_exec/destination +++ /dev/null @@ -1 +0,0 @@ -/tmp/ccollect/backup diff --git a/test/conf/sources/with_exec/post_exec b/test/conf/sources/with_exec/post_exec deleted file mode 100755 index abc0a40..0000000 --- a/test/conf/sources/with_exec/post_exec +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/cat - -###################################################################### -Source post_exec executed. -###################################################################### diff --git a/test/conf/sources/with_exec/pre_exec b/test/conf/sources/with_exec/pre_exec deleted file mode 100755 index ba7b2af..0000000 --- a/test/conf/sources/with_exec/pre_exec +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/cat - -###################################################################### -Source pre_exec executed. -###################################################################### diff --git a/test/conf/sources/with_exec/source b/test/conf/sources/with_exec/source deleted file mode 100644 index 9e90576..0000000 --- a/test/conf/sources/with_exec/source +++ /dev/null @@ -1 +0,0 @@ -/tmp/ccollect/source diff --git a/test/exec.sh b/test/exec.sh new file mode 100755 index 0000000..bdf601d --- /dev/null +++ b/test/exec.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +host="home.schottelius.org" +host="" +set -x +pcmd() +{ + echo "$#", "$@" + if [ "$host" ]; then + ssh "$host" "$@" + else + $@ + fi +} + +#pcmd ls / +#pcmd cd /; ls "/is not there" +pcmd cd / && ls diff --git a/test/local.sh b/test/local.sh new file mode 100755 index 0000000..c2430fd --- /dev/null +++ b/test/local.sh @@ -0,0 +1 @@ +CCOLLECT_CONF=./conf ./ccollect.sh daily -v local1 diff --git a/test/remote.sh b/test/remote.sh new file mode 100755 index 0000000..2af364e --- /dev/null +++ b/test/remote.sh @@ -0,0 +1 @@ +CCOLLECT_CONF=./conf ./ccollect.sh daily -v remote1 diff --git a/test/return-value.sh b/test/return-value.sh new file mode 100755 index 0000000..554def0 --- /dev/null +++ b/test/return-value.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +ls /surely-not-existent$$ 2>/dev/null + +if [ "$?" -ne 0 ]; then + echo "$?" +fi + +ls /surely-not-existent$$ 2>/dev/null + +ret=$? + +if [ "$ret" -ne 0 ]; then + echo "$ret" +fi + +# if is true, ls is fales +if [ "foo" = "foo" ]; then + ls /surely-not-existent$$ 2>/dev/null +fi + +# but that's still the return of ls and not of fi +echo $? diff --git a/test/test-ccollect-tools.sh b/test/test-ccollect-tools.sh new file mode 100644 index 0000000..5980d04 --- /dev/null +++ b/test/test-ccollect-tools.sh @@ -0,0 +1,29 @@ +#!/bin/sh +# +# 2009 Nico Schottelius (nico-ccollect at schottelius.org) +# +# This file is part of ccollect. +# +# ccollect is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# ccollect is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with ccollect. If not, see . +# +# +# Test the ccollect tools suite +# + +set -x + +tmp="$(mktemp /tmp/ccollect-tools.XXXXXXXXXXX)" + + +rm -rf "${tmp}" diff --git a/test/test-ccollect1.sh b/test/test-ccollect1.sh new file mode 100755 index 0000000..c5acf54 --- /dev/null +++ b/test/test-ccollect1.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# +# Nico Schottelius +# Date: 27-Jan-2007 +# Last Modified: - +# Description: +# + +ccollect=../ccollect.sh +testdir="$(dirname $0)/test-backups" +confdir="$(dirname $0)/test-config" +source="$(hostname)" +source_source="/tmp" +interval="taeglich" + + +# backup destination +mkdir -p "$testdir" +source_dest="$(cd "$testdir"; pwd -P)" + +# configuration +mkdir -p "${confdir}/sources/${source}" +ln -s "$source_dest" "${confdir}/sources/${source}/destination" +echo "$source_source" > "${confdir}/sources/${source}/source" +touch "${confdir}/sources/${source}/summary" +touch "${confdir}/sources/${source}/verbose" + +mkdir -p "${confdir}/defaults/intervals/" +echo 3 > "${confdir}/defaults/intervals/$interval" + +# create backups + +CCOLLECT_CONF="$confdir" "$ccollect" "$interval" -p -a +touch "${source_source}/$(date +%s)-$$.1982" + +CCOLLECT_CONF="$confdir" "$ccollect" "$interval" -p -a +touch "${source_source}/$(date +%s)-$$.42" + +CCOLLECT_CONF="$confdir" "$ccollect" "$interval" -p -a + +du -sh "$testdir" +du -shl "$testdir" + +echo "Delete $testdir and $confdir after test"