HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials

HowtoForge Forums | HowtoForge - Linux Howtos and Tutorials (http://www.howtoforge.com/forums/index.php)
-   Installation/Configuration (http://www.howtoforge.com/forums/forumdisplay.php?f=27)
-   -   Old website backups not deleted (http://www.howtoforge.com/forums/showthread.php?t=53636)

snowfly 3rd August 2011 00:17

Old website backups not deleted
 
I have noticed that if we change the backup options for a website in ISPConfig, the older backups are not deleted.
Running ISPConfig 3.0.3.3

This is when you change the copies of backups to keep from a larger number to a smaller number.

The effect of this is when we select a smaller number of backup copies to keep, we expect disk space usage to drop, this does not happen, as all backup copies are still kept.

Take this example:
Site: abc.de
Backup interval: daily
Backup copies: 2

In the /var/backup/webX/ folder we then get 2 backups:
web.1.zip
web.2.zip

Then we change backup copies = 1

The next day, the /var/backup/webX/ folder still has 2 backups (not 1):
web.1.zip
web.2.zip

The web.2.zip file is dated from 2 days ago.

So it appears the ispconfig cron_daily.php script does not take into account deleting older copies of backups.

Relevant code in /usr/local/ispconfig/server/cron_daily.php starts on line 430:
Code:

// Rename or remove old backups
                                $backup_copies = intval($rec['backup_copies']);

                                if(is_file($web_backup_dir.'/web.'.$backup_copies.'.zip')) unlink($web_backup_dir.'/web.'.$backup_copies.'.zip');

                                for($n = $backup_copies - 1; $n >= 1; $n--) {
                                        if(is_file($web_backup_dir.'/web.'.$n.'.zip')) {
                                                rename($web_backup_dir.'/web.'.$n.'.zip',$web_backup_dir.'/web.'.($n+1).'.zip');
                                        }
                                }

Should there also be some code that deletes any older backup copies that are greater than $backup_copies ($backup_copies +1)?
From when the user decreases the number of backup_copies to keep.

e.g. something like this maybe:
Code:

// delete any older backup copies that previously existed
// loop through $backup_copies+1 up to 10, check if file exists, then delete
for ($n = $backup_copies+1; $n <= 10; $n++) {
  if(is_file($web_backup_dir.'/web.'.$n.'.zip'))
    unlink($web_backup_dir.'/web.'.$n.'.zip');
}

Would something like the above work?

till 3rd August 2011 09:43

Your code shpould work. Thanks for the report and bugfix, I will add it to the bugtracker.

Mark_NL 30th August 2011 00:35

This would be "expected behaviour" for me .. i'dnot like it if a system starts messing with my backup files .. if i want to clean them, i'll do it manually, but hey, .. that's me! :)

At least some form of option to let the user decide if the older files should be deleted or not would be in nice. That way you can either keep running the old code, or the new code (which does delete them).


All times are GMT +2. The time now is 02:49.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, vBulletin Solutions, Inc.