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 exit 1
fi fi
security add-generic-password -a $USER -s backup-host -w "$HOST"
security add-generic-password -a $USER -s backup-share -w "$SHARE" echo "afp://$USERNAME:$PASSWORD@$HOST/$SHARE" > ~/.backup-cred
security add-generic-password -a $USER -s backup-username -w "$USERNAME" chmod 600 ~/.backup-cred
security add-generic-password -a $USER -s backup-password -w "$PASSWORD"
cp $BIN_DIR/backup-commands.default.sh "$BACKUP_COMMANDS" cp $BIN_DIR/backup-commands.default.sh "$BACKUP_COMMANDS"
chmod u+x "$BACKUP_COMMANDS" chmod u+x "$BACKUP_COMMANDS"
+7 -9
View File
@@ -1,21 +1,19 @@
#!/bin/bash #!/bin/bash -x
function die { function die {
echo $*; exit 1 echo $*; exit 1
} }
LOCAL_MOUNT="$HOME/.backup-drive" LOCAL_MOUNT="$HOME/.backup-drive"
HOST=$(security find-generic-password -a $USER -s backup-host -w) DRIVE=$(cat ~/.backup-cred)
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"
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 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 fi
mkdir -p "$LOCAL_MOUNT" 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 fi
+7 -7
View File
@@ -7,27 +7,27 @@ function die {
LOCAL_MOUNT="$HOME/.backup-drive" LOCAL_MOUNT="$HOME/.backup-drive"
BACKUP_COMMANDS="$HOME/.backup-commands.sh" BACKUP_COMMANDS="$HOME/.backup-commands.sh"
STARTED_DATE=$(date) STARTED_DATE=$(date)
BIN=$(dirname $0)
[[ -x "$BACKUP_COMMANDS" ]] || die "Could not find $BACKUP_COMMANDS" [[ -x "$BACKUP_COMMANDS" ]] || die "Could not find $BACKUP_COMMANDS"
echo "Mounting backup volume..." echo "[$(date)] Mounting backup volume..."
./backup-unmount.sh || die $BIN/backup-mount.sh || die
./backup-mount.sh || die
[[ -d "$LOCAL_MOUNT" ]] || die "Could find $LOCAL_MOUNT" [[ -d "$LOCAL_MOUNT" ]] || die "Could find $LOCAL_MOUNT"
( (
cd "$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 "$BACKUP_COMMANDS" >> backup.log 2>&1
) )
if [[ "$?" != 0 ]]; then if [[ "$?" != 0 ]]; then
echo "ERROR: Backup failed!" echo "[$(date)] ERROR: Backup failed!"
head -n10 "$LOCAL_MOUNT/backup.log" head -n10 "$LOCAL_MOUNT/backup.log"
echo "..." echo "..."
tail -n10 "$LOCAL_MOUNT/backup.log" tail -n10 "$LOCAL_MOUNT/backup.log"
fi fi
#./backup-unmount.sh || echo "WARNING: Could not unmount $LOCAL_MOUNT! Please check into this!" $BIN/backup-unmount.sh || echo "[$(date)] WARNING: Could not unmount $LOCAL_MOUNT! Please check into this!"
echo "Finished backing up at $(date)." echo "[$(date)] Finished backing up"
+2 -2
View File
@@ -6,8 +6,8 @@ function die {
LOCAL_MOUNT="$HOME/.backup-drive" LOCAL_MOUNT="$HOME/.backup-drive"
if mount | grep -q "$LOCAL_MOUNT"; then 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 fi
[[ -e "$LOCAL_MOUNT" ]] && rm -r "$LOCAL_MOUNT" [[ -e "$LOCAL_MOUNT" ]] && rmdir "$LOCAL_MOUNT"
exit 0 exit 0