#!/bin/bash
cat << EOF > /etc/cron.d/smb-backup 
0 23 * * * root /usr/local/bin/smb-backup 7 >> /var/log/smb-backup.log 2>&1
EOF

cat << 'EOF' > /usr/local/bin/smb-backup 
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

rc=0
keep=$1

mkdir -p /backup/{online,offline}

prune () {
  backup_type=$1
  if [ $(find /backup/$backup_type/*.tar.bz2 | wc -l) -gt $keep ]; then
    find /backup/$backup_type/*.tar.bz2 | head --lines=-$keep | xargs -d '\n' rm
  fi
}

echo "$(date) Starting samba-ad-dc online backup"
if echo -e 'BM-clp#2018' | samba-tool domain backup online --targetdir=/backup/online --server=ad.taxi-clp.de -UAdministrator ; then
  echo "$(date) Finished samba-ad-dc online backup. Cleaning up old online backups..."
  prune online
else
  echo "$(date) samba-ad-dc online backup failed"
  rc=$(($rc + 1))
fi

echo "$(date) Starting samba-ad-dc offline backup"
if samba-tool domain backup offline --targetdir=/backup/offline ; then 
  echo "$(date) Finished samba-ad-dc offline backup. Cleaning up old offline backups..."
  prune offline
else
  echo "S(date) samba-ad-dc offline backup failed"
  rc=$(($rc + 1))
fi

exit $rc
EOF

chmod +x /usr/local/bin/smb-backup

smb-backup

