#!/usr/bin/perl
use Time::Piece;
use File::Path qw(rmtree);

# Variables
my $backup_dir = '/astCRM_Bak';
my $days_to_keep = 3;  # Number of days to keep backups

# Get the current time
my $now = time();

# Open the backup directory
opendir(my $dh, $backup_dir) || die "Can't open $backup_dir: $!";

# Iterate over all directories in the backup folder
while (my $folder = readdir($dh)) {

    # Skip '.' and '..'
    next if ($folder eq '.' || $folder eq '..');

    # Extract date from the folder name (assuming format CB_YYYY-MM-DD)
    if ($folder =~ /CB_(\d{4})-(\d{2})-(\d{2})/) {
        my $backup_date_str = "$1-$2-$3";
        
        # Parse the folder date into a time object
        my $backup_date = Time::Piece->strptime($backup_date_str, "%Y-%m-%d");
        
        # Calculate the age of the backup in seconds
        my $backup_age_in_seconds = $now - $backup_date->epoch;
        
        # Convert seconds to days
        my $backup_age_in_days = int($backup_age_in_seconds / (60 * 60 * 24));

        # Delete the folder if it's older than the specified number of days
        if ($backup_age_in_days > $days_to_keep) {
            my $folder_to_delete = "$backup_dir/$folder";
            print "Deleting old backup: $folder_to_delete (Age: $backup_age_in_days days)\n";
            rmtree($folder_to_delete);
        }
    }
}

closedir($dh);

