The OpenNET Project / Index page

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

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

"вывод даты в имени файла"  +/
Сообщение от nikolski on 03-Июн-10, 15:28 
Доброго времени суток!

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

С Линуксом общаюсь не очень плотно и не так давно, но вот появилась необходимость поднять на нем связку сервер 1С + Постгрес. За пару дней таки смог это сделать и теперь появилась необходимость делать резервное копирование базы. С кроном вроде бы разобрался, но есть кое-какая проблемка в написании скрипта. Хочется на выходе получать файл вида имябазы-текущаядата, а в скриптовом языке я не силен. Наваял я следующее:

#!bin/bash
DATE='date +%d-%m-%Y'
echo Running database backup
pg_dump -U postgres u8 | gzip > /u8backup/union-$DATE.dump.gz
echo Backup complete!

на что системы мне пишет что на 4ой строке "неоднозначенное перенаправление" (ambiguous redirect)

пробовал вариант
pg_dump -U postgres u8 | gzip > /u8backup/union-'date +%d-%m-%Y'.dump.gz, но на выходе получаю имя

файла /u8backup/union-date +%d-%m-%Y.dump.gz

честно-таки говоря не особо понимаю в скриптовом языке, а сделать надо, и притом срочно
подскажите пожалуйста, как и что тут переписать :)

если важно, то используется CentOS 5.4, x64
спасибо!

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

Оглавление

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


1. "вывод даты в имени файла"  +/
Сообщение от elvenic (ok) on 03-Июн-10, 15:41 
>DATE='date +%d-%m-%Y'

DATE=`date +%d-%m-%Y`

(back-quotes (`), not normal quotes ('))

Thank you,
  
    elvenic.

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

2. "вывод даты в имени файла"  +/
Сообщение от серж (??) on 03-Июн-10, 16:46 
поправь вот тут:
>#!bin/bash

второе, попробуй посмотреть, что скажет:
#!/bin/bash
DATE='date +%d-%m-%Y'
echo $DATE

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

5. "вывод даты в имени файла"  +/
Сообщение от nikolski (ok) on 04-Июн-10, 07:27 
>поправь вот тут:
>>#!bin/bash

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

>второе, попробуй посмотреть, что скажет:
>#!/bin/bash
>DATE='date +%d-%m-%Y'
>echo $DATE

пробовал, выдает DATE как строку, то есть date +%d-%m-%Y, так и печатает
понимаю что так быть не должно, а почему так - для меня загадка. может у меня не правильные пчелы и они делают не правильный мед?)

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

6. "вывод даты в имени файла"  +/
Сообщение от elvenic (ok) on 04-Июн-10, 07:33 
>[оверквотинг удален]
>>второе, попробуй посмотреть, что скажет:
>>#!/bin/bash
>>DATE='date +%d-%m-%Y'
>>echo $DATE
>
>пробовал, выдает DATE как строку, то есть date +%d-%m-%Y, так и печатает
>
>понимаю что так быть не должно, а почему так - для меня
>загадка. может у меня не правильные пчелы и они делают не
>правильный мед?)

Ну я же уже сказал: вместо прямых кавычек (') нужно обратные (`)


$ DATE='date +%d-%m-%Y'
$ echo $DATE
date +%d-%m-%Y


$ DATE=`date +%d-%m-%Y`
$ echo $DATE
03-06-2010

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

7. "вывод даты в имени файла"  +/
Сообщение от elvenic (ok) on 04-Июн-10, 07:36 
>[оверквотинг удален]
>
>
>$ DATE='date +%d-%m-%Y'
>$ echo $DATE
>date +%d-%m-%Y
>
>
>$ DATE=`date +%d-%m-%Y`
>$ echo $DATE
>03-06-2010

Или еще вариант:

$ DATE=$(date +%d-%m-%Y)
$ echo $DATE
03-06-2010

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

8. "вывод даты в имени файла"  +/
Сообщение от nikolski (ok) on 04-Июн-10, 07:41 
прошу прощения, я почему то подумал что нужны как раз прямые, прочитал неверно)
попробовал - заработало!
спасибо всем!)
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

18. "вывод даты в имени файла"  +/
Сообщение от Linuxforse on 30-Июн-10, 23:55 
Благодарю Evlenic , ваш совет помог .
Высказать мнение | Ответить | Правка | ^ | Наверх | Cообщить модератору

3. "вывод даты в имени файла"  +/
Сообщение от Вова on 03-Июн-10, 17:34 
А вы используйте date +%s формат, гораздо удобнее - набор  файлов с именами в таком формате гораздо симпатичнее смотрится, да и сортируется проще.


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

4. "вывод даты в имени файла"  +/
Сообщение от аноним on 03-Июн-10, 18:40 
>А вы используйте date +%s формат, гораздо удобнее - набор  файлов
>с именами в таком формате гораздо симпатичнее смотрится,

Это - для роботов. Людям - неудобно.

>да и сортируется проще.

Умные люди в ISO 100500 лет как рекомендуют YYYYMMDD котрый сортируется правильно хоть в виде цифр, хоть в виде строк и людьми аонимается влёт.

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

9. "вывод даты в имени файла"  +/
Сообщение от Andrey Mitrofanov on 04-Июн-10, 09:06 
>Это - для роботов. Людям - неудобно.

+1

>>да и сортируется проще.
>Умные люди в ISO 100500 лет как рекомендуют YYYYMMDD котрый сортируется правильно

Для сортировки и чтения date +%F\ %T удобен, для имён файлов, м.б. " " и ":" стоит заменить на что попроще.

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

11. "вывод даты в имени файла"  +/
Сообщение от Вова on 04-Июн-10, 09:31 

>>Умные люди в ISO 100500 лет как рекомендуют YYYYMMDD котрый сортируется правильно
>
>Для сортировки и чтения date +%F\ %T удобен, для имён файлов, м.б.
>" " и ":" стоит заменить на что попроще.

из таймстемпа можно быстро получить любой формат; в отличие от ваших вариантов - вначале в таймстемп, потом в формат.

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

12. "вывод даты в имени файла"  +/
Сообщение от Andrey Mitrofanov on 04-Июн-10, 09:55 
>
>>>Умные люди в ISO 100500 лет как рекомендуют YYYYMMDD котрый сортируется правильно
>>
>>Для сортировки и чтения date +%F\ %T удобен, для имён файлов, м.б.
>>" " и ":" стоит заменить на что попроще.
>
>из таймстемпа можно быстро

Какой ты нудный. По сортировке в составе имени файла - одинаково. По удобству чтения - субъективно и, да, сгибальщики среди нас.

>получить любой формат;

На кой оно -- из имени файла бэкапа? Эжедневно печатать даректорию /var/lib/backup _разными красивыми шрифтами, перевязывать ленточкой и носить главбуху на подпись?~~~

Итого: никакой разницы, кроме персональных передпочтений. -- Продолжай, пожалуйста!

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

10. "вывод даты в имени файла"  +/
Сообщение от Вова on 04-Июн-10, 09:28 
>>А вы используйте date +%s формат, гораздо удобнее - набор  файлов
>>с именами в таком формате гораздо симпатичнее смотрится,
>
>Это - для роботов. Людям - неудобно.
>
>>да и сортируется проще.
>
>Умные люди в ISO 100500 лет как рекомендуют YYYYMMDD котрый сортируется правильно
>хоть в виде цифр, хоть в виде строк и людьми аонимается
>влёт.

Нет, юникс-таймстемпом удобнее, видимо от задач зависит.

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

13. "вывод даты в имени файла"  +/
Сообщение от аноним on 04-Июн-10, 21:32 
>>Это - для роботов. Людям - неудобно.
>>Умные люди в ISO 100500 лет как рекомендуют YYYYMMDD котрый сортируется правильно
>Нет, юникс-таймстемпом удобнее, видимо от задач зависит.

Мы говорим о имени бэкап файла не так ли? Ну и ? ....
А то следуя твоей логике можно дойти до того, что имя тоже не нужно, есть же inode - че моск парить.

А ещё представилось какая начнётся шурша после невинного запроса от финика: "а ну ко восстанови мне базы на состояние позапрошлого четверга" ...
Мне - сказать cal, лукапнуть какое число, найти файл.
Тебе ?

Мораль: нехрен работу железяки самому делать, для того железяки и придумывались :)

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

14. "вывод даты в имени файла"  +/
Сообщение от Вова on 05-Июн-10, 14:21 
>А ещё представилось какая начнётся шурша после невинного запроса от финика: "а
>ну ко восстанови мне базы на состояние позапрошлого четверга" ...
>Мне - сказать cal, лукапнуть какое число, найти файл.
>Тебе ?

  cal + ls


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

15. "вывод даты в имени файла"  +/
Сообщение от Ph.D. on 05-Июн-10, 23:53 
>>А ещё представилось какая начнётся шурша после невинного запроса от финика: "а
>>ну ко восстанови мне базы на состояние позапрошлого четверга" ...
>>Мне - сказать cal, лукапнуть какое число, найти файл.
>>Тебе ?
>
>  cal + ls

Дык ты сгибальшик? Так бы сразу и сказал! :)

А людям: cal + lookup + date_conv.sh -i humandate -o TS + ls ...
Вот и я говорю - устарели мы, белковые .... :)


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

16. "вывод даты в имени файла"  +/
Сообщение от Вова on 06-Июн-10, 10:22 
>[оверквотинг удален]
>>>Мне - сказать cal, лукапнуть какое число, найти файл.
>>>Тебе ?
>>
>>  cal + ls
>
>Дык ты сгибальшик? Так бы сразу и сказал! :)
>
>А людям: cal + lookup + date_conv.sh -i humandate -o TS +
>ls ...
>Вот и я говорю - устарели мы, белковые .... :)

товарищ кандидат. То, что советую я - это по опыту. То, что пишете вы - это от наивных представлений. По факту у нас делали изначально ротацию именно в формате .YYMMDD. Не постоянно, но возникали предложения, были вопросы, претензии, требования рационализаторства типа указания зоны и тп. Сделали .таймстемп - вопрос тупо никем не обсуждается.
Двигай науку, двигай.

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

17. "вывод даты в имени файла"  +/
Сообщение от Ph.D. on 08-Июн-10, 07:39 
>>[оверквотинг удален]

...
>тп. Сделали .таймстемп - вопрос тупо никем не обсуждается.

Дык боятся! Вон просили малость какую, а им нате таймстэмпом :)

> Двигай науку, двигай.

А у науки есть такой и подход:
Всё надо делать просто, как можно более просто, но не проще!
Кто сказал знаешь? :)

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

На то и Unix - самая гибкая система чтоб вязать снопы и "to make all happy" :)

PS: Почти не шучу ...

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

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

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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