Wenn du den Post von LinuxAdmin nicht verstanden hast, wirst du eine andere Lösung finden müssen als reobackup selbst zu patchen. (Es gibt einen kleinen Unterschied, fremde Patches anzuwenden und diese selbst zu schreiben...)und das soll ich verstehen?
cat <file> | gpg -e -r <gpg@key.id> | ssh <user>@<server> dd of=<path>/<file>.gpg
diff -ru orig/etc/reoback/settings.conf enc/etc/reoback/settings.conf
--- orig/etc/reoback/settings.conf 2008-02-07 11:04:47.000000000 +0100
+++ enc/etc/reoback/settings.conf 2008-02-07 10:52:33.000000000 +0100
@@ -71,3 +71,12 @@
# Password for remote user.
ftppasswd = passwordhere
######################################################
+
+######################################################
+# REQUIRED IF ENCRYPTION OF DATA IS NEEDED
+#######
+# enable encryption
+encrypt = 1
+# GPG key ID to use
+encid = 8DA96714
+######################################################
diff -ru orig/usr/bin/reoback.pl enc/usr/bin/reoback.pl
--- orig/usr/bin/reoback.pl 2008-02-07 11:04:47.000000000 +0100
+++ enc/usr/bin/reoback.pl 2008-02-07 10:49:16.000000000 +0100
@@ -42,9 +42,11 @@
my $DATESTAMP = `date +%Y%m%d`; # Current date in format: 04092001
my $DATESTAMPD = `date +%Y-%m-%d`; # Current date in format: 04092001
my $TIMESTAMP = `date +%I%M%p`; # Current time in format: 0945PM
-my $TARCMD = "tar -cpzf"; # Command to use to create tar files
+my $TARCMD = "tar -cpf -"; # Command to use to create tar files
my $NFSCMD = "mount -o rw,soft,intr,wsize=8192,rsize=8192";
-my $EXT = "\.tgz"; # Tar file extension
+my $EXT = "\.tar\.bz2"; # Tar file extension
+my $GPGCMD = "gpg";
+my $BZIPCMD = "bzip2 -9c";
# GLOBAL VARIABLES
###########################################################################
@@ -66,6 +68,10 @@
&parseConfig();
&backupType();
+if ($config{"encrypt"}) {
+ $EXT = $EXT . ".gpg";
+}
+
# Make sure that dirs exist (localmount and localbackup are checked below)
if ( not -e $config{"tmpdir"} ) {
&mkdirp( $config{"tmpdir"}, 0700 ) or
@@ -190,16 +196,46 @@
# Create the tar archive. Use this method instead of system() so that we
# can filter out the "Removing leading `/'" messages. '2>&1' redirects
# error messages from tar to stdout so we can catch them.
- if ( $skipFile ) {
- open PROC, "$TARCMD $fileName -T $listName.incl -X $listName.excl 2>&1|";
- }
- else {
- open PROC, "$TARCMD $fileName -T $listName.incl 2>&1|";
- }
- foreach ( <PROC> ) {
- if ( $_ !~ /Removing leading `\/'/ ) { print $_; }
+ if ($config{"encrypt"}) {
+
+ my $encID = $config{"encid"};
+ checkGPG($encID);
+
+ if ( $skipFile ) {
+ open PROC, "$TARCMD -T $listName.incl -X $listName.excl | $BZIPCMD | $GPGCMD -e -r $encID > $fileName 2>&1|";
+ }
+ else {
+ open PROC, "$TARCMD -T $listName.incl | $BZIPCMD | $GPGCMD -e -r $encID > $fileName 2>&1|";
+ }
+ foreach ( <PROC> ) {
+ if ( $_ !~ /Removing leading `\/'/ ) { print $_; }
+ }
+ close PROC;
+ }
+ else { # regular backup w/o encryption
+ if ( $skipFile ) {
+ open PROC, "$TARCMD -T $listName.incl -X $listName.excl | $BZIPCMD > $fileName 2>&1|";
+ }
+ else {
+ open PROC, "$TARCMD -T $listName.incl | $BZIPCMD > $fileName 2>&1|";
+ }
+ foreach ( <PROC> ) {
+ if ( $_ !~ /Removing leading `\/'/ ) { print $_; }
+ }
+ close PROC;
+ }
+}
+
+# Description: Routine for checking whether the GPG encryption will work
+# Parameter(s): "Key ID of recipient"
+# Returns: Nothing
+sub checkGPG{
+ my $encID = $_[0]; # Recipient Key ID
+
+ my $gpgtest = system("$GPGCMD --list-keys $encID >/dev/null");
+ if ($gpgtest != 0) {
+ die("GPG failed with code " . ($gpgtest/256) . "\n");
}
- close PROC;
}
# Description: Routine for transferring a file to the remote backup
cd /
patch -p1 < /tmp/reo_enc.patch
gpg --gen-key
+my $BZIPCMD = "bzip2 -9c";
We use essential cookies to make this site work, and optional cookies to enhance your experience.