]> ruderich.org/simon Gitweb - config/dotfiles.git/blobdiff - os/debian/bin/backup.sh
Move to os/ in preparation for merge into new dotfiles repository
[config/dotfiles.git] / os / debian / bin / backup.sh
diff --git a/os/debian/bin/backup.sh b/os/debian/bin/backup.sh
new file mode 100755 (executable)
index 0000000..4b9bffa
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+# Backup all important system-relevant data of a Debian system.
+#
+# The list of installed packages can be extracted from /var/lib/dpkg/status.
+
+# Copyright (C) 2013  Simon Ruderich
+#
+# This program 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.
+#
+# This program 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 this program.  If not, see <http://www.gnu.org/licenses/>.
+
+
+set -eu
+
+# tar can't exclude it automatically because we pipe it through gpg.
+target="`pwd`/`hostname`.tar.gpg"
+
+tar cf - \
+    --exclude /root/apt \
+    --exclude /var/cache \
+    --exclude /var/www \
+    --exclude "$target" \
+    --exclude "$target.tmp" \
+    /etc /root /var \
+    | gpg --encrypt --sign --recipient 0x95AC608FB0863F79 \
+    >"$target.tmp"
+mv "$target.tmp" "$target"