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?
Recent comments
19 hours 58 min ago
1 day 5 hours ago
1 day 6 hours ago
1 day 9 hours ago
1 day 14 hours ago
1 day 14 hours ago
1 day 16 hours ago
2 days 2 hours ago
2 days 7 hours ago
2 days 9 hours ago