Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Hey
Moze odrazu przejde do opisania problemu
Pisze prace inżynierska na temat generowania wzorców ruchu pod QoS za pomoca squid'a
I teraz potrzebował bym jakiegos mechanizmu który by mi jakos sortował logi od squida mowa tutaj o access.log
Moim celem byłoby tworzenie logów z każdego dnia od poniedziałku do niedzieli
Chciałbym by w następny poniedziałek wszystkie te 7 logów zostało spoakowane i przeniesione do innego folderu a w nazwie spakowanego pliku zaistniała data dnia w którym spakowanie miało miejsce.
Jest takie cos w ogóle możliwe ?
Znalazłem dwa opisy odnośnie rotacji logów dla squida jeden to właśnie ten co tu jest
/var/log/squid/access.log { missingok # nie wywala błędu jak brakuje pliku loga tylko leci dalej. daily #ja w tym miejscu mam miesięczny ale to tylko przykład compress # to oznacza ze jak się wykonq logrotate to od razu kompresuje a nie czeka np 5 dni i dopiero starsze kompresuje. rotate 5 # trzyma tylko 5 ostatnich logów reszte wywala. postrotate #proponuje także zapoznać się z "prerotate" sciezka_do_skryptu_np: /root/skrypty/logi.sh # to będzie skrypt który wykona za nas całą robotę. endscript }
#!/bin/bash cp /var/log/squid/access.log.1.gz /home/serwer/stare/access.log.`date +%F`.gz #przekopiowanie loga do katalogu olddir i dodanie do nazwy daty find /home/serwer/stare/ -mtime +20 -exec rm -f {} \; #skasowanie plików starszych niż 20 dni.
a drugi na innej stronie (nie bede robił reklamy )
jest tam podane cos o wpisie do pliku crontab
55 23 * * * root /usr/bin/squid –k rotate
i o wpisie do samego squid.conf mianowicie
logfile_rotate = 1
I teraz mógłby mi ktoś podpowiedzieć czym róznia sie te dwa sposoby i który z tych sposobów sie bardziej mi przyda czy moze trzeba zastosować je oba by rotacja zadziałała ??
[i]// przeniesione z http://forum.dug.net.pl/viewtopic.php?id=19171 — ArnVaker[/i]
Ostatnio edytowany przez ais89 (2013-01-16 19:39:21)
Offline
Jest takie cos w ogóle możliwe ?[/quote]
Kiedyś guru Maverick powiedział : :DW linuksie da się wszystko trzeba tylko wiedzieć jak :D[/quote]
Stosujesz jedno albo drugie rozwiązanie. Pierwsze polega na logrotate a drugie na cron + squid. Nie możesz używać jednego i drugiego na raz ponieważ całą robotę wykona ten sposób który zostanie odpalony jako pierwszy, drugi juz tylko będzie pracował na prawie pustym logu squida.Moim celem byłoby tworzenie logów z każdego dnia od poniedziałku do niedzieli[/quote]
Kod:
/var/log/squid/access.log { missingok daily compress rotate 7 postrotate endscriptChciałbym by w następny poniedziałek wszystkie te 7 logów zostało spoakowane i przeniesione do innego folderu a w nazwie spakowanego pliku zaistniała data dnia w którym spakowanie miało miejsce.[/quote]
Kod:
#!/bin/bash cd /var/log/squid/ tar -cvjpf logi_squid_`date +%F`.tar.bz * mv logi_squid_`date +%F`.tar.bz * /home/hatalog_na_logi_squida/ rm /var/log/squid/acce* /etc/init.d/squid reloadskrypt dodajesz do crona np:
Kod:
00 6 * * 1 /sciezka_do_skryptupolecam [url]http://pl.wikipedia.org/wiki/Crontab[/url]
Skrypt trzeba by porządnie dopieścić aby nie używać :Kod:
rm /var/log/squid/acce* /etc/init.d/squid reloadOstatnio edytowany przez qlemik (2013-01-16 23:52:05)
Offline
fajnie juz podane jak na tacy to juz któryś raz jak dug.net.pl mi pomogło
dzieki qlemik za szybką i wyczerpujaca wypowiedz
nie rozumiem tego stwierdzenia dlaczego " do pieścić ?
co jest nie tak z tymi linijkami ?
rm /var/log/squid/acce* /etc/init.d/squid reload
bo nie wiem nawet o co google zapytać ?
Jesli chodzi o samo:
[b]rm[/b] myślałem ze problem bedzie z chown dla usuniętego pliku ale funkcja [b]reload[/b] radzi sobie bardzo dobrze i usunięte acce* dostaja chown proxy:proxy
edit : 2 :13 to juz prawie 3 godziny jak rozmyślam dlaczego trzeba dopieścić ten dwie linijki kody w skrypcie i nic mi nie przychodzi do głowy
I Mam jeszce jedno pytanie skrypt ten mam umieścić w katalogu cron.daily a poźniej zrobić wpis do crontab ? czy druga opcja skrypt moze byc gdziekolwiek a zrobic tylko wpis do crontab z bezwzgledna scieżką
Ostatnio edytowany przez ais89 (2013-01-17 03:37:11)
Offline
druga opcja skrypt moze byc gdziekolwiek a zrobic tylko wpis do crontab z bezwzgledna scieżką + chmod u+x
Co do skryptu musisz pamiętać że jeśli ustawisz w cronie aby uruchamiał skrypt o np 10 rano to w spakowanym archiwum będziesz miał logi z squida od poniedziałku od 10 do poniedziałku do 10. Można by dorobić aby wycinał z niego linijki z acces.log z poniedziałeku przed 10:00 i dppisywał je na początek nowo założonego pliku access.log po 10:00. Wtedy w spakowanych logach będziesz miał dokładnie od poniedziałku od godziny 0:00 do niedzieli do godziny 0:00
Oczywiście ktoś może powiedzieć że jak odpali skrypt w cronie o 0:00 to sprawa załatwiona :D
Ja dodatkowo dodałbym sobie że jeśli będą jakieś błędy to niech mi je wyśle na email, żebym nie musiał za każdym razem sprawdzać czy mu się udało.
Mam nadzieje że jakoś w miare składnie to napisałem.
Offline
No to juz prawie wszystko wiem
Sprawa logów i zawartości to nie jest jakis większy problem nie będzie mi to przeszkadzało ze logi beda od godziny 4 w nocy do 4 w nocy
Bardziej obawiam sie tego czy to zadziała nie wiem jak to wywołać by to wszystko się jakos przeładowało przeszło chociaż jeden cykl albo i dwa przestawic datę na debianie ?
Info na maila to bardzo fajny pomysł ale chyba sobie podaruje bo nie wiem jak to zrobić
chyba ze to jest takie proste jak ten przykład na wikipedi
# Denerwuj Stefana od poniedziałku do piątku o godzinie 22:00 0 22 * * 1-5 echo "Stefanie, jest już 22:00. Gdzie są Twoje dzieci?!" | mail -s "Wybiła 22:00" stefan@example.com #
Mam jeszcze jedną prośbe to juz chyba ostatnia squid ma dość dobre wspracie ze strony ludzi którzy pisza jakies programy pod niego
I teraz znalazłem na oficjalnej stronie squid'a jakies log analizyery ale za "chiny" nie wiem co z tym zrobić nie ma zadnego manuala do tego
plik jest napisany w perl'u i ma rozszerzenei .pl nie wiem jak mam zastosować ten skrypt by przetwarzał moj access.log ? odpowiesz mi jeszcze na to pytanie ?
http://davehope.co.uk/projects/perl-squid-reporting/ tu jest ten plik
Ostatnio edytowany przez ais89 (2013-01-17 16:40:15)
Offline
Time (s) | Query |
---|---|
0.00014 | SET CHARSET latin2 |
0.00005 | SET NAMES latin2 |
0.00113 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.191.110.17' WHERE u.id=1 |
0.00072 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.191.110.17', 1715654899) |
0.00056 | SELECT * FROM punbb_online WHERE logged<1715654599 |
0.00081 | DELETE FROM punbb_online WHERE ident='185.191.171.5' |
0.00272 | SELECT topic_id FROM punbb_posts WHERE id=221213 |
0.00709 | SELECT id FROM punbb_posts WHERE topic_id=22732 ORDER BY posted |
0.00030 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=22732 AND t.moved_to IS NULL |
0.00044 | SELECT search_for, replace_with FROM punbb_censoring |
0.00057 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=22732 ORDER BY p.id LIMIT 0,25 |
0.00217 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=22732 |
Total query time: 0.0167 s |