Титла: триене на лог Публикувано от: sodom в Jul 12, 2005, 08:59 хай,
някой може ли да даде идея как мога да трия определени редове от файл които започват с даден низ. а като ги изтрия на тяхно място да не стои дупка а да си се съединят другите редове. става дума за един лог, от който да мога да трия (щото на ръка ми отнема много време) а той да продължава да си функционира като лог (т.е. да си се ъпдейтва) много благодарности на този който ми отговори Титла: триене на лог Публикувано от: VladSun в Jul 12, 2005, 09:54 cat xxxxx.log | grep -v "fraza za tarsene" > xxxxx.log
Титла: триене на лог Публикувано от: в Jul 12, 2005, 11:01
cat xxxxx.log > cat xxxxx.log.tmp grep -v "fraza za tarsene" xxxxx.log.tmp > xxxxxx.log rm -f xxxxx.log.tmp Титла: триене на лог Публикувано от: romeo_ninov в Jul 12, 2005, 11:14
grep -v "fraza za tarsene" xxxxx.log > xxxxxx.log.tmp mv xxxxxx.log.tmp xxxxxx.log Титла: триене на лог Публикувано от: в Jul 12, 2005, 11:30 ako xxxxxx.log е символна връзка това:
я чупи (създава се нов файл вместо да се запише в указания). същото важи за:
unix тънкости ![]() Титла: триене на лог Публикувано от: в Jul 12, 2005, 11:34
вярното е cat xxxxx.log > xxxxx.log.tmp Титла: триене на лог Публикувано от: laskov в Jul 12, 2005, 11:52 , но някои програми може и да не пишат в новия файл.
Титла: триене на лог Публикувано от: VladSun в Jul 12, 2005, 15:33
cat xxxxx.log > cat xxxxx.log.tmp grep -v "fraza za tarsene" xxxxx.log.tmp > xxxxx.log rm -f xxxxx.log.tmp Какъв е проблема с моето решение (ако не е симв. връзка) ? Ползвам подобно нещо поне на 3-4 места .... Титла: триене на лог Публикувано от: в Jul 12, 2005, 16:42 При
cat xxxxx.log | grep -v "fraza za tarsene" > xxxxx.log не се ли получава файл с размер 0 ? Титла: триене на лог Публикувано от: VladSun в Jul 12, 2005, 20:29 не
Ако беше: grep -v "fraza" xxxx.log > xxxx.log щеше да е 0 grep -V grep (GNU grep) 2.5 cat --version cat (GNU textutils) 2.0 Written by Torbjorn Granlund and Richard M. Stallman. Титла: триене на лог Публикувано от: laskov в Jul 13, 2005, 10:03
Някъде бях чел, че някои програми, след като отворят веднъж лог файла, в който пишат, след това вече работят с неговия INODE и ако например изтриете файла и създадете нов със същото име, ще трябва да рестартирате програмата, за да започне да пише в новия файл. При мен това стана с Cyrus IMAP. Титла: триене на лог Публикувано от: rpetrov в Jul 13, 2005, 10:38 VladSun, как се гарантира, че се чете преди да се запише ?
Една лека модифицация забавяща четенето праща нещата в небитието: (sleep 1; cat xxxxx.log) | grep -v fraza > xxxxx.log или пък така: (sync; cat xxxxx.log) | grep -v fraza > xxxxx.log Титла: триене на лог Публикувано от: VladSun в Jul 13, 2005, 11:07 Честно казано, едно време ми хрумна това, но след пробите не видях проблеми и останах щастлив
![]() Но май ще трябва да ревизирам всички скриптове дали не е станало гаф някъде ![]() Мерси, rpetrov! "!!" твоето решение вече звучи доста по-подбре от моето ![]() Титла: триене на лог Публикувано от: rpetrov в Jul 13, 2005, 16:20
Дали точно се ползва INODE незнам - не съм се зачитал/заравял/... навътре из ... :) . Знам, че ако програмата е отворила файл, то тя ще може да пише в него докато той съществува в файловата система, т.е. промяна на името/"правата за достъп(?)" не влияе върху работоспособността. Примерно за syslog mv /var/log/messages /var/log/messages.tmp # syslogd е отворил файла /var/log/messages и ще продължи # да записва в него, независимо че е със сменено име. (обработка на .../messages.tmp) > .../messages Следва рестартиране на syslog, за да започне да пише в /var/log/messages Е ако файла е символна връзка, се намира "истинския файл" и процедурата е ясна. П.П.: явно на sodom му се иска да поприкрие някои следи :-) |