Windows vs Linux - Как десктоп
, и игровая станция.
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.10] |
|
|
Правила раздела:
| Страницы: (1182) « Первая ... 63 64 [65] 66 67 ... 1181 1182 ( Перейти к последнему сообщению ) |
Windows vs Linux - Как десктоп
, и игровая станция.
|
Сообщ.
#961
,
|
|
|
|
Не с такой же, но смогу. Тут несколько путей: 1. надо запихнуть логи в базу: 1.a) sed'ом переделываем log в последовательность SQL-запросов, после чего, например, psql logs -f logs.sql 1.b) awk'ом переделываем лог таким образом, чтобы его мог переварить COPY FROM далее действуетм по наметанному запросу, только я х-з чем там круговые диаграммы делаются, но 100% уверен, что можно 2. надо разово получить частоту кодов: можно даже awk'ом. Заводим ассоциативный массив, в котором каждому коду соответствует свой counter. В конце распечатываем массив. Потом опять-таки надо найти что-то для удобного представления результата. О! Вспомнил: gnuplot! -- любой график нарисует ![]() Короче, задача решена стандартными средствами, а вот Guderian читерски пошел качать дополнительные тулзы, о которых еще узнать надо. ![]() Сорри за то, что в посте мало конкретики, но сейчас не могу прямо все команды писать, т. к. некогда да и field separator надо для логов знать. |
|
Сообщ.
#962
,
|
|
|
|
Цитата linuxfan @ надо разово получить частоту кодов: Подозреваю, что именно так и работает LogParser. |
|
Сообщ.
#963
,
|
|
|
|
Ты хочешь сказать, что LogParser этот объем проглотит и не подавится? Цитата Guderian @ Скажем делаешь ты какой-нибудь мега-портал или суперинтеллектуальный веб-сервис. И в какой-то момент хочешь проанализировать его текущую постребованность. Кажется, не далее, чем год-полтора назад я к тебе именно с такой задачей и обращался. Правда там был не супер-мега-веб-портал, а небольшой сайтец небольшого хорового коллектива. Тебе напомнить твой ответ? Цитата Guderian @ Что для тебя важнее, твоя непосредственная задача или мартышкин труд по написанию chart-builder'ов? Стас, не передергивай. Как ты несколькими постами раньше сказал "такой скрипт пишется один раз". Вот и я тебе говорю - такой скрипт пишется один раз. Ровно как и LogParser. Так при чем тут мартышкин труд? |
|
Сообщ.
#964
,
|
|
|
|
Цитата Guderian @ Не катит. Вариант для начинающих. Возьми простую группировку по IP для гига логов и сам поймешь почему ![]() Но ведь если надо "разово" -- то вполне покатит. К слову: в linux есть штуковина под названием metalog -- он как раз и пишет в /var/log/*. Так вот у нее в настройках есть возможность запуска скрипта, которому передается строчка логов, так что в винде ты можешь настроить IIS, чтобы он клал логи в БД, а я в линуксе с metalog + gcc + /dev/brain, чтобы написать обертку, пихающую в базу смогу сделать так, что все будут писать свои логи в БД, причем можно даже хоть в разные таблицы, хоть еще как. А по поводу гигабайтных логов: в Linux их ротейтят. Я бы лично никогда под логи не отдал больше 100Mb места. Тонны логов никому не интересно. Интересны лишь те крупицы ценной информации, которые можно оттуда выуживать. awk + sed + perl для линуксовых логов (редко растут до гигабайта) очень даже рулят. Кстати, я тут вспомнил такую фишку: syslog в Linux умеет передавать свои логи на другую машину по какому-то UDP'шному порту, причем для этого особо изгаляться не надо. А в Windows? (Кстати, я уже даже не говорю, что в Windows нету никакого стандартного способа ведения логов -- каждое приложение поступает так, как посчитал нужным разработчик). Добавлено Кстати, API для ведения логов в Linux состоит всего из трех функций: Цитата man #include <syslog.h> void openlog(const char *ident, int option, int facility); void syslog(int priority, const char *format, ...); void closelog(void); Есть еще вариант функции syslog для variadic списков агрументов. А как API ведения логов выглядит в Windows? |
|
Сообщ.
#965
,
|
|
|
|
Цитата linuxfan @ Есть еще вариант функции syslog для variadic списков агрументов. А как API ведения логов выглядит в Windows? Цитата HANDLE OpenEventLog( LPCTSTR lpUNCServerName, LPCTSTR lpSourceName ); BOOL CloseEventLog( HANDLE hEventLog ); BOOL ReportEvent( HANDLE hEventLog, WORD wType, WORD wCategory, DWORD dwEventID, PSID lpUserSid, WORD wNumStrings, DWORD dwDataSize, LPCTSTR* lpStrings, LPVOID lpRawData ); Ну и до кучи: Цитата BackupEventLog Saves the specified event log to a backup file. ClearEventLog Clears the specified event log, and optionally saves the current copy of the logfile to a backup file. DeregisterEventSource Closes a write handle to the specified event log. GetEventLogInformation Retrieves information about the specified event log. GetNumberOfEventLogRecords Retrieves the number of records in the specified event log. GetOldestEventLogRecord Retrieves the absolute record number of the oldest record in the specified event log. NotifyChangeEventLog Enables an application to receive notification when an event is written to the specified event logfile. OpenBackupEventLog Opens a handle to a backup event log. ReadEventLog Reads a whole number of entries from the specified event log. RegisterEventSource Retrieves a registered handle to an event log. |
|
Сообщ.
#966
,
|
|
|
|
Мда... Я бы тоже стал свои костыли для ведения логов придумывать... По-моему, весь Win32 API страдает гигантизмом -- каждаю функция стремится объять необъятное.
|
|
Сообщ.
#967
,
|
|
|
|
Когда-то я хотел узнать, что такое Линукс...
Узнал Мое мнение таково: Линукс проигровает Виндовозу в "оперативности": 1) Я пытался установить игрушку... При установки 6 мб игры возросли за 100мб софта необходимого для установки и запуска 2) После установки ALTLinux Master 2.2 мне пришлось выявлять цепь необходимых пакетов для нормальной работы никса (файл написанный на Перле для ускорения установки): ![]() ![]() #!/usr/bin/perl push @rpm, 'make-3.79.1-ipl6mdk.i586.rpm'; push @rpm, 'kernel-headers-common-1.0-alt2.noarch.rpm'; push @rpm, 'kernel24-headers-2.4.20-alt5.i586.rpm'; push @rpm, 'glibc-devel-2.2.6-alt0.6.i586.rpm'; push @rpm, 'libbfd-2.13.90.0.4-alt2.i586.rpm'; push @rpm, 'binutils-2.13.90.0.4-alt2.i586.rpm'; push @rpm, 'pkgconfig-0.15.0-alt1.i586.rpm'; push @rpm, 'cpp3.2-3.2.1-alt2.i586.rpm'; push @rpm, 'gcc3.2-3.2.1-alt2.i586.rpm'; push @rpm, 'libstdc++3.2-devel-3.2.1-alt2.i586.rpm'; push @rpm, 'gcc3.2-c++-3.2.1-alt2.i586.rpm'; push @rpm, 'zlib-devel-1.1.4-alt2.i586.rpm'; push @rpm, 'libpng3-devel-1.2.4-alt5.i586.rpm'; push @rpm, 'libjpeg-devel-6b-ipl18mdk.i586.rpm'; push @rpm, 'libjpeg-utils-6b-ipl18mdk.i586.rpm'; push @rpm, 'freetype2-devel-2.1.2-alt2.i586.rpm'; $| = 1; $fglrx = 0; $DFB_FS = 0; $Clanbomber = 0; print 'Do you installed ATI Driver 3.9.0 on XFree86 4.2.0 [Y/N/E - exit]? '; $str = <STDIN>; chomp $str; if (length($str) > 0) { $str = substr($str,0,1); $fglrx = 1 if $str eq 'y' || $str eq 'Y'; exit if $str eq 'e' || $str eq 'E'; } else { $fglrx = 1; } print 'Do you installed DirectFB and FusionSound [Y/N/E - exit]? '; $str = <STDIN>; chomp $str; if (length($str) > 0) { $str = substr($str,0,1); $DFB_FS = 1 if $str eq 'y' || $str eq 'Y'; exit if $str eq 'e' || $str eq 'E'; } else { $DFB_FS = 1; } print 'Do you installed Clanbomber [Y/N/E - exit]? '; $str = <STDIN>; chomp $str; if (length($str) > 0) { $str = substr($str,0,1); $Clanbomber = 1 if $str eq 'y' || $str eq 'Y'; exit if $str eq 'e' || $str eq 'E'; } else { $Clanbomber = 1; } foreach $rpms (@rpm) { print $rpms,'... '; system 'rpm -i '.$rpms; print "installed\n"; } chdir '/usr/src/'; system 'ln -s /usr/lib/kernel/include include'; if ($fglrx == 1) { print "Install ATI Driver 3.9.0 on XFree86 4.2.0... "; chdir $ENV{'PWD'}; system 'rpm -i --force fglrx-4.2.0-3.9.0.i386.rpm'; print "installed\n"; } if ($DFB_FS == 1) { print "Install DirectFB... "; mkdir '/root/SetALTM/'; chdir $ENV{'PWD'}; system 'tar -zxf DirectFB-0.9.20.tar.gz -C /root/SetALTM/'; chdir '/root/SetALTM/DirectFB-0.9.20/'; system 'sh configure'; system 'make'; system 'make install'; chdir '/usr/X11R6/lib/'; system 'ln -s /usr/local/lib/libdirectfb-0.9.so.20.0.0 libdirectfb-0.9.so.20'; print "installed\n"; print "Install FusionSound... "; chdir $ENV{'PWD'}; system 'tar -zxf FusionSound-0.9.19.tar.gz -C /root/SetALTM/'; chdir '/root/SetALTM/FusionSound-0.9.19/'; $ENV{'PKG_CONFIG_PATH'} = '/usr/local/lib/pkgconfig'; system 'sh configure'; system 'make'; system 'make install'; print "installed\n"; } if ($Clanbomber == 1) { print "Install Clanbomber (setup in /usr/local/bin/)... "; mkdir '/root/SetALTM/'; chdir $ENV{'PWD'}; system 'tar -zxf clanbomber2-0.9.tar.gz -C /root/SetALTM/'; chdir '/root/SetALTM/clanbomber2-0.9/'; $ENV{'PKG_CONFIG_PATH'} = '/usr/local/lib/pkgconfig'; system 'sh configure'; system 'make'; system 'make install'; print "installed\n"; } print "<<<<<<<<<< ((((:)))) >>>>>>>>>>\n"; print "Change-over ATI Driver 3.9.0 on XFree86 4.2.0 - command: fglrxconfig\n" if $fglrx == 1; Но и этого нехвает для нормальной работы (без знания Перла я загнулся бы в Линукс) 3) На Линукс не так много софта... (кому охота бесплатно катать проги?) Короче... Все-таки Виндук лучше!, как десктоп, но Линукс хорош, как сервер!!! |
|
Сообщ.
#968
,
|
|
|
|
Цитата 2) После установки ALTLinux Master 2.2 мне пришлось выявлять цепь необходимых пакетов для нормальной работы никса (файл написанный на Перле для ускорения установки): О отец русской демократии, открой для себя apt-get! |
|
Сообщ.
#969
,
|
|
|
|
Цитата Keepun @ Мдя... Такими скриптами только систему гробить. Особенно прикололо пришлось выявлять цепь необходимых пакетов для нормальной работы никса (файл написанный на Перле для ускорения установки) ![]() ![]() system 'ln -s /usr/lib/kernel/include include'; |
|
Сообщ.
#970
,
|
|
|
|
Цитата linuxfan @ Мда... Я бы тоже стал свои костыли для ведения логов придумывать... По-моему, весь Win32 API страдает гигантизмом -- каждаю функция стремится объять необъятное. Ну, про Event-log-и Флекс сделал очень правильное замечание, довольно геморно их делать |
|
Сообщ.
#971
,
|
|
|
|
По крайней мере, если чего-то не хватает, как правило в Linux процесс установки прерывается на этом чём-то с вполне конкретным сообщением. А в Windows бывает, программа вроде нормально установилась, но при запуске сообщает, что ей нужна какая-то DLL, не удосужившись при этом сообщить, что-же ей нужно.
А ещё, меня всё время прикалывает такой глюк в XP. По работе приходится постоянно сталкиваться с приложениями написанными ещё для DOS. С запуском большинства из них проблем нет, но в них почему-то не переключается раскладка клавиатуры. Причём на всех машина, где это наблюдалось, в качестве основной ещё при установке системы была выбрана английская раскладка. Лечится всего лишь изменением основной раскладки на русскую и запуском приложения. После этого в качестве основной можно опять выбрать английскую, всё продолжает работать. |
|
Сообщ.
#972
,
|
|
|
|
amk
Цитата раскладка клавиатуры Да это вообще в винде пипец ! Мне надо было как то текст на немецком языке подправить. Стояла ХР и как всегда RU EN и никакого немецкого ... Ну и чего мне ради одного лишнего языка за дистрибутивом в фирму шагать (ХР была предустановлена) ? Не нормальное кино ? |
|
Сообщ.
#973
,
|
|
|
|
Чему тут удивляться? Не зря же она столько места на винте хочет для установки. А у best_lamer, может быть, была какая-нибудь урезанная версия. Мне в ХР в переключении клавиатуры не нравится "тормознутость", т.е. переключается примерно 0,5 сек, а если машина что-то еще делает, то и дольше. Так бывало переключу, начинаю печатать, а она сначала в одной раскладке несколько букв, а потом в другой |
|
Сообщ.
#974
,
|
|
|
|
Цитата Ho Im @ О отец русской демократии, открой для себя apt-get! Можь ты мне объяснишь... Я читал об этой штуке, но при ее использовании у меня вышли файлы, суммарный размер которых ~300-500мб (целую СДушку по инету заливать мне не хочется )!!!Да, и можно этой штукой создать тектовой файл с УРЛами на файлы? А самый болезненый вопрос стал, когда перешел с FAT32 (Win98) на NTFS (WinXP) - ни Линь, ни Винь друг друга не видят, а если показать, то писать и редактировать файлы не могут!!! Relan, а как ты собрался ярлыки создавать??? (Как меня эти ссылки достали!!!) |