![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 9.01.2004 Ostrzeżenie: (20%) ![]() ![]() |
Witam,
w jaki sposób napisać skrypt, który jak najmniej obciążając serwer (będzie wywoływany raz dziennie, ok. godz 2-3 nad ranem) usunie z katalogu tymczasowego ok. 30 tys plików tymczasowych (każdy 32 bajtowy) ? Pozdrawiam i proszę o pomoc -------------------- Linux is like a Wigwam - no windows, no gates, Apache INSIDE...
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 224 Pomógł: 40 Dołączył: 6.07.2004 Skąd: Wuppertal Ostrzeżenie: (0%) ![]() ![]() |
kasujesz 200 i sleep() na troche...
|
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Moim zdanie najlepiej zrobić to poleceniem z konsoli.
Polecenie takie można wydać też z php za pomocą ... tego juz możesz dowiedzieć się tu: Program Execution Functions (niestety tunkcje te są żadko udostępniane na serwerach) |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 188 Pomógł: 0 Dołączył: 23.05.2005 Ostrzeżenie: (0%) ![]() ![]() |
No to skoro bedziesz go uruchamiac w nocy, kiedy jest maloprawdopodobne ze ktokolwiek bedzie uzywac serwera, to lepiej byloby kasowac od razu hurtem, bez przestojow na spanie (sleep)
![]() |
|
|
![]() ![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 9.01.2004 Ostrzeżenie: (20%) ![]() ![]() |
Heh... sleep odpada, procesy są ubijane po 60 sekundach,
w nocy mamy oglądalność na poziomie 100-300 odsłon na minutę, więc serwer też jest obciążony... Wywoływanie lokalnych poleceń jest zablokowane i nie da się go odblokować... Proszę o inne propozycje... -------------------- Linux is like a Wigwam - no windows, no gates, Apache INSIDE...
|
|
|
![]()
Post
#6
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Skrypt z cron'a chodzący przez powiedzmy 40 sek. a potem wywołujący sie ponownie lu uruchamiany co minutę. Wyjdzie 20 sek. przerwy.
(możliwości sie kończą ![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
A gdyby tak kazdy z tych odwiedzajacych w nocy usunal po 100 plikow?
Albo jeszcze lepiej, niech to zrobia boty odwiedzajace strone. -------------------- |
|
|
![]() ![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 9.01.2004 Ostrzeżenie: (20%) ![]() ![]() |
Hmmm... może być i tak, ale ile średnio trwa usunięcie 100 plików ?
poza tym, pliki muszą zniknąć w miarę w jednym momencie, gdyż jeżeli pozostawałyby dłużej, stanowiłoby to zagrożenie dla bezpieczeństwa serwisu.. No powiedzmy, że maksymalnie powinny istnieć 2-3 minuty... (czas tworzenia i usuwania byłby losowy, w nocy, tak, aby nie było nigdy wiadomo, kiedy istnieją a kiedy nie... I następna kwestia... tak myślę, że aby usunąć pliki "po kolei" trzeba by było wczytać do tablicy ich listę (np. przez maptree i File_Find (z klasy PEAR) a następnie po kolei je usuwać w pętli, ale to zapcha sporo zasobów... A do unlink'a nie podam raczej jako nazwe pliku *.* ani *... jaka metode wybrac? Pozdrawiam Patryk Hmmm.... rozwiązałem to chwilowo tak, ale to działa strasznie wolno i obciąża procesor ;/ Można prosić inną propozycję ?
Ten post edytował xPatryk 6.01.2006, 00:06:56 -------------------- Linux is like a Wigwam - no windows, no gates, Apache INSIDE...
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
A do czego sa te pliki potrzebne? Nie mozesz ich usuwac po kazdej wizycie?
-------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 9.01.2004 Ostrzeżenie: (20%) ![]() ![]() |
Nie, są one zapisywane codziennie (w nocy) na nowy nośnik (marnowanie płytek ;/) i przechowywane w archiwum przez 5 lat... Zawierają shashowane identyfikatory operacji, ktore w razie czego beda sluzyly za dowód w sądzie... Zresztą sporo tłumaczenia by to wymagało...
-------------------- Linux is like a Wigwam - no windows, no gates, Apache INSIDE...
|
|
|
![]()
Post
#11
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Widzę że jest jakaś ważniejsza aplikacjia, więc dlaczego admin nie współpracuje i nie udostępni na serwerze mechanizmów, które bede do tego idealne (jeden z powyższych pomysłów) :?:
IMO nie ma sensu kombinować, bo pewnie łatwiej bedzie wymóc na adminie dostosowanie się. |
|
|
![]()
Post
#12
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 224 Pomógł: 40 Dołączył: 6.07.2004 Skąd: Wuppertal Ostrzeżenie: (0%) ![]() ![]() |
jesli proces jest zabijany po 60 sec to proponuje tak:
mierzysz ile czasu zajmuje usunięcie n plikow... i potem skrypt: Kod kasujesz n plików... sleep(50-czas kasowania_n_plikow) header(na siebie) header otworzy nowy proces. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 9.01.2004 Ostrzeżenie: (20%) ![]() ![]() |
No może faktycznie... Trzeba będzie go pomęczyć, ale wiadomo, jak to pracowników w banku się męczy...
Może by wreszcie zatrudnili jakąś fajną adminkę? Taką, żeby molestowanie jej było chociaż przyjemne ![]() Ale wracając do tematu, myślisz, że wywołanie funkcji powłoki przez php bedzie optymalniejsze? Pozdrawiam Patryk -------------------- Linux is like a Wigwam - no windows, no gates, Apache INSIDE...
|
|
|
![]()
Post
#14
|
|
![]() Grupa: Przyjaciele php.pl Postów: 5 724 Pomógł: 259 Dołączył: 13.04.2004 Skąd: N/A Ostrzeżenie: (0%) ![]() ![]() |
A moze zmien sposob przechowywania danych, np. zapisuj wszystko w bazie, jednym pliku. Latwiej bedzie przeniesc/usunac.
-------------------- Nie lubię jednorożców.
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 9.01.2004 Ostrzeżenie: (20%) ![]() ![]() |
Heh.. nie mogę... każdy rekord musi być w osobnym pliku, z tego pierwsze 24 znaki to indentyfikator rekordu a tresc to hash operacji...
Nic tu zmieniac nie moge, bo potem program w centrali tego nie otworzy ;/ -------------------- Linux is like a Wigwam - no windows, no gates, Apache INSIDE...
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 12.09.2004 Skąd: Łowicz Ostrzeżenie: (0%) ![]() ![]() |
A może by tak stworzyć dwa katalogi, które na przemian, o losowej godzinie stawały by się bieżącymi katalogami. Podczas gdy do jednego były by zapisywane nowe pliki, z drugiego były by sukcesywnie usuwane, lub usuwany i ponownie tworzony był by cały katalog. Jeżeli pliki przeznaczone do skopiowania mogą się znajdować wyłącznie w katalogu o jednej ustalonej nazwie, to można by pokombinować ze zmianami nazw katalogów.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 04:52 |