Correct problems with using Keychain for backup drive credentials

This commit is contained in:
Andrew Miner
2017-08-10 08:16:43 -07:00
parent 306e87c38d
commit b9cee5300e
4 changed files with 20 additions and 23 deletions
+3 -4
View File
@@ -18,10 +18,9 @@ if [[ "$CONFIRM" != "Y" ]]; then
exit 1
fi
security add-generic-password -a $USER -s backup-host -w "$HOST"
security add-generic-password -a $USER -s backup-share -w "$SHARE"
security add-generic-password -a $USER -s backup-username -w "$USERNAME"
security add-generic-password -a $USER -s backup-password -w "$PASSWORD"
echo "afp://$USERNAME:$PASSWORD@$HOST/$SHARE" > ~/.backup-cred
chmod 600 ~/.backup-cred
cp $BIN_DIR/backup-commands.default.sh "$BACKUP_COMMANDS"
chmod u+x "$BACKUP_COMMANDS"
+7 -9
View File
@@ -1,21 +1,19 @@
#!/bin/bash
#!/bin/bash -x
function die {
echo $*; exit 1
}
LOCAL_MOUNT="$HOME/.backup-drive"
HOST=$(security find-generic-password -a $USER -s backup-host -w)
SHARE=$(security find-generic-password -a $USER -s backup-share -w)
USERNAME=$(security find-generic-password -a $USER -s backup-username -w)
PASSWORD=$(security find-generic-password -a $USER -s backup-password -w)
DRIVE="afp://$USERNAME:$PASSWORD@$HOST/$SHARE"
DRIVE=$(cat ~/.backup-cred)
if ! mount | grep -q "$HOME/$LOCAL_MOUNT"; then
[[ "$DRIVE" == "" ]] && die "[$(date)] Could not find ~/.backup-cred"
if ! mount | grep -q "$LOCAL_MOUNT"; then
if [[ -e "$LOCAL_MOUNT" ]]; then
rm -rf "$LOCAL_MOUNT" || die "Could not mount to $LOCAL_MOUNT"
rmdir "$LOCAL_MOUNT" >/dev/null &2>1 || die "[$(date)] Could not mount to $LOCAL_MOUNT"
fi
mkdir -p "$LOCAL_MOUNT"
mount -t afp "$DRIVE" "$LOCAL_MOUNT" || die "Could not mount from $DRIVE"
mount -t afp "$DRIVE" "$LOCAL_MOUNT" || die "[$(date)] Could not mount backup drive"
fi
+7 -7
View File
@@ -7,27 +7,27 @@ function die {
LOCAL_MOUNT="$HOME/.backup-drive"
BACKUP_COMMANDS="$HOME/.backup-commands.sh"
STARTED_DATE=$(date)
BIN=$(dirname $0)
[[ -x "$BACKUP_COMMANDS" ]] || die "Could not find $BACKUP_COMMANDS"
echo "Mounting backup volume..."
./backup-unmount.sh || die
./backup-mount.sh || die
echo "[$(date)] Mounting backup volume..."
$BIN/backup-mount.sh || die
[[ -d "$LOCAL_MOUNT" ]] || die "Could find $LOCAL_MOUNT"
(
cd "$LOCAL_MOUNT"
echo "Started backing up at $STARTED_DATE" > backup.log
echo "[$(date)] Running backup..." > backup.log
"$BACKUP_COMMANDS" >> backup.log 2>&1
)
if [[ "$?" != 0 ]]; then
echo "ERROR: Backup failed!"
echo "[$(date)] ERROR: Backup failed!"
head -n10 "$LOCAL_MOUNT/backup.log"
echo "..."
tail -n10 "$LOCAL_MOUNT/backup.log"
fi
#./backup-unmount.sh || echo "WARNING: Could not unmount $LOCAL_MOUNT! Please check into this!"
echo "Finished backing up at $(date)."
$BIN/backup-unmount.sh || echo "[$(date)] WARNING: Could not unmount $LOCAL_MOUNT! Please check into this!"
echo "[$(date)] Finished backing up"
+2 -2
View File
@@ -6,8 +6,8 @@ function die {
LOCAL_MOUNT="$HOME/.backup-drive"
if mount | grep -q "$LOCAL_MOUNT"; then
umount "$LOCAL_MOUNT" || die "Could not unmount $LOCAL_MOUNT"
umount "$LOCAL_MOUNT" || die "[$(date)] Could not unmount $LOCAL_MOUNT"
fi
[[ -e "$LOCAL_MOUNT" ]] && rm -r "$LOCAL_MOUNT"
[[ -e "$LOCAL_MOUNT" ]] && rmdir "$LOCAL_MOUNT"
exit 0