🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#232540
Author: Tadziu
Date: Thu, 21 May 2020 10:31
53 lines
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
#232543
Author: Roman Tyczka
Date: Thu, 21 May 2020 12:23
14 lines
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
#232541
Author: Rafal Podsiadly
Date: Thu, 21 May 2020 15:49
10 lines
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
#232545
Author: Lemat
Date: Thu, 21 May 2020 17:03
69 lines
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
#232544
Author: Tadziu
Date: Fri, 22 May 2020 16:03
18 lines
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
#232542
Author: Tadziu
Date: Fri, 22 May 2020 16:04
19 lines
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
#232546
Author: Tadziu
Date: Fri, 22 May 2020 16:21
99 lines
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
#232547
Author: Rafal Podsiadly
Date: Sat, 23 May 2020 18:16
5 lines
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
#232548
Author: Rafal Podsiadly
Date: Sat, 23 May 2020 18:21
1 lines
1443 bytes
Sproboj też wykorzystać flusch()
Re: Ograniczenia hostingu - kompresja zip przez bash lub php
#232549
Author: Rafal Podsiadly
Date: Sat, 23 May 2020 18:22
3 lines
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
#232550
Author: Tadziu
Date: Sat, 23 May 2020 20:57
41 lines
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
#232551
Author: Tadziu
Date: Mon, 25 May 2020 00:31
132 lines
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