# HG changeset patch # User Heiko Schlittermann # Date 1258837430 -3600 # Node ID e2e657251d08ebae07c906f3ed2974a1a40ec577 # Parent ab747c27a38b47abadc982a8aa8d805749df537d deb version 0.1 diff -r ab747c27a38b -r e2e657251d08 Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile Sat Nov 21 22:03:50 2009 +0100 @@ -0,0 +1,16 @@ +DESTDIR = +prefix = /usr +sbindir = ${prefix}/sbin + +SCRIPT = ftbackup + +all: + # nothing + +install: all + install -m 0755 -d ${DESTDIR}${sbindir} + install -m 0755 ${SCRIPT} ${DESTDIR}${sbindir} + + +clean: + # nothing diff -r ab747c27a38b -r e2e657251d08 Makefile.in --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile.in Sat Nov 21 22:03:50 2009 +0100 @@ -0,0 +1,16 @@ +DESTDIR = +prefix = @prefix@ +sbindir = ${prefix}/sbin + +SCRIPT = ftbackup + +all: + # nothing + +install: all + install -m 0755 -d ${DESTDIR}${sbindir} + install -m 0755 ${SCRIPT} ${DESTDIR}${sbindir} + + +clean: + # nothing diff -r ab747c27a38b -r e2e657251d08 build-stamp diff -r ab747c27a38b -r e2e657251d08 configure --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/configure Sat Nov 21 22:03:50 2009 +0100 @@ -0,0 +1,17 @@ +#! /bin/bash + +prefix="/usr/local" + +tmp=$(getopt -n $0 -o p -l prefix: -- "$@") +eval set -- "$tmp" + +while true; do + case "$1" in + --prefix) prefix="$2"; shift 2 + ;; + --) break + ;; + esac +done + +sed -e "s|@prefix@|$prefix|g" Makefile diff -r ab747c27a38b -r e2e657251d08 configure-stamp diff -r ab747c27a38b -r e2e657251d08 debian/control --- a/debian/control Wed Oct 28 23:00:02 2009 +0100 +++ b/debian/control Sat Nov 21 22:03:50 2009 +0100 @@ -4,10 +4,12 @@ Maintainer: Heiko Schlittermann Build-Depends: debhelper (>= 7) Standards-Version: 3.7.3 -Homepage: +Homepage: https://keller.schlittermann.de/hg/incubator/ftbackup Package: ftbackup -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: - +Architecture: all +Depends: ${shlibs:Depends}, ${misc:Depends}, openssl, libnet-ftp-perl +Recommends: ftpipe +Description: encrypted backup via ftp + This is more or less a wrapper around dump(8). It saves the + dumped data as encrypted files on a FTP server. diff -r ab747c27a38b -r e2e657251d08 debian/files --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/files Sat Nov 21 22:03:50 2009 +0100 @@ -0,0 +1,1 @@ +ftbackup_0.1-1_all.deb unknown extra diff -r ab747c27a38b -r e2e657251d08 debian/ftbackup.debhelper.log --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/ftbackup.debhelper.log Sat Nov 21 22:03:50 2009 +0100 @@ -0,0 +1,14 @@ +dh_installdirs +dh_installchangelogs +dh_installdocs +dh_installexamples +dh_installman +dh_link +dh_strip +dh_compress +dh_fixperms +dh_installdeb +dh_shlibdeps +dh_gencontrol +dh_md5sums +dh_builddeb diff -r ab747c27a38b -r e2e657251d08 debian/ftbackup/DEBIAN/conffiles --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/ftbackup/DEBIAN/conffiles Sat Nov 21 22:03:50 2009 +0100 @@ -0,0 +1,1 @@ +/etc/ftbackup/default diff -r ab747c27a38b -r e2e657251d08 debian/ftbackup/DEBIAN/control --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/ftbackup/DEBIAN/control Sat Nov 21 22:03:50 2009 +0100 @@ -0,0 +1,12 @@ +Package: ftbackup +Version: 0.1-1 +Architecture: all +Maintainer: Heiko Schlittermann +Installed-Size: 72 +Recommends: ftpipe +Section: unknown +Priority: extra +Homepage: https://keller.schlittermann.de/hg/incubator/ftbackup +Description: encrypted backup via ftp + This is more or less a wrapper around dump(8). It saves the + dumped data as encrypted files on a FTP server. diff -r ab747c27a38b -r e2e657251d08 debian/ftbackup/DEBIAN/md5sums --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/ftbackup/DEBIAN/md5sums Sat Nov 21 22:03:50 2009 +0100 @@ -0,0 +1,4 @@ +7863cc361a29c8c28337971237a9e0a1 usr/share/doc/ftbackup/changelog.Debian.gz +f7fe181d07923779d32311dbe6c8c32a usr/share/doc/ftbackup/copyright +9387c4b8d486c6b4ec9c9366d04ed3f9 usr/share/doc/ftbackup/README.Debian +89d8c556a686d6f37ecf97c5452b5704 usr/sbin/ftbackup diff -r ab747c27a38b -r e2e657251d08 debian/ftbackup/etc/ftbackup/default --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/ftbackup/etc/ftbackup/default Sat Nov 21 22:03:50 2009 +0100 @@ -0,0 +1,16 @@ +# example config +# the commented values are the built in defaults + +# The encryption key +# KEY = + +# FTP-Server hostname +# FTP_HOST = + +# FTP-Server base directory +# the following expansion work: +# $NODE +# FTP_DIR = backups/daily/$NODE + +# if we need passive mode for file transfer +# FTP_PASSIVE = 1 diff -r ab747c27a38b -r e2e657251d08 debian/ftbackup/usr/sbin/ftbackup --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/debian/ftbackup/usr/sbin/ftbackup Sat Nov 21 22:03:50 2009 +0100 @@ -0,0 +1,389 @@ +#! /usr/bin/perl +use strict; +use warnings; + +use IO::File; +use File::Basename; +use Net::FTP; +use Perl6::Slurp; +use Getopt::Long; +use Sys::Hostname; +use Time::Local; +use Pod::Usage; +use POSIX qw(strftime);; +use English qw(-no_match_vars); +use 5.10.0; +use if $ENV{DEBUG} => qw(Smart::Comments); + +$ENV{LC_ALL} = "C"; + +my $ME = basename $0; + +my @CONFIGS = ("/etc/$ME", "$ENV{HOME}/.$ME", "$ME.conf"); + +my $NODE = hostname; +my $NOW = time(); + +my $opt_level = undef; +my $opt_today = strftime("%F", localtime $NOW); +my @opt_debug = (); +my $opt_verbose = 0; +my $opt_dry = 0; +my $opt_force = 0; +my $opt_label = "daily"; + +sub get_configs(@); +sub get_candidates(); +sub verbose(@); +sub iso2epoch($); + +our @AT_EXIT; +END { $_->() foreach @AT_EXIT }; +$SIG{INT} = sub { warn "Got signal INT\n"; exit 1 }; + +my %CONFIG = ( + FTP_DIR => "backup/