External configuration file
authorTim Pope <code@tpope.net>
Sat, 31 Jul 2004 06:44:05 +0000 (06:44 +0000)
committerTim Pope <code@tpope.net>
Sat, 31 Jul 2004 06:44:05 +0000 (06:44 +0000)
bin/critical-backup

index a22ebc7078ab558bc94ee3d61590e3455aa2e4a7..0ddd307125262e44a231e9fb43e6c65b0f22f063 100755 (executable)
@@ -4,9 +4,16 @@
 
 PATH="$HOME/bin:/usr/local/bin:/usr/bin:/bin"
 ARCHIVE="tpope-`date +%Y-%m-%d`.tar.gpg"
 
 PATH="$HOME/bin:/usr/local/bin:/usr/bin:/bin"
 ARCHIVE="tpope-`date +%Y-%m-%d`.tar.gpg"
-EMAIL="back"quot'e@gmai'l.com
 
 
-exec >/dev/null 2>&1 </dev/null
+if [ -f "$HOME/.critical-backuprc" ]; then
+    . "$HOME/.critical-backuprc"
+else
+    echo "Error: Please create a ~/.critical-backuprc which includes EMAIL=,">&2
+    echo "FROM=, and GPGID= lines.">&2
+    exit 1
+fi
+
+exec >/dev/null </dev/null
 
 mkdir /tmp/.critical-$LOGNAME-$$
 chmod 0700 /tmp/.critical-$LOGNAME-$$
 
 mkdir /tmp/.critical-$LOGNAME-$$
 chmod 0700 /tmp/.critical-$LOGNAME-$$
@@ -17,13 +24,14 @@ ln -s "$HOME/.cvs" cvs
 mysqldump --all-databases > mysqldump.sql
 
 tar chf - tpope.tar cvs mysqldump.sql |\
 mysqldump --all-databases > mysqldump.sql
 
 tar chf - tpope.tar cvs mysqldump.sql |\
-gpg -qez 9 -r A356C8D546EEFD2C --batch --no-tty > $ARCHIVE
+gpg -qez 9 -r "$GPGID" --batch --no-tty > $ARCHIVE
 
 
-cp $ARCHIVE "$HOME/backup/"
-scp -Bq -oSetupTimeout=30 $ARCHIVE patman:backup/ || \
-scp -Bq -oSetupTimeout=30 $ARCHIVE chief:backup/
-scp -Bq -oSetupTimeout=30 $ARCHIVE right:backup/
-scp -Bq $ARCHIVE snowball:tpope.tar.gpg
+[ -d "$HOME/backup-`date +%Y`" ] || mkdir "$HOME/backup-`date +%Y`"
+cp $ARCHIVE "$HOME/backup-`date +%Y`/"
+scp -Bq -oSetupTimeout=30 $ARCHIVE patman:backup/ 2>/dev/null || \
+scp -Bq -oSetupTimeout=30 $ARCHIVE chief:backup/ 2>/dev/null
+scp -Bq -oSetupTimeout=30 $ARCHIVE right:backup/ 2>/dev/null
+scp -Bq $ARCHIVE snowball:tpope.tar.gpg 2>/dev/null
 
 d="`date +%d`"
 if [ "$d" = 1 -o "$d" = 8 -o "$d" = 16 -o "$d" = 23 -o "$1" = "-m" ]; then
 
 d="`date +%d`"
 if [ "$d" = 1 -o "$d" = 8 -o "$d" = 16 -o "$d" = 23 -o "$1" = "-m" ]; then
@@ -31,7 +39,31 @@ if [ "$d" = 1 -o "$d" = 8 -o "$d" = 16 -o "$d" = 23 -o "$1" = "-m" ]; then
        -a "Content-Type: application/octet-stream; name=$ARCHIVE" \
        -a "Content-Disposition: attachment; filename=$ARCHIVE" \
        -a "Content-Transfer-Encoding: base64" \
        -a "Content-Type: application/octet-stream; name=$ARCHIVE" \
        -a "Content-Disposition: attachment; filename=$ARCHIVE" \
        -a "Content-Transfer-Encoding: base64" \
-       -a "From: SexyGeek Backup <backu"p@sexyg'eek.org>'
+       -a "From: $FROM"
+fi
+
+if   [ "`date +%m%d`" = "0101" -o "$1" = "-c" ]; then
+    mkisofs -r -J -o back.iso "$HOME/backup-`date +%Y`" 2>/dev/null
+    if ! sudo cdrecord -tao -data -multi speed=4 back.iso 2>/dev/null; then
+       echo "Error: blank CD not found.  Please call `basename $0` manually" >&2
+    fi
+elif [ "`date +%m%d`" = "1231" ]; then
+    s="`sudo cdrecord -msinfo 2>/dev/null`"
+    if [ "$s" ]; then
+       mkisofs -r -J -o back.iso -M /dev/cdr -C "$s" "$HOME/backup-`date +%Y`" 2>/dev/null
+       sudo cdrecord -tao -data speed=4 back.iso 2>/dev/null
+    else
+       echo "Error.  Is the CD in the drive?" >&2
+    fi
+    echo "Yearly backup finished.  Please put a blank CD in the drive." >&2
+elif [ "$d" = 1 -o "$d" = 8 -o "$d" = 16 -o "$d" = 23 ]; then
+    s="`sudo cdrecord -msinfo 2>/dev/null`"
+    if [ "$s" ]; then
+       mkisofs -r -J -o back.iso -M /dev/cdr -C "$s" "$HOME/backup-`date +%Y`" 2>/dev/null
+       sudo cdrecord -tao -data -multi speed=4 back.iso >/dev/null 2>&1
+    else
+       echo "Error.  Is the CD in the drive?" >&2
+    fi
 fi
 
 cd ..
 fi
 
 cd ..