From f35fc1ff0fbb94face3fb5c1f3f1f7ab9b207700 Mon Sep 17 00:00:00 2001 From: Alexei Date: Sun, 15 Apr 2012 14:34:39 +0400 Subject: [PATCH] Add max backup files --- Backup/GetDelFileList | 42 ++++++++++++++++++++++++++++++++++++++++++ Backup/MakeHomeBackup | 13 +++++++++++++ Backup/MakeSystemBackup | 12 ++++++++++++ 3 files changed, 67 insertions(+) create mode 100755 Backup/GetDelFileList diff --git a/Backup/GetDelFileList b/Backup/GetDelFileList new file mode 100755 index 0000000..51350ab --- /dev/null +++ b/Backup/GetDelFileList @@ -0,0 +1,42 @@ +#!/bin/bash + +# -------------Входные параметры--------------- + +# Максимальное колличество файлов, которое должно остаться +maxFilesCount=$1 +# Набор файлов, первые из которых будут удалены +files=$2 + +# -------------Выходной параметр--------------- +# Файлы, которые нужно удалить +delFiles="" + +# --------------------------------------------- +# Вычисляем колличество файлов +filesCount=0 +for i in $files +do + let filesCount++ +done + +# Записываем файлы для удаления в переменную delFiles + +if [ $maxFilesCount -lt $filesCount ] +then + + delFilesIndex=0 + let delFilesCount=filesCount-maxFilesCount + + for i in $files + do + if [ $delFilesIndex -lt $delFilesCount ] + then + delFiles=`echo -en "${delFiles}\n${i}"` + fi + let delFilesIndex++ + done + +fi + +echo $delFiles + diff --git a/Backup/MakeHomeBackup b/Backup/MakeHomeBackup index 5ff7d1b..62b2833 100755 --- a/Backup/MakeHomeBackup +++ b/Backup/MakeHomeBackup @@ -1,4 +1,11 @@ #!/bin/bash + +# Выясняем, какие старые архивы нам нужно удалить +maxFilesCount=3 +files=`find /home/home_backup_*|sort` +delFiles=`./GetDelFileList $maxFilesCount "${files}"` + +# Делаем бекап cd /home sudo tar cvpzf home_backup_$(date +%yy%mm%dd-%Hh%Mm%Ss).tgz \ --exclude=home_backup*.tgz \ @@ -6,3 +13,9 @@ sudo tar cvpzf home_backup_$(date +%yy%mm%dd-%Hh%Mm%Ss).tgz \ --exclude=.mozilla/firefox/*.default/Cache \ --exclude=.googleearth/Cache \ . + +# Удаляем старые архивы +for i in $delFiles +do + sudo rm $i +done diff --git a/Backup/MakeSystemBackup b/Backup/MakeSystemBackup index 807344e..1785e25 100755 --- a/Backup/MakeSystemBackup +++ b/Backup/MakeSystemBackup @@ -1,4 +1,10 @@ #!/bin/bash + +# Выясняем, какие старые архивы нам нужно удалить +maxFilesCount=3 +files=`find /sysbackup_*|sort` +delFiles=`./GetDelFileList $maxFilesCount "${files}"` + cd / sudo tar cvpzf sysbackup_$(date +%yy%mm%dd-%Hh%Mm%Ss).tgz \ --exclude=/proc \ @@ -10,3 +16,9 @@ sudo tar cvpzf sysbackup_$(date +%yy%mm%dd-%Hh%Mm%Ss).tgz \ --exclude=/media \ --exclude=/tmp \ / + +# Удаляем старые архивы +for i in $delFiles +do + sudo rm $i +done