The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"уменьшение значения даты в bash"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"уменьшение значения даты в bash"  
Сообщение от gran email(ok) on 14-Сен-06, 15:47 
Доброе время суток.
Нужно 1 раз в сутки удалять журналы, которые записываются в формате ddddmmdd*****.
Т.е. запускается скрипт 14 числа и стирает все файлы за 13 число.
команда date +%Y%m%d выводит 20060914.
Что нужно сделать, что бы выводила дату на предыдущие сутки?
А если попадает на 1 число месяца корректно вычислялась предыдущее число.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "уменьшение значения даты в bash"  
Сообщение от vic (??) on 14-Сен-06, 18:16 
>Доброе время суток.
>Нужно 1 раз в сутки удалять журналы, которые записываются в формате ddddmmdd*****.
>
>Т.е. запускается скрипт 14 числа и стирает все файлы за 13 число.
>
>команда date +%Y%m%d выводит 20060914.
>Что нужно сделать, что бы выводила дату на предыдущие сутки?
>А если попадает на 1 число месяца корректно вычислялась предыдущее число.

Вариант:

YESTERDAY=`echo | awk '{ print strftime( "%Y%m%d", systime()-60*60*24); }'`
echo $YESTERDAY

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "уменьшение значения даты в bash"  
Сообщение от gibbon email(??) on 14-Сен-06, 21:03 
>Доброе время суток.
>Нужно 1 раз в сутки удалять журналы, которые записываются в формате ddddmmdd*****.
>
>Т.е. запускается скрипт 14 числа и стирает все файлы за 13 число.
>
>команда date +%Y%m%d выводит 20060914.
>Что нужно сделать, что бы выводила дату на предыдущие сутки?
>А если попадает на 1 число месяца корректно вычислялась предыдущее число.

date -d yesterday +%Y%m%d

man date сильно способствует ускорению поиска решения :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "уменьшение значения даты в bash"  
Сообщение от allez (ok) on 15-Сен-06, 06:57 
>date -d yesterday +%Y%m%d
>
>man date сильно способствует ускорению поиска решения :)

Ну, а если gran пользуется FreeBSD, то ему поможет чтение man date на предмет
ключа -v. Команда же в этом случае будет выглядеть так:

date -v -1d +%Y%m%d

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "уменьшение значения даты в bash"  
Сообщение от vic (??) on 15-Сен-06, 11:42 
>>date -d yesterday +%Y%m%d
>>
>>man date сильно способствует ускорению поиска решения :)
>
>Ну, а если gran пользуется FreeBSD, то ему поможет чтение man date
>на предмет
>ключа -v. Команда же в этом случае будет выглядеть так:
>
>date -v -1d +%Y%m%d

а вот в солярке нет ни -v, ни --date для команды date :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "уменьшение значения даты в bash"  
Сообщение от Larky on 15-Сен-06, 11:44 
я эту задачу делаю через поиск, чтоб лог был что удалила
cd ${OUT}
find * -ctime +1 >>${RUN}/${LOG}
cd ${RUN}
tar -cvf ${TAR} ${LOG}
cat ${LOG} | while read MYFILE
do MY=`basename $MYFILE`
cp ${OUT}/${MYFILE} ${RUN}
gzip ${MYFILE}
tar -rvf ${TAR} ${MYFILE}.gz
rm ${MYFILE}.gz
rm ${OUT}/${MYFILE}
done
rm ${LOG}


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "уменьшение значения даты в bash"  
Сообщение от Larky on 15-Сен-06, 11:47 
У меня только со смещением даты тоже проблема, именно нужно получить значение предыдущей даты на SunOS.
Если кто поможет, заранее спа.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "уменьшение значения даты в bash"  
Сообщение от vic (??) on 15-Сен-06, 12:16 
>У меня только со смещением даты тоже проблема, именно нужно получить значение
>предыдущей даты на SunOS.
>Если кто поможет, заранее спа.

см первый ответ, там где через awk :) должно помочь

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "уменьшение значения даты в bash"  
Сообщение от Larky on 15-Сен-06, 12:41 
не, не все так сказочно, отвечает на команду из 1-го поста:
awk: syntax error near line 1
awk: illegal statement near line 1

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "уменьшение значения даты в bash"  
Сообщение от vic (??) on 15-Сен-06, 13:16 
>не, не все так сказочно, отвечает на команду из 1-го поста:
>awk: syntax error near line 1
>awk: illegal statement near line 1

верно.. не посмотрел что man awk в линухе открывает man gawk.. в примере используются функции которые являются gnu-расширениями. однако gawk можно установить на солярку.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "уменьшение значения даты в bash"  
Сообщение от perece on 15-Сен-06, 20:58 
>>не, не все так сказочно, отвечает на команду из 1-го поста:
>>awk: syntax error near line 1
>>awk: illegal statement near line 1
>
>верно.. не посмотрел что man awk в линухе открывает man gawk.. в
>примере используются функции которые являются gnu-расширениями. однако gawk можно установить на
>солярку.
а можно просто использовать nawk или /usr/xpg4/bin/awk
за исключением синтаксиса "cmd | getline" и копроцессов - тот же гавк.

\^P^/

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

13. "уменьшение значения даты в bash"  
Сообщение от gran email(ok) on 19-Сен-06, 17:01 
>>Доброе время суток.
>>Нужно 1 раз в сутки удалять журналы, которые записываются в формате ddddmmdd*****.
>>
>>Т.е. запускается скрипт 14 числа и стирает все файлы за 13 число.
>>
>>команда date +%Y%m%d выводит 20060914.
>>Что нужно сделать, что бы выводила дату на предыдущие сутки?
>>А если попадает на 1 число месяца корректно вычислялась предыдущее число.
>
>date -d yesterday +%Y%m%d
>
>man date сильно способствует ускорению поиска решения :)


Спасибо, все получилось.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "уменьшение значения даты в bash"  
Сообщение от Wulf on 16-Сен-06, 16:57 
>Доброе время суток.
>Нужно 1 раз в сутки удалять журналы, которые записываются в формате ddddmmdd*****.
>
>Т.е. запускается скрипт 14 числа и стирает все файлы за 13 число.
>
>команда date +%Y%m%d выводит 20060914.
>Что нужно сделать, что бы выводила дату на предыдущие сутки?
>А если попадает на 1 число месяца корректно вычислялась предыдущее число.

rm -f `perl -e 'use POSIX; print strftime("%Y%m%d", localtime(time-60*60*24));'`*****.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "уменьшение значения даты в bash"  
Сообщение от Larky (??) on 19-Сен-06, 08:47 
Огромное спа!!!
подошло вот это
`perl -e 'use POSIX; print strftime("%m%Y", localtime(time-30*60*60*24));'`


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

14. "уменьшение значения даты в bash"  
Сообщение от kvk email on 19-Сен-06, 17:57 
еще вариант:
в cron прописать раз в сутки (23:59) date +%Y... > /tmp/YESTARDAY
yestarday=`cat /tmp/YESTERDAY`
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

15. "уменьшение значения даты в bash"  
Сообщение от a1 on 27-Окт-06, 13:33 
Самый простой вариант
yestarday=`date -u +%Y%m%d`
Дата будет UTC, наше время бежит вперед ихнего, значит если запустить в час ночи по нашему, то дата получится вчерашняя
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру