Problem with automate backup script

Hi fellows,

I need your help with a script to backup my system and /home automatically.

On the backup-server I use publickey and top authentication with no password otp input only what works fine.

Now I am trying to automate my backup scripts in a way that they could run automatically by cronjobs 2 hourly for /home and weekly for the system-backup.

The scripts look like this `
#!/bin/sh

Load environment variables from the .env1 file

if [ -f “/home/uli/.env1” ]; then
export $(grep -v ‘^#’ /home/uli/.env1 | xargs)
else
echo “.env1 file not found!”
exit 1
fi

Define variables

RESTIC_REPOSITORY=“sftp:udapro.de:/srv/system”
EMAIL_RECIPIENT="info@ulikleemann.de"
DATE=$(date +“%Y-%m-%d”)
TIME=$(date +“%H:%M:%S”)
SUBJECT_SUCCESS=“System-Backup Successful”
SUBJECT_FAILURE=“System-Backup Failure”
SSH_KEY=“/home/uli/.ssh/id_ed25519”
OTP_SECRET=“$GOOGLE_SECRET”

Function to send email

send_email() {
local subject=“$1”
local body=“$2”
echo “$body” | mail -s “$subject” “$EMAIL_RECIPIENT”
}

Function to generate OTP

generate_otp() {
oathtool --totp --base32 “$OTP_SECRET”
}

Generate OTP

OTP=$(generate_otp)

Perform the backup

if restic -r “$RESTIC_REPOSITORY” --password-file <(echo “$RESTIC_PASSWORD”) --option ssh.command=“ssh -i $SSH_KEY -o BatchMode=yes -o StrictHostKeyChecking=no” backup /etc /lib /lib64 /usr /opt /var; then
send_email “$SUBJECT_SUCCESS” “The system backup completed successfully on $DATE at $TIME.”
else
send_email “$SUBJECT_FAILURE” “The system backup failed on $DATE at $TIME.”
exit 1
fi

```

It gives a oathtool warning oathtool: base32 decoding failed: Base32 string is invalid and I have to type in the top manually then it runs and ends with : Files: 4 new, 253 changed, 704160 unmodified
Dirs: 0 new, 133 changed, 71758 unmodified
Added to the repository: 299.977 MiB (93.794 MiB stored)

processed 704417 files, 43.223 GiB in 2:20
snapshot 72fa1090 saved
Warning: at least one source file could not be read``

`What do I have to change and how, that the script runs automatically without changing  pamd.d/sshd and /etc/ssh/sshd_config ?

Thanks in advance 

Uli
1 Like