Thread View: pl.comp.lang.php
12 messages
12 total messages
Started by Tadziu
Thu, 21 May 2020 10:31
Ograniczenia hostingu - kompresja zip przez bash lub php
Author: Tadziu
Date: Thu, 21 May 2020 10:31
Date: Thu, 21 May 2020 10:31
53 lines
2671 bytes
2671 bytes
Dzień dobry,
mam wykupiony hosting i jak na hostingu bywa są ograniczenia [home.pl]
(jest dostęp przez ssh także)
od parunastu godzin próbuję rozgryźć jak "oszukać" ów hosting co jest
możliwe, bo posiadam na nim parę stron na Joomli i oprogramowanie do
backupu "Akeeba Backup" radzi sobie nawet z paroma, parunastoma GB
danych. Wykonuje to specyficznie tj. rozprasza pakowanie na interwały
czasowe ...
Oczywiście jeśli ja próbuję to zrobić z poziomu prostego skryptu w PHP
to jeśli się wyrobi w ~90 sekundach [mało plików] to jest OK.
Natomiast, jeśli próbuję spakować większy katalog z podkatalogami to
nigdy nie dokończy procesu pakowania, urywa po ~90 sekundach.
<?php
$zipDATING = '_' . date('Y_m_d-H_i-s') . '_';
echo '<center><h2>',$zipDATING,'START</center>';
// zaczyna w katalogu gdzie jest i zipuje wszystkie podkatalogi i pliki
// tworzy zip-a katalog niżej jako nazwa aktualnego katalogu + data,czas
system("zip -r -1 -u
../arch_".basename(dirname(__FILE__)).$zipDATING."zip ./ ");
$zipDATING_stop = '_' . date('Y_m_d-H_i-s') . '_';
echo '<center><h2>',$zipDATING_stop,'STOP</center>';
?>
Proszę o wskazówki na co zwrócić uwagę, gdzie szukać rozwiązania, dodam
że z mojego zakresu wiedzy i testów
set_time_limit(0);
proc_nice(20);
lub wciśnięcie usleep(100000);
pętla_start
$oFiles[] = $sMyFP; // LIST FILE AS DONE
$oZip->addFile($sMyFP, $sFilePath); // APPEND TO THE ZIP FILE
usleep(100000);
pętla_stop
także nic nie daje,
z góry dziękuję za wskazówki,
pozdrawiam Tadziu.
--
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Re: Ograniczenia hostingu - kompresja zip przez bash lub php
Author: Roman Tyczka
Date: Thu, 21 May 2020 12:23
Date: Thu, 21 May 2020 12:23
14 lines
1306 bytes
1306 bytes
On Thu, 21 May 2020 12:31:31 +0200, Tadziu wrote: > mam wykupiony hosting i jak na hostingu bywa są ograniczenia [home.pl] > także nic nie daje, > > z góry dziękuję za wskazówki, > > pozdrawiam Tadziu. Zmień hosting -- pozdrawiam Roman Tyczka
Re: Ograniczenia hostingu - kompresja zip przez bash lub php
Author: Rafal Podsiadly
Date: Thu, 21 May 2020 15:49
Date: Thu, 21 May 2020 15:49
10 lines
1610 bytes
1610 bytes
https://www.php.net/manual/en/info.configuration.php#ini.max-execution-time sprawdź max_execution_time ustaw set_time_limit(120); lub pakuj pojedyncze pliki albo dodawaj do spakowanego archiwum pliki pojedyncze.
Re: Ograniczenia hostingu - kompresja zip przez bash lub php
Author: Lemat
Date: Thu, 21 May 2020 17:03
Date: Thu, 21 May 2020 17:03
69 lines
3241 bytes
3241 bytes
W dniu 21.05.2020 o 12:31, Tadziu pisze:
> Dzień dobry,
>
> mam wykupiony hosting i jak na hostingu bywa są ograniczenia [home.pl]
> (jest dostęp przez ssh także)
>
> od parunastu godzin próbuję rozgryźć jak "oszukać" ów hosting co jest
> możliwe, bo posiadam na nim parę stron na Joomli i oprogramowanie do
> backupu "Akeeba Backup" radzi sobie nawet z paroma, parunastoma GB
> danych. Wykonuje to specyficznie tj. rozprasza pakowanie na interwały
> czasowe ...
>
> Oczywiście jeśli ja próbuję to zrobić z poziomu prostego skryptu w PHP
> to jeśli się wyrobi w ~90 sekundach [mało plików] to jest OK.
>
> Natomiast, jeśli próbuję spakować większy katalog z podkatalogami to
> nigdy nie dokończy procesu pakowania, urywa po ~90 sekundach.
>
>
> <?php
> $zipDATING = '_' . date('Y_m_d-H_i-s') . '_';
> echo '<center><h2>',$zipDATING,'START</center>';
>
> // zaczyna w katalogu gdzie jest i zipuje wszystkie podkatalogi i pliki
> // tworzy zip-a katalog niżej jako nazwa aktualnego katalogu + data,czas
>
> system("zip -r -1 -u
> .../arch_".basename(dirname(__FILE__)).$zipDATING."zip ./ ");
> $zipDATING_stop = '_' . date('Y_m_d-H_i-s') . '_';
> echo '<center><h2>',$zipDATING_stop,'STOP</center>';
> ?>
>
> Proszę o wskazówki na co zwrócić uwagę, gdzie szukać rozwiązania, dodam
> że z mojego zakresu wiedzy i testów
> set_time_limit(0);
> proc_nice(20);
>
> lub wciśnięcie usleep(100000);
>
> pętla_start
> $oFiles[] = $sMyFP; // LIST FILE AS DONE
> $oZip->addFile($sMyFP, $sFilePath); // APPEND TO THE ZIP FILE
> usleep(100000);
> pętla_stop
>
> także nic nie daje,
>
> z góry dziękuję za wskazówki,
>
> pozdrawiam Tadziu.
>
Najpierw poczynię ważne założenie: zzipowanie pojedynczego pliku zajmuje
mniej niż połowa timeoutu skryptu na hostingu.
$czas=time();
pętla
$plik=array_pop($lista_plików_do_zziopwania)
$oZip->addFile($plik);
if ($czas+połowa timeoutu>time()) {
zapisz resztę z listy plików do zzipowania
header('Location: skieruj na siebie');
die();
}
koniec petli
--
Pozdrawiam
Lemat
Re: Ograniczenia hostingu - kompresja zip przez bash lub php
Author: Tadziu
Date: Fri, 22 May 2020 16:03
Date: Fri, 22 May 2020 16:03
18 lines
1389 bytes
1389 bytes
Roman Tyczka wrote: > On Thu, 21 May 2020 12:31:31 +0200, Tadziu wrote: > > > mam wykupiony hosting i jak na hostingu bywa są ograniczenia > > [home.pl] także nic nie daje, > > > > z góry dziękuję za wskazówki, > > > > pozdrawiam Tadziu. > > Zmień hosting jest w palnach - ale nie rozwiązuje to obecnie problemu ... -- Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast. https://www.avast.com/antivirus
Re: Ograniczenia hostingu - kompresja zip przez bash lub php
Author: Tadziu
Date: Fri, 22 May 2020 16:04
Date: Fri, 22 May 2020 16:04
19 lines
1421 bytes
1421 bytes
Rafal Podsiadly wrote: > https://www.php.net/manual/en/info.configuration.php#ini.max-execution-time > > sprawdź max_execution_time > > ustaw set_time_limit(120); > > > lub pakuj pojedyncze pliki > > albo dodawaj do spakowanego archiwum pliki pojedyncze. żdna ze zmian nie daje efektu, pakowanie pojedyńczych plików także... -- Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast. https://www.avast.com/antivirus
Re: Ograniczenia hostingu - kompresja zip przez bash lub php
Author: Tadziu
Date: Fri, 22 May 2020 16:21
Date: Fri, 22 May 2020 16:21
99 lines
4233 bytes
4233 bytes
Lemat wrote:
> W dniu 21.05.2020 o 12:31, Tadziu pisze:
> > Dzień dobry,
> >
> > mam wykupiony hosting i jak na hostingu bywa są ograniczenia
> > [home.pl] (jest dostęp przez ssh także)
> >
> > od parunastu godzin próbuję rozgryźć jak "oszukać" ów hosting co
> > jest możliwe, bo posiadam na nim parę stron na Joomli i
> > oprogramowanie do backupu "Akeeba Backup" radzi sobie nawet z
> > paroma, parunastoma GB danych. Wykonuje to specyficznie tj.
> > rozprasza pakowanie na interwały czasowe ...
> >
> > Oczywiście jeśli ja próbuję to zrobić z poziomu prostego skryptu w
> > PHP to jeśli się wyrobi w ~90 sekundach [mało plików] to jest OK.
> >
> > Natomiast, jeśli próbuję spakować większy katalog z podkatalogami
> > to nigdy nie dokończy procesu pakowania, urywa po ~90 sekundach.
> >
> >
> > <?php
> > $zipDATING = '_' . date('Y_m_d-H_i-s') . '_';
> > echo '<center><h2>',$zipDATING,'START</center>';
> >
> > // zaczyna w katalogu gdzie jest i zipuje wszystkie podkatalogi i
> > pliki // tworzy zip-a katalog niżej jako nazwa aktualnego katalogu
> > + data,czas
> >
> > system("zip -r -1 -u
> > .../arch_".basename(dirname(__FILE__)).$zipDATING."zip ./ ");
> > $zipDATING_stop = '_' . date('Y_m_d-H_i-s') . '_'; echo
> > '<center><h2>',$zipDATING_stop,'STOP</center>'; ?>
> >
> > Proszę o wskazówki na co zwrócić uwagę, gdzie szukać rozwiązania,
> > dodam że z mojego zakresu wiedzy i testów set_time_limit(0);
> > proc_nice(20);
> >
> > lub wciśnięcie usleep(100000);
> >
> > pętla_start
> > $oFiles[] = $sMyFP; // LIST FILE AS DONE
> > $oZip->addFile($sMyFP, $sFilePath); // APPEND TO THE ZIP FILE
> > usleep(100000);
> > pętla_stop
> >
> > także nic nie daje,
> >
> > z góry dziękuję za wskazówki,
> >
> > pozdrawiam Tadziu.
> >
>
> Najpierw poczynię ważne założenie: zzipowanie pojedynczego pliku
> zajmuje mniej niż połowa timeoutu skryptu na hostingu.
>
> $czas=time();
> pętla
> $plik=array_pop($lista_plików_do_zziopwania)
> $oZip->addFile($plik);
> if ($czas+połowa timeoutu>time()) {
> zapisz resztę z listy plików do zzipowania
> header('Location: skieruj na siebie');
> die();
> }
> koniec petli
Dzięki za wskazówki,
napisałem skrypt który pakuje pliki, pojedyńczo [wiem mało wydajnie],
ale to dla testów...
Twój pomysł jest przedni, sprawdziłem zawsze się wysypuje skrypt po 140
sekundach,
header('Location: skieruj na siebie'); //rozumiam że wywołuję tu ten
sam skrypt PHP
https://www.php.net/manual/en/function.header.php
die(); //przerywa cały skrypt
i tu się zaczynają pytania?
jak zapisać listę pozostałych plików [chyba do pliku najlepiej] czy są
jakieś zmienne przekazywane po i przez header('Location ...);
+ informację o tym czy skrypt ma rozpocząć nowe archiwum lub
kontynuować poprzednie ...
z góry dziękuję za wskazówki ...
a ja zabieram się za test z samym header + die() i czymć na zasadzie
sleep czy będzie w kółko się mielić ...
pozdrawiam Tadziu
--
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Re: Ograniczenia hostingu - kompresja zip przez bash lub php
Author: Rafal Podsiadly
Date: Sat, 23 May 2020 18:16
Date: Sat, 23 May 2020 18:16
5 lines
1594 bytes
1594 bytes
Czy na serwerze możesz używać crone? Możesz używać skryptów sh? Czy musisz używać PHP a nie możesz zwykłej funkcji ZIP --? Czy możesz używać rename file po spakowaniu *.suuces np.
Re: Ograniczenia hostingu - kompresja zip przez bash lub php
Author: Rafal Podsiadly
Date: Sat, 23 May 2020 18:21
Date: Sat, 23 May 2020 18:21
1 lines
1443 bytes
1443 bytes
Sproboj też wykorzystać flusch()
Re: Ograniczenia hostingu - kompresja zip przez bash lub php
Author: Rafal Podsiadly
Date: Sat, 23 May 2020 18:22
Date: Sat, 23 May 2020 18:22
3 lines
1494 bytes
1494 bytes
Ach ten słownik. Chodziło mi o flush () Jako przesłanie informacji o tym co się dzieje Poczytaj o progres bar w PHP Ajax.
Re: Ograniczenia hostingu - kompresja zip przez bash lub php
Author: Tadziu
Date: Sat, 23 May 2020 20:57
Date: Sat, 23 May 2020 20:57
41 lines
2483 bytes
2483 bytes
Rafal Podsiadly wrote: > Ach ten słownik. Chodziło mi o flush () > Jako przesłanie informacji o tym co się dzieje > Poczytaj o progres bar w PHP Ajax. Rafal Podsiadly wrote: > Czy na serwerze możesz używać crone? > Możesz używać skryptów sh? > Czy musisz używać PHP a nie możesz zwykłej funkcji ZIP --? > Czy możesz używać rename file po spakowaniu > *.suuces np. crone nie, ale na innym serwerze mam crona i wywołuje nim za pomocą wget-a php wget --no-check-certificate --max-redirect=99999999 http://domena/sciezka/skrypty/s1.php domyślam się do czego pijesz będę zapisywał plik tekstowy z sciezka i nazwą do pierwszy raz tworzonego pliku, przy następnym wykonaniu sprawdzam czy jest ten plik czy nie jeśli tak to odczytuje z niego sciezke do archiwum i kontynuuje działanie, na razie testuje jak zapisac pozostala tablice do pliku obczailem co robi array_pop i to rozwiazuje pozostala czesc tablicy ... dzialam dzieki za pomoc, pozdrawiam Tadziu... flusha sprawdze ale handle zaczelo dzialac gdy skrypt poprzedze ob_start(); //Turn on output buffering i srednio z ~ 30 min sie buja skrypt ale potem zabija go komunikat za dużo przekierowan -- Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast. https://www.avast.com/antivirus
Re: Ograniczenia hostingu - kompresja zip przez bash lub php
Author: Tadziu
Date: Mon, 25 May 2020 00:31
Date: Mon, 25 May 2020 00:31
132 lines
5208 bytes
5208 bytes
Lemat wrote:
> W dniu 21.05.2020 o 12:31, Tadziu pisze:
> > Dzień dobry,
> >
> > mam wykupiony hosting i jak na hostingu bywa są ograniczenia
> > [home.pl] (jest dostęp przez ssh także)
> >
> > od parunastu godzin próbuję rozgryźć jak "oszukać" ów hosting co
> > jest możliwe, bo posiadam na nim parę stron na Joomli i
> > oprogramowanie do backupu "Akeeba Backup" radzi sobie nawet z
> > paroma, parunastoma GB danych. Wykonuje to specyficznie tj.
> > rozprasza pakowanie na interwały czasowe ...
> >
> > Oczywiście jeśli ja próbuję to zrobić z poziomu prostego skryptu w
> > PHP to jeśli się wyrobi w ~90 sekundach [mało plików] to jest OK.
> >
> > Natomiast, jeśli próbuję spakować większy katalog z podkatalogami
> > to nigdy nie dokończy procesu pakowania, urywa po ~90 sekundach.
> >
> >
> > <?php
> > $zipDATING = '_' . date('Y_m_d-H_i-s') . '_';
> > echo '<center><h2>',$zipDATING,'START</center>';
> >
> > // zaczyna w katalogu gdzie jest i zipuje wszystkie podkatalogi i
> > pliki // tworzy zip-a katalog niżej jako nazwa aktualnego katalogu
> > + data,czas
> >
> > system("zip -r -1 -u
> > .../arch_".basename(dirname(__FILE__)).$zipDATING."zip ./ ");
> > $zipDATING_stop = '_' . date('Y_m_d-H_i-s') . '_'; echo
> > '<center><h2>',$zipDATING_stop,'STOP</center>'; ?>
> >
> > Proszę o wskazówki na co zwrócić uwagę, gdzie szukać rozwiązania,
> > dodam że z mojego zakresu wiedzy i testów set_time_limit(0);
> > proc_nice(20);
> >
> > lub wciśnięcie usleep(100000);
> >
> > pętla_start
> > $oFiles[] = $sMyFP; // LIST FILE AS DONE
> > $oZip->addFile($sMyFP, $sFilePath); // APPEND TO THE ZIP FILE
> > usleep(100000);
> > pętla_stop
> >
> > także nic nie daje,
> >
> > z góry dziękuję za wskazówki,
> >
> > pozdrawiam Tadziu.
> >
>
> Najpierw poczynię ważne założenie: zzipowanie pojedynczego pliku
> zajmuje mniej niż połowa timeoutu skryptu na hostingu.
>
> $czas=time();
> pętla
> $plik=array_pop($lista_plików_do_zziopwania)
> $oZip->addFile($plik);
> if ($czas+połowa timeoutu>time()) {
> zapisz resztę z listy plików do zzipowania
> header('Location: skieruj na siebie');
> die();
> }
> koniec petli
Dobry wieczór,
dużo się nauczyłem dzięki tej podpowiedzi ...
napisałem skrypt który działa poprawnie i wykonuje się
poprawnie około 1,5 godziny przy ~ 110 sec timeout-u
--------------------------------------------------------
test_header_die.php
--------------------------------------------------------
<?php
ob_start();
$czas=time();
$zipDATING = '_' . date('Y_m_d-H_i-s') . '_';
echo '<center><h4>',$zipDATING,'START</center>';
for ($x = 0; $x <= 200; $x++) {
echo "The number is: $x <br>";
sleep(1);
$zipDATING = '_' . date('Y_m_d-H_i-s') . '_';
$file = 'test.txt';
$roznica = $czas + 115;
if ( $roznica < time() ) {
$file = 'test.txt';
file_put_contents($file, "KONIEC\n\n" , FILE_APPEND | LOCK_EX);
header("Location: test_header_die.php");
die();
}
$zipDATING_stop = '_' . date('Y_m_d-H_i-s') . '_';
echo '<center><h2>',$zipDATING_stop,'STOP</center>';
$czas_roznica=time() - $czas;
echo '<center><h2>',$czas_roznica,' sekund</center>';
?>
--------------------------------------------------------
ale w innym skrypcie gdzie mam już pakowanie do zip-a
--------------------------------------------------------
wycinek przed pętlą
--------------------------------------------------------
$czas = time();
while( $files = array_pop( $files_to_save ) ){
$relativePath = substr($files, strlen($rootPath) + 1);
$zip->addFile($files, $relativePath);
if ( ($czas + $lokalny_tme_out) > time() ){
$zip->close(); //zamykam zipa
file_put_contents($plik_kontrolny2_bin, serialize($files_to_save));
header("Location: zip_another_append_test.php");
die();
}
}
czy jest jakiś wyjątek w PHP gdzie funkcja time() przestaje mieć rację
bytu?
z góry dziękuję za pomoc
pozdrawiam Tadziu.
--
Ta wiadomość została sprawdzona na obecność wirusów przez oprogramowanie antywirusowe Avast.
https://www.avast.com/antivirus
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads