Подскажите по скрипту.

Программирование на sh, быть может немного про альтернативные языки
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
kharkov_max
капитан
Сообщения: 1853
Зарегистрирован: 2008-10-03 14:56:40

Подскажите по скрипту.

Непрочитанное сообщение kharkov_max » 2010-11-10 17:28:16

День добрый пишу скрипт, который будет делать бекап и удалять старые каталоги.

Вот кусок:

Код: Выделить всё

#Удаляем старые бекапы
ls $backupfolder | awk -F"-" '{print $3 $2 $1}' |  while read timefolder; do
    s=`date -d $timefolder +%s`
    echo $s $olddate
    if [ $s -lt $olddate ]; then
        dir=`date -d $timefolder +"%d-%m-%Y"`
        rmdir $backupfolder$dir
    fi
done
А вот вывод значений переменных в цикле

Код: Выделить всё

1289399223 1289140023
1289399223 1289140023
Переменная s, после получения при первом проходе значения, в дальнейшем не меняет своего значения, а по идее должна.
Заморочка тут "s=`date -d $timefolder +%s`"
Переменная timefolder свое значение меняет на протяжении всего цикла.

Подскажите что не так делаю.
Такая схема в Ubuntu работает ...

Спасибо ...
Последний раз редактировалось f_andrey 2010-11-10 17:33:14, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Shuba
ст. сержант
Сообщения: 365
Зарегистрирован: 2008-03-25 10:58:21
Откуда: Минск
Контактная информация:

Re: Подскажите по скрипту.

Непрочитанное сообщение Shuba » 2010-11-11 12:51:40

Вообщем что-то ты замудрил. Вот строчка моего скрипта, который удаляет папку с юэкапами месячной давности:

Код: Выделить всё

rm -rf `find /mnt/Samba/WorkFiles/ -ctime +31 -type d -depth 1 -name 'BackUp*'`
удаление просто файлов ещё проще:

Код: Выделить всё

find /mnt/Samba/WorkFiles/ -ctime +31 -type f -delete
Сила ночи, сила дня - одинакова фигня!

Аватара пользователя
Shuba
ст. сержант
Сообщения: 365
Зарегистрирован: 2008-03-25 10:58:21
Откуда: Минск
Контактная информация:

Re: Подскажите по скрипту.

Непрочитанное сообщение Shuba » 2010-11-11 12:53:03

*с бэкапами месячной давности
Сила ночи, сила дня - одинакова фигня!

Аватара пользователя
kharkov_max
капитан
Сообщения: 1853
Зарегистрирован: 2008-10-03 14:56:40

Re: Подскажите по скрипту.

Непрочитанное сообщение kharkov_max » 2010-11-11 15:05:31

Замудрил т.к. нужно так
И мне кажется что для удаления важно имя папки, а не дата ее физического создания/переименования/измениния/копирования

Моя ошибка была в переводе даты в секунды
Вопрос решил так:

Код: Выделить всё

# Удаляем старые каталоги бекапов
for timefolder in `ls $backupfolder | awk -F"-" '{print $3 $2 $1 "0000"}'`
do
    s=`date -j $timefolder +%s`
    if [ $s -lt $olddate ]; then
        dir=`date -j $timefolder +"%d-%m-%Y"`
        rmdir $backupfolder$dir
    fi
    unset $s
done
Может и сложнее чем у вас, но работает и еще раз повторюсь, так нужно !!!