Пришёл я тут на новую работу. У них там база на SLES9 архивируется следующим скриптом:/etc/rc.d/basa stop останавливаем базу
NOW=$(date +"%Y%m%d") задаём параметр для имени архива
cd /arc переходим в директорию со старым архивом
rm * удаляем старый архив
cd /basa переходим в директорию с базой
tar cvzf /basa/$NOW.tgz создаём архив
/etc/rc.d/basa start запускаем базуАрхив запускается кроном раз в неделю. После всего этого остаётся архив типа 20080305.tgz
Не нравится мне, что старый архив стирается того, как сделается новый.
Но если я сначала создам новый, то как мне потом стереть старый? Надо придумать какую-нибудь хрень типа
OLD=$(date +"%Y%m%d") - 14
чтобы удалялся архив 2-недельной давности, а недельной и новый оставались. Но надо же текст перевести в число, а как это корректно написать не понимаю пока. Я с unixом давно не работал.fsbackup не предлагать (миллион смайликов)
>[оверквотинг удален]
>20080305.tgz
>Не нравится мне, что старый архив стирается того, как сделается новый.
>Но если я сначала создам новый, то как мне потом стереть старый?
>Надо придумать какую-нибудь хрень типа
>OLD=$(date +"%Y%m%d") - 14
>чтобы удалялся архив 2-недельной давности, а недельной и новый оставались. Но надо
>же текст перевести в число, а как это корректно написать не
>понимаю пока. Я с unixом давно не работал.
>
>fsbackup не предлагать (миллион смайликов)Попробуй что нибудь типа:
for f in `ls`
do
.....
done;
>[оверквотинг удален]
>20080305.tgz
>Не нравится мне, что старый архив стирается того, как сделается новый.
>Но если я сначала создам новый, то как мне потом стереть старый?
>Надо придумать какую-нибудь хрень типа
>OLD=$(date +"%Y%m%d") - 14
>чтобы удалялся архив 2-недельной давности, а недельной и новый оставались. Но надо
>же текст перевести в число, а как это корректно написать не
>понимаю пока. Я с unixом давно не работал.
>
>fsbackup не предлагать (миллион смайликов)man find
find /arc -mtime +14
Про -mtime +14 мне понравилось, но я уже сделал следующим образом:
-----------------------------------
NOW=$(date +"%j")
OLD=$(echo "$NOW-14" | bc -l)
tar cvzf /basa/$NOW.tgz sig
rm /arc/$OLD.tgz
-----------------------------------