LINUX.ORG.RU
Ответ на: комментарий от ziemin
ls -t /home/backup/*.tar.gz | awk 'NR>0'
/home/backup/20130616.tar.gz
/home/backup/20130615.tar.gz
/home/backup/20130614.tar.gz
/home/backup/20130613.tar.gz
/home/backup/20130612.tar.gz
/home/backup/20130609.tar.gz
/home/backup/20130611.tar.gz
/home/backup/20130610.tar.gz

Последовательность не красивая выходит первым должен сносить за 9 число а тут получится за 10 потом 11 и только потом 9

micro-chipset
() автор топика
Последнее исправление: micro-chipset (всего исправлений: 2)
Ответ на: комментарий от blackst0ne

В этом способе такой же порядок удаления получается.

micro-chipset
() автор топика
Ответ на: комментарий от ziemin

Да действительно объяснил там на двух файлах дата только название файла верное а дата создания нет. Там время сбивалось.

Делал так:

rm -f `ls -t /home/backup/*.tar.gz | tail -n 7`
Снесло все файлы оставив лишь 1 а фалов было 8

micro-chipset
() автор топика
Последнее исправление: micro-chipset (всего исправлений: 1)
Ответ на: комментарий от micro-chipset

Лучше делай как я писал. Через awk. А tail так и работает.

ziemin ★★
()
FILE="/etc /var/www"
NAME=`/bin/date '+%Y%m%d'`
WEEKDAY=`/bin/date '+%A'`
tar -cPzf /home/backup/${WEEKDAY}.tar.gz ${FILE}
ln -s ${WEEKDAY}.tar.gz /home/backup/${NAME}.tar.gz

Линки удалять по крону (их удалять безопаснее :-)

find /home/backup -type l - mtime +7 -delete

anonymous
()

Есть предложение использовать logrotate, но мне кажется ты не осилишь.

anonymous
()
Ответ на: комментарий от micro-chipset

Последовательность не красивая выходит первым должен сносить за 9 число а тут получится за 10 потом 11 и только потом 9

А зачем ты архив за 9 число обновлял?

Если у тебя в именах дата, вместо ls -t делай ls | sort -nr

router ★★★★★
()

Это обычно называют ротацией. И да ищи примеры есть.

init_6 ★★★★★
()
Ответ на: комментарий от router


А если новый не создастся?



В условиях задачи никаких валидаций не было.
Что касается себя, я бы таким backup-скриптом пользоваться не стал.

blackst0ne ★★★★★
()

Если 1 бэкап, 1 день, можно так: find /home/sysadmin/backup/*.7z -mtime +7 -delete

prot ★★
()

Если бекап выполняется на регулярной основе по расписанию, то можно воспользоваться tmpwatch.

eliriand ★★
()

если время сбивается, то делай лог создания бэкапов и по нему удаляй.

Lwulf
()
Ответ на: комментарий от router


В условиях задачи никаких валидаций не было.



Вот такие люди и получают премии дарвина



Не несите бред.

blackst0ne ★★★★★
()

Так как вариант с find -mtime уже предлагали - удваиваю его ;-)

Pinkbyte ★★★★★
()

Если бэкапы делаются автоматически раз в день, а не как прийдется, то лучше перенести скрипт в /etc/logrotate.d в секцию postrotate и забыть.

/home/backup/backup.tar.gz {
    daily
    rotate 7
    postrotate
      FILE="/etc /var/www"
      tar -cPzf /home/backup/backup.tar.gz $FILE
    endscript
}       

Yur4eg ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.