I am recording some scripting I used to create backup classification/retention naming. It can be simplified into one function easily but I kept it like this so I can copy and paste easier which function I need. Script is pretty self explanatory but basically it takes today”s date and name my eventual backup file name based on some logic.
# cat test_class.shHOSTNAME=$(hostname -s)BACKUP_CLASSIFICATION="UNCLASSIFIED"
function retention_date() { MM=`date -d ${1} +%m` DD=`date -d ${1} +%d` DAY=`date -d ${1} +%u`
if [ $DD == 01 ] then if [ $MM == 01 ] then BACKUP_CLASSIFICATION="YEARLY" else BACKUP_CLASSIFICATION="MONTHLY" fi else if (($DAY == 7)); then BACKUP_CLASSIFICATION="WEEKLY" else BACKUP_CLASSIFICATION="DAILY" fi fi
}
function retention_today() { MM=`date '+%m'` DD=`date '+%d'` DAY=`date +%u`
if [ $DD == 01 ] then if [ $MM == 01 ] then BACKUP_CLASSIFICATION="YEARLY" else BACKUP_CLASSIFICATION="MONTHLY" fi else if (($DAY == 7)); then BACKUP_CLASSIFICATION="WEEKLY" else BACKUP_CLASSIFICATION="DAILY" fi fi
}
echo "TEST TODAY"DATE=`date +%Y-%m-%d`retention_todayecho $HOSTNAME-$BACKUP_CLASSIFICATION-$DATE
echoecho "TEST SPECIFIC DATES"testD=( '2018-01-01' '2018-02-02' '2018-03-01' '2018-02-06' '2018-07-14' '2018-07-15')
for D in "${testD[@]}"do DATE=`date -d ${D} +%Y-%m-%d` retention_date $D echo $HOSTNAME-$BACKUP_CLASSIFICATION-$DATEdoneRun and output.
TEST TODAYoci04-DAILY-2018-07-20
TEST SPECIFIC DATESoci04-YEARLY-2018-01-01oci04-DAILY-2018-02-02oci04-MONTHLY-2018-03-01oci04-DAILY-2018-02-06oci04-DAILY-2018-07-14oci04-WEEKLY-2018-07-15