[PHP] Zip uitpakken op Remote Server

Pagina: 1
Acties:
  • 118 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 30-07 12:30
Op het moment hebben wij een script draaien welke ruim 2000 (kleine, 1kb) bestanden kopieerd naar diverse servers (via FTP uiteraard). In het begin toen we nog niet zoveel files en servers hadden was dat geen probleem. Nu met meerdere servers en dus 2000 files gaat dat behoorlijk traag.

Mijn idee was het om de bestanden eerst te zippen en daarna op de server weer uit te pakken. Het kopieeren van de zip file is uiteraard geen probleem. Maar hoe kan ik het uitpak commando starten zodat de files weer uitgepakt worden en dat de zip file verwijderd wordt.

Dus hoe kan je het exec commando op de remote server uitvoeren?

Acties:
  • 0 Henk 'm!

  • sariel
  • Registratie: Mei 2004
  • Laatst online: 22-05-2024

Copy.com


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Niet. Daarvoor zul je op de remote server iets moeten regelen. Eventueel zou je een cron job kunnen draaien die geuploade bestanden uitpakt of een request doen naar die server om aan te geven dat er wat klaar staat. In alle gevallen heb je iig wat nodig dat die actie op de remote server uitvoert.

@hierboven: Lees het probleem eerst even voordat je een willekeurige term uit zijn post in het zoekscherm van de php documentatie los laat ;).

[ Voor 20% gewijzigd door Janoz op 24-01-2006 11:46 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 30-07 12:30
Is er geen manier om op de server in te loggen (username en password zijn tenslotte bekend) en dan een commando te starten?

Mmmmm.. naar aanleiding van je bericht (Janoz): Eventueel kan ik natuurlijk een extra bestandje (.php) mee laten opsturen met het uitpak commando erin en dat ik dan dat bestandje aanroep via http. Op zich niet de mooiste oplossing, maar als het werkt.... iets beter dan niets....

[ Voor 3% gewijzigd door SuperJERK op 24-01-2006 11:48 ]


Acties:
  • 0 Henk 'm!

Verwijderd

als je ssh geinstalleerd hebt kan het volgens mij wel hoor...

http://pangea.stanford.ed...commands/sshcommands.html

je moet dan alleen wel even zorgen dat er keys zijn aangemaakt, zodat je zonder pwd aan kunt loggen.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Waarom zou je dat php bestandje mee moeten sturen? In je zip kun je ook de paden opgeven en op de server afspreken dat een bepaalde map altijd als root gebruikt wordt. Je upload je bestand dan naar een vaste locatie en een script wat al op die server staat pakt dit bestand en pakt het uit in de eerder genoemde directory. In dat script kun je eventueel nog wat controles inbouwen dat alleen jullie grote upload server het aan mag roepen en je bent klaar.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 30-07 12:30
Naar mijn weten is er geen SSH aanwezig...
Hoe wordt dat bestandje dan gestart? Dat is toch het hele probleem? Voor iedere server een cronjob instaleren is niet de oplossing. Daarnaast is het net zo handig om het bestandje mee te sturen, want anders moeten we nog naar iedere server dat bestand uploaden en dat was nou net niet de bedoeling :)

[ Voor 33% gewijzigd door SuperJERK op 24-01-2006 11:56 ]


Acties:
  • 0 Henk 'm!

Verwijderd

geen ssh :?

met rsh kan het ook...

het is natuurlijk veel mooier om het eerst sturen, en daarna uit te pakken, vanaf dezelfde machine, zodat het ook altijd goed gaat, en niet per server waar de zip ontvangen wordt allerlei cron-jobs moet hebben draaien.
regel je dit allemaal via één server dan is dat veel makkeliijker te onderhouden lijkt me...

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

SuperJERK schreef op dinsdag 24 januari 2006 @ 11:56:
Hoe wordt dat bestandje dan gestart? Dat is toch het hele probleem? Voor iedere server een cronjob instaleren is niet de oplossing.
Gewoon door het aan te roepen, net als je zou doen als je bij elke upload het bestandje meestuurt.
Daarnaast is het net zo handig om het bestandje mee te sturen, want anders moeten we nog naar iedere server dat bestand uploaden en dat was nou net niet de bedoeling :)
Elke keer het bestandje uploaden is volgens jou handiger omdat je dan niet naar elke server het bestandje moet uploaden? Lijkt me een beetje paradoxaal ;). Maar in principe is er natuurlijk niks mis met het elke keer meesturen van het bestandje.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 30-07 12:30
Janoz schreef op dinsdag 24 januari 2006 @ 12:02:
[...]

Gewoon door het aan te roepen, net als je zou doen als je bij elke upload het bestandje meestuurt.

[...]

Elke keer het bestandje uploaden is volgens jou handiger omdat je dan niet naar elke server het bestandje moet uploaden? Lijkt me een beetje paradoxaal ;). Maar in principe is er natuurlijk niks mis met het elke keer meesturen van het bestandje.
Ik bedoel natuurlijk dat handmatig uploaden veel lastiger is dan als je toch een FTP connectie open hebt dat bestandje gelijk mee te sturen ;)

Ik ga even stoeien met het uploaden van het bestand.. misschien dat iemand even een hint kan geven waarom het inpakken niet werkt...($ is uiteraard correct gedifineerd)

echo exec('whoami');
echo exec('cd '.$sourcepath);
echo exec('zip -1 bestanden.zip *');

Whoami geeft wel de juiste user weer, maar de rest geeft geen output (en ook geen zip bestand).

Edit: Volgens mij heeft het te maken met permissions die je via php (user: nobody) niet hebt.... handig....

[ Voor 8% gewijzigd door SuperJERK op 24-01-2006 12:35 ]

Pagina: 1