LINUX.ORG.RU
ФорумAdmin

Помогите написать bash скрипт

 , , ,


1

1

нужен скрипт для удаления бэкапов... файлов архивов.. условия такие: остаются архивы за каждый день последнего месяца (не старше месяца - за каждый день) если старше месяца - до 6 месяцев, остаются только на первое число каждого месяца,плюс первый день каждой недели.... старше 6 месяцев удаляются все... итак За последние полгода у меня есть архивы на каждое первое число месяца, на каждый понедельник (если первое число попадает на понедельник - архив один), и за каждый день последнего месяца (не старше 31 дня)

первое число каждого месяца,плюс первый день каждой недели

в имя бекапа втыкай число и день недели используя date, ну а дальше у тебя на руках будут все вводные, чтоб удалить ненужное или скопировать нужное

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

Я в баш только начал разбираться

и на данній момент только научился бєкап делать.... а тут вообще темній лес

RootKid ()
Ответ на: комментарий от Spoofing

старше 30 дней, это не все

нужно чтобы все условия выполнялись

RootKid ()
Ответ на: Я в баш только начал разбираться от RootKid

данній

бєкап

темній

Из правил форума:

Общайтесь на русском языке. Тексты на иностранных языках (кроме английского) снабжайте комментарием так, чтобы в дискуссии смогли принять участие участники, не знакомые с этими языками.

Дискуссии не на русском языке. Допускается использование других языков при цитировании внешних источников, сообщений об ошибках, исходных текстов программ и в других подобных случаях.

Преднамеренное искажение слов, замена букв на похожие по написанию символы и буквы других языков. Преднамеренное нарушение правил русского языка. Пункт правил действует в случае, когда искаженные слова преобладают в сообщении.

Вот когда вы будете писать на русском языке, тогда может вам и помогут.

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

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

daniilArch ★★ ()

Ты слишком многого хочешь, не сделав вообще ничего, только поставил задание — это тебе в jobs надо, там по заданию все напишут за соотв. плату.

most-fucktum ()
Ответ на: комментарий от most-fucktum

Есть скрипт

который делает файлы типа 02_09_15_Срд.tar но что делать дальше не понимаю... направьте хотябы.. просто читать с нуля баш только начал, а времени нету

RootKid ()
Ответ на: Есть скрипт от RootKid

Re: Есть скрипт

просто читать с нуля баш только начал, а времени нету
а времени нету

Досдаем летнюю сессию?
Ну вот и наступило 1-е сентября, астрологи объявили прирост школоты на лоре.
А так вам уже имхо достаточно подсказок накидали. Будут вопросы по конкретике пишите. Или если быстро то в jobs.

anc ★★★★★ ()
Последнее исправление: anc (всего исправлений: 1)

Я в кроне прописал скрипт:

... выполненние бекапа ...
/usr/bin/find /data/backup/ttrss-* /data/backup/yourls-* /data/backup/pvpgn-* /data/backup/owvncloud-* -mtime +10 -exec rm {} \;
После бекапа файлы старше 10 дней удаляются.

Именуй правильно файлы, получай куски даты с помощью date и удаляй по маске.

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

Вообще говоря если задача сформулирована верно, то все можно решить без парсинга имен файлов. Ведь создание еженедельных и ежемесячных бэкапов уже реализовано, так достаточно их в другой каталог складывать.

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

архивы за каждый день последнего месяца
1-6 мес. первое число каждого месяца,плюс первый день каждой недели
старше 6 месяцев удаляются все

Как-то смутно раскладывание по каталогам я себе представляю. Тут же по сути прореживание идет.

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

Ну смотрите, если это первый день месяца просто кидаем в другой каталог, по такому принципу можно реализовать. А так как ТС пишет что

на данній момент только научился бєкап делать

и

итак За последние полгода у меня есть архивы на каждое первое число месяца, на каждый понедельник (если первое число попадает на понедельник - архив один), и за каждый день последнего месяца (не старше 31 дня)"

То видимо уже механизм реализован в смысле создания архивов удовлетворяющих условию о дате создания.
Так что остается только чуть поправить, что бы кидало в разные каталоги. А дальше find -mtime

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

Хотя если он написал про формат имени верно 02_09_15_Срд.tar - то все тот же find :)

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

итак За последние полгода у меня есть архивы на каждое первое число месяца, на каждый понедельник (если первое число попадает на понедельник - архив один), и за каждый день последнего месяца (не старше 31 дня)"

То видимо уже механизм реализован в смысле создания архивов удовлетворяющих условию о дате создания. Так что остается только чуть поправить, что бы кидало в разные каталоги. А дальше find -mtime

я о том что должно быть, что должен иметь, не так выразился... по факту бэкап делается каждый день, скрипт файлы младше 31 дня вообще не трогает

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