Commit graph

585 commits

Author SHA1 Message Date
Nico Schottelius
62e8190a94 Introduce consistent time sorting
Based on patches by John Lawless <jlawless@redwoodscientific.com>.
Skipped the sort changing part (from -tc to -t)

c.patch:

--- ccollect-0.7.1-b.sh	2009-05-24 21:32:00.000000000 -0700
+++ ccollect-0.7.1-c.sh	2009-05-24 21:39:43.000000000 -0700
@@ -40,10 +40,13 @@
 VERSION=0.7.1
 RELEASE="2009-02-02"
 HALF_VERSION="ccollect ${VERSION}"
 FULL_VERSION="ccollect ${VERSION} (${RELEASE})"

+#TSORT="tc" ; NEWER="cnewer"
+TSORT="t" ; NEWER="newer"
+
 #
 # CDATE: how we use it for naming of the archives
 # DDATE: how the user should see it in our output (DISPLAY)
 #
 CDATE="date +%Y%m%d-%H%M"
@@ -513,14 +516,14 @@

    #
    # Check for backup directory to clone from: Always clone from the latest one!
    #
-   # Use ls -1c instead of -1t, because last modification maybe the same on all
-   # and metadate update (-c) is updated by rsync locally.
-   #
-   last_dir="$(pcmd ls -tcp1 "${ddir}" | grep '/$' | head -n 1)" || \
+   # Depending on your file system, you may want to sort on:
+   #   1. mtime (modification time) with TSORT=t, or
+   #   2. ctime (last change time, usually) with TSORT=tc
+   last_dir="$(pcmd ls -${TSORT}p1 "${ddir}" | grep '/$' | head -n 1)" || \
       _exit_err "Failed to list contents of ${ddir}."

    #
    # clone from old backup, if existing
    #

d.patch:

--- ccollect-0.7.1-c.sh	2009-05-24 21:39:43.000000000 -0700
+++ ccollect-0.7.1-d.sh	2009-05-24 21:47:09.000000000 -0700
@@ -492,12 +492,12 @@
    if [ "${count}" -ge "${c_interval}" ]; then
       substract=$((${c_interval} - 1))
       remove=$((${count} - ${substract}))
       _techo "Removing ${remove} backup(s)..."

-      pcmd ls -p1 "$ddir" | grep "^${INTERVAL}\..*/\$" | \
-        sort -n | head -n "${remove}" > "${TMP}"      || \
+      pcmd ls -${TSORT}p1r "$ddir" | grep "^${INTERVAL}\..*/\$" | \
+        head -n "${remove}" > "${TMP}"      || \
         _exit_err "Listing old backups failed"

       i=0
       while read to_remove; do
          eval remove_$i=\"${to_remove}\"

Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-06-10 09:50:05 +02:00
Nico Schottelius
bce57a1ac1 Introduce consistent time sorting
Based on patches by John Lawless <jll2_8854b@redwoodscientific.com>.
Skipped the sort changing part (from -tc to -t)

c.patch:

--- ccollect-0.7.1-b.sh	2009-05-24 21:32:00.000000000 -0700
+++ ccollect-0.7.1-c.sh	2009-05-24 21:39:43.000000000 -0700
@@ -40,10 +40,13 @@
 VERSION=0.7.1
 RELEASE="2009-02-02"
 HALF_VERSION="ccollect ${VERSION}"
 FULL_VERSION="ccollect ${VERSION} (${RELEASE})"

+#TSORT="tc" ; NEWER="cnewer"
+TSORT="t" ; NEWER="newer"
+
 #
 # CDATE: how we use it for naming of the archives
 # DDATE: how the user should see it in our output (DISPLAY)
 #
 CDATE="date +%Y%m%d-%H%M"
@@ -513,14 +516,14 @@

    #
    # Check for backup directory to clone from: Always clone from the latest one!
    #
-   # Use ls -1c instead of -1t, because last modification maybe the same on all
-   # and metadate update (-c) is updated by rsync locally.
-   #
-   last_dir="$(pcmd ls -tcp1 "${ddir}" | grep '/$' | head -n 1)" || \
+   # Depending on your file system, you may want to sort on:
+   #   1. mtime (modification time) with TSORT=t, or
+   #   2. ctime (last change time, usually) with TSORT=tc
+   last_dir="$(pcmd ls -${TSORT}p1 "${ddir}" | grep '/$' | head -n 1)" || \
       _exit_err "Failed to list contents of ${ddir}."

    #
    # clone from old backup, if existing
    #

d.patch:

--- ccollect-0.7.1-c.sh	2009-05-24 21:39:43.000000000 -0700
+++ ccollect-0.7.1-d.sh	2009-05-24 21:47:09.000000000 -0700
@@ -492,12 +492,12 @@
    if [ "${count}" -ge "${c_interval}" ]; then
       substract=$((${c_interval} - 1))
       remove=$((${count} - ${substract}))
       _techo "Removing ${remove} backup(s)..."

-      pcmd ls -p1 "$ddir" | grep "^${INTERVAL}\..*/\$" | \
-        sort -n | head -n "${remove}" > "${TMP}"      || \
+      pcmd ls -${TSORT}p1r "$ddir" | grep "^${INTERVAL}\..*/\$" | \
+        head -n "${remove}" > "${TMP}"      || \
         _exit_err "Listing old backups failed"

       i=0
       while read to_remove; do
          eval remove_$i=\"${to_remove}\"

Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-06-10 09:50:05 +02:00
John Lawless
a030a98982 First, I added the following before any old backup gets deleted:
>    # Verify source is up and accepting connections before deleting any old backups
>    rsync "$source" >/dev/null || _exit_err "Source ${source} is not readable. Skipping."

I think that this quick test is a much better than, say, pinging
the source in a pre-exec script: this tests not only that the
source is up and connected to the net, it also verifies (1) that
ssh is up and accepting our key (if we are using ssh), and (2) that
the source directory is mounted (if it needs to be mounted) and
readable.
2009-05-25 08:39:28 +02:00
John Lawless
ae23a04925 First, I added the following before any old backup gets deleted:
>    # Verify source is up and accepting connections before deleting any old backups
>    rsync "$source" >/dev/null || _exit_err "Source ${source} is not readable. Skipping."

I think that this quick test is a much better than, say, pinging
the source in a pre-exec script: this tests not only that the
source is up and connected to the net, it also verifies (1) that
ssh is up and accepting our key (if we are using ssh), and (2) that
the source directory is mounted (if it needs to be mounted) and
readable.
2009-05-25 08:39:28 +02:00
Nico Schottelius
8cc0f04874 add patched version of ccollect-0.7.1 by John Lawless
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-05-23 14:34:09 +02:00
Nico Schottelius
27c838163a add macosx as tested
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-02-04 16:28:57 +01:00
Nico Schottelius
38ca0a1546 Revert "Keep a symlink to the current backup around. This allows us to"
This patch is broken for non local destinations.

This reverts commit 6de3c9877c.
2009-02-04 15:12:27 +01:00
Tonnerre Lombard
6de3c9877c Keep a symlink to the current backup around. This allows us to
establish automatic restore features (e.g. through Puppet file
facts).
2009-02-04 08:25:35 +01:00
Nico Schottelius
1943bfd244 update release script
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-02-02 12:39:42 +01:00
Nico Schottelius
bf22075407 update todo and changes
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-02-02 12:16:04 +01:00
Nico Schottelius
00c1303fb2 add ccollect_list_intervals.sh to the tools
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-02-02 12:14:34 +01:00
Nico Schottelius
0516749a0c update changes
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-02-02 12:10:56 +01:00
Nico Schottelius
c133ba5df9 add release date
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-02-02 12:10:48 +01:00
Nico Schottelius
af242905af add testsource for &-test
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-02-02 11:49:12 +01:00
Nico Schottelius
b3ad86f270 [BUGFIX] allow "&" in sourcepath
Bug description:

From: Tiziano Müller <dev-zero@g.o>
Subject: Notiz: Probleme mit Ampersand in source
Date: Tue, 07 Oct 2008 16:11:10 +0000

Hoi Nico

Kleine Notiz wie im IRC besprochen:

- Hat es in /etc/ccollect/sources/$BACKUPNAME/source ein Ampersand muss
dieses Escaped werden, da sonst folgender Fehler auftritt:
*snip*
[volumes_ForschungEntwicklung] 2008-10-05-03:10:03: Beginning to backup,
this may take some time...
[volumes_ForschungEntwicklung] 2008-10-05-03:10:03:
Creating /home/backup/volumes/Forschung&Entwicklung/daily.20081005-0310.15173 ...
[volumes_ForschungEntwicklung] 2008-10-05-03:10:03: Transferring
files...
[volumes_ForschungEntwicklung] bash: Entwicklung/*: No such file or
directory
[volumes_ForschungEntwicklung] rsync: connection unexpectedly closed (4
bytes received so far) [receiver]
[volumes_ForschungEntwicklung] rsync error: error in rsync protocol data
stream (code 12) at io.c(635) [receiver=3.0.2]
[volumes_ForschungEntwicklung] 2008-10-05-03:10:03: Finished backup
(rsync return code: 12).
[volumes_ForschungEntwicklung] 2008-10-05-03:10:03: Warning: rsync
exited non-zero, the backup may be broken (see rsync errors).
*snip*

- ein "&" im Namen fürs Backup,
also: /etc/ccollect/sources/volumes_Forschung&Entwicklung/ wird beim
Anzeigen (wie oben zu sehen) verschluckt.

Cheers,
Tiziano

Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-02-02 11:47:45 +01:00
Nico Schottelius
337fec115b +tab
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-02-02 11:46:48 +01:00
Nico Schottelius
e5e1cc865a more testing in makefile
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-02-02 11:45:59 +01:00
Nico Schottelius
bfcc1ebfc4 update makefile for new server
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-01-16 14:45:25 +01:00
Nico Schottelius
b8b0ca107a [BUGFIX] cd must be in subshell, otherwise breaks later
Due to wrong WD

Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-01-16 14:44:59 +01:00
Nico Schottelius
582018adbb alpha/netbsd added
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2009-01-13 11:58:45 +01:00
Nico Schottelius
d7ec63052a add real world example for my notebook 2008-12-12 00:42:41 +01:00
Nico Schottelius
4f088f84c3 add example interval "normal"
Signed-off-by: Nico Schottelius <nico@ikn.schottelius.org>
2008-12-12 00:42:17 +01:00
Nico Schottelius
c704d7d9b8 +nc
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-08-19 15:25:46 +02:00
Nico Schottelius
05544bf02f begin integration of linux restore
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-07-23 18:05:35 +02:00
Nico Schottelius
218f846479 finished description for freebsd
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-07-23 11:39:01 +02:00
Nico Schottelius
c5545e3c45 continue check script
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-07-23 11:31:01 +02:00
Nico Schottelius
ba61d0b6ce continue freebsd restore
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-07-23 11:29:44 +02:00
Nico Schottelius
1a8752814f add template for ccollect_check_config
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-07-21 11:24:03 +02:00
Nico Schottelius
7cc669ba0a begin to structure it
Signed-off-by: Nico Schottelius <nico@tr.schottelius.org>
2008-07-04 13:35:52 +02:00
Nico Schottelius
45d8560110 beginn restore doc
Signed-off-by: Nico Schottelius <nico@tr.schottelius.org>
2008-07-04 15:22:28 +02:00
Nico Schottelius
26b8df4825 begin to make tools more modular in makefile
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-06-25 11:38:24 +02:00
Nico Schottelius
cfe5433e7a todo for 0.7.4
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-06-13 12:07:43 +02:00
Nico Schottelius
6af6c8d229 more changes for 0.7.1
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-06-13 12:04:22 +02:00
Nico Schottelius
ca408a22cc add hint: ssh access required for remote_host
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-06-13 11:46:07 +02:00
Jeroen Bruijning
5809571ca0 Fix bug in shell arithmetic
1. I got a syntax error in ccollect.sh once in a while, i think at
rollover. I changed the line

   j=$((j+1))

to

   j=$(($j+1))

(twice) and the error went away.
2008-06-13 11:34:43 +02:00
Nico Schottelius
40cef5f7a4 update changes/todo
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-06-13 11:30:36 +02:00
Nico Schottelius
fef686b449 remove basename - use standard vars defined in cconf
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-06-13 11:28:43 +02:00
Nico Schottelius
5caad132b5 add hint: prevent backup deletion for unreachable hosts
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-06-13 11:18:44 +02:00
Nico Schottelius
8f2af0e466 update changes for 0.7.1
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-06-13 11:14:39 +02:00
Nico Schottelius
a9dd91ffef also report ssh timeouts
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-06-13 10:49:20 +02:00
Nico Schottelius
cdebda1c32 also update date
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-06-13 10:30:46 +02:00
Nico Schottelius
085ba48497 add three new error messages to ccollect_analyse_logs.sh
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-06-13 10:29:38 +02:00
Nico Schottelius
d5c7b57b09 makefile / hinweise für tools/
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-06-03 14:16:11 +02:00
Nico Schottelius
5775bdb28d todo for 0.7.1 2008-06-03 14:13:55 +02:00
Nico Schottelius
c01e6b9a16 update credits
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-04-26 13:21:37 +02:00
Nico Schottelius
2dc80fa971 more changes 2008-04-26 13:14:19 +02:00
Nico Schottelius
ca5c9fc5fd Describe delete_incomplete
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-04-26 13:08:50 +02:00
Nico Schottelius
2627af97ad Todo for 0.8.0
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-04-26 13:06:27 +02:00
Nico Schottelius
741650f926 add freebsd to supported os
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-04-26 13:01:54 +02:00
Nico Schottelius
f096e412ea Add support for global delete_incomplete to ccollect
Signed-off-by: Nico Schottelius <nico@denkbrett.schottelius.org>
2008-04-26 12:59:24 +02:00