LINUX.ORG.RU
решено ФорумAdmin

автоматизировать запуск скрипта

 


0

1

Доброго дня Есть скрипт, который выполняет архивацию папки

month="03"
year="2017"
cd /путь/к/папке; tar -zcvf //путь/к/папке/$month-$year.tar ./*-$month-$year -C ./
архивация идет по графику как можно автоматизировать данное действие?

Предполагаю что можно засунуть скрипт в /etc/cron.mountly/ но, не могу понять как изменить скрипт, что бы после завешения архивирования инкрементировать месяц, а если месяц дойдет до 12, то вернуть месяц на 01, а год +1.

Читай man date, там всё нужное тебе есть.

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

год корректно делать так year=$(date +%Y -d last-year).Всем спасибо

dazzzdranagon
() автор топика
Ответ на: комментарий от sin_a

не совсем понял Ваше сообщение :) у меня в /var/test/storage/ находятся каталоги вида 20-09-2017 и так по каждому дню. Мне надо автоматически архивировать данные папки, но так, чтобы данные оставались неархивированными за последние полгода

dazzzdranagon
() автор топика
Ответ на: комментарий от sin_a

да, спасибо! Итог получается вот так data=`date +%m" «%Y -d »-6 months"` присваивает переменной дата как раз значение 6 месяцев тому назад. Теперь надо разбить получившееся значение 03 2017 на год и месяц и присвоить переменным

dazzzdranagon
() автор топика
Ответ на: комментарий от sin_a

присваиваем год и месяц переменной

data=`date +%m" "%Y -d "-6 months"`

выводим нужный год

echo $data | awk ' { print $2} '

месяц

echo $data | awk ' { print $1} '

dazzzdranagon
() автор топика
Ответ на: комментарий от dazzzdranagon

Если используешь bash то можно использовать массив:

data=(`date +%m" "%Y -d "-6 months"`)

echo year  ${data[1]}
echo month ${data[0]}
sin_a ★★★★★
()
Ответ на: комментарий от dazzzdranagon
data=(`date +%m" "%Y -d "-6 months"`)

sin_a, это не современно, странно насчёт кавычек («+%m %Y» таки лучше) и вообще, массивы в данном случае — башизм на ровном месте:

data=$(date +%m%Y -d "-6 months")
year=${data#??}
month=${data%$year}
cd /tmp/; tar -zcvf /tmp/$month-$year.tar

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

спасибо за помощь, реализовал чуть по другому )

dazzzdranagon
() автор топика
Ответ на: комментарий от dazzzdranagon

сообразил, data#?? удаляет 2 символа спереди а вот тут ${data%$year} наоборот значение year удаляется с конца

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