#!/bin/bash

DATE=20$(date +%y-%m-%d)
BACKUP_DIR=/mnt/backup
UPLOAD_DIR=/mnt/upload
NAME=admin
PWD=CVmedic@l2020
UNIFI_DIR=/usr/lib/unifi/data/backup/autobackup/
IP=10.1.1.1
FILENAME=asa-config-router
## FTP SETTINGS ##
USER=asurgical
HOST=acns.my57lab.com
PASSWORD='JQ(&i:0L4oP('
PORT=2121
#FILE=/mnt/upload/asa-backup.zip

## BACKUP PFSENSE CONFIG ##

## Step 1 - get cookie ##

wget -qO- --keep-session-cookies \
  --save-cookies $BACKUP_DIR/cookies.txt \
  --no-check-certificate \
  https://$IP/diag_backup.php \
  | grep "name='__csrf_magic'" \
  | sed 's/.*value="\(.*\)".*/\1/' > $BACKUP_DIR/csrf.txt


## step 2 - login and create Backup ##

wget -qO- --keep-session-cookies --load-cookies $BACKUP_DIR/cookies.txt \
  --save-cookies $BACKUP_DIR/cookies.txt --no-check-certificate \
  --post-data "login=Login&usernamefld=$NAME&passwordfld=$PWD&__csrf_magic=$(cat $BACKUP_DIR/csrf.txt)" \
  https://$IP/diag_backup.php \
  | grep "name='__csrf_magic'" \
  | sed 's/.*value="\(.*\)".*/\1/' > $BACKUP_DIR/csrf2.txt


## Step 3 - download file ##

wget --keep-session-cookies --load-cookies $BACKUP_DIR/cookies.txt --no-check-certificate \
  --post-data "download=download&donotbackuprrd=yes&__csrf_magic=$(head -n 1 $BACKUP_DIR/csrf2.txt)" \
  https://$IP/diag_backup.php -O $BACKUP_DIR/$FILENAME-`date +%Y%m%d%H%M%S`.xml


## SCANNING AND DELETING UNIFI FILES OLDER THAN 60 DAYS ##

find $UNIFI_DIR -type f -name '*.unf' -mtime +60 -exec rm {} \;


## BACKUP UNIFI CONFIGS ##

rsync -avzh --delete $UNIFI_DIR/*.unf $BACKUP_DIR/

## SCANNING AND  DELETING FILES OLDER THAN DEFINED DAYS ##

find $BACKUP_DIR -type f -name '*.unf' -mtime +18 -exec rm {} \;
find $UPLOAD_DIR -type f -name '*.zip' -mtime +18 -exec rm {} \;
find $BACKUP_DIR -type f -name '*.xml' -mtime +18 -exec rm {} \;
find /home/siteadmin/sync/ -type f -name '*.txt' -mtime +18 -exec rm {} \;

## CREATE ZIP FILE FOR UPLOAD ##

zip -r $UPLOAD_DIR/asa-backup-$DATE.zip $BACKUP_DIR/*.unf $BACKUP_DIR/*.xml
zip -r $UPLOAD_DIR/cronjobs-$DATE.zip /etc/cron.weekly/*
zip -r $UPLOAD_DIR/interfaces-$DATE.zip /etc/network/interfaces

touch /home/siteadmin/sync/completed-$DATE.txt


## BEGIN FTP UPLOAD ##


lftp -u $USER,$PASSWORD ftp://$HOST:$PORT <<EOF
set ftp:ssl-force true
set ftp:ssl-protect-data true
set ftp:ssl-allow true
set ssl:verify-certificate no

mput $UPLOAD_DIR/*.zip
#put $FILE

exit
EOF

