Proverei ad indagare l'uso di pipe in PHP. Nei due esempi che riporti in
uno c'e' e nell'altro no.
In questi casi di sotto-shell, spesso la redirezione su pipe non e'
immediatamente trasportabile da un linguaggio ad un altro (da bash a php,
ad es).
Ciao
Dario.

2016-11-26 16:25 GMT+01:00 Gelpi Andrea <[email protected]>:

> Il 26/11/2016 13:24, Gelpi Andrea ha scritto:
> > Salve,
> >       sto attivando un sistema di disaster recovery basato su filesystem
> ZFS
> >
> > Con uno script in PHP (trovato in rete) sto cercando di lanciare i due
> > comandi necesari.
> >
> > Sul recevier: mbuffer | zfs receive
> > Sul sender zfs send | mbuffer
> >
> > Poichè lo script gira sul sender il primo comando viene lanciato con ssh
> >
> > ssh host 'mbuffer | zfs receive'
> >
> > Il server sender è una Centos 6.8
> > IL receiver è una Debian 8
> >
> > Il problema è che se faccio ssh da Debian verso il receiver e lancio il
> > primo comando a mano tutto funziona.
> >
> > Se invece il comando ssh lo faccio lanciare dallo script php ottengo:
> > mbuffer: warning: error connecting to 192.168.65.200:9090: Connection
> > refused
> >
> > Facendo diagnosi sul server ricevente ottengo:
> > mbuffer: error: outputThread: error writing to <stdout> at offset
> > 0x60000: Broken pipe
> >
> > Ho verificato che sul receiver entrambi i processi sono in esecuzione,
> > cioè zfs receive è in esecuzione, am appena riceve dati chiude.
> >
> > In pratica se il comando lo lancia lo script php da Centos il comando
> > lanciato da ssh va in crash.
> >
> > Se invece lo stesso comando lo lancio a mano dopo aver fatto ssh nel
> > server tutto funziona.
> >
> > Ho provato anche a modificare /etc/ssh/ssh_config rendendolo uguale a
> > quello di debian, ma non aiuta.
> >
> > Non riesco a capire dove sta il problema e come fare a fare ulteriore
> > diagnosi.
> >
> > Idee?
> >
>
> Dopo numerose prove sono convinto che il problema stia nell'uso del pipe
> dentro il comando ssh lanciato da php.
>
> Infatti se uso un solo comando con ssh tutto funziona.
>
> Esempio:
>
> zfs send | ssh host 'zfs receive'
>
> Questo funziona perfettamente se lanciato dallo script, ma ovviamente le
> prestazioni sono quello che sono.
>
> Per escludere mbuffer ho provato anche con netcat e le cose non cambiano.
>
> Per motivi che non riesco a comprendere se lancio da php:
>
> proc_open("ssh host 'mbuffer -I 9090 | zfs receive tank/datasore &', ...
>
> Non funziona.
>
> proc_open("ssh host 'zfs list -t snap', ...
>
> Invece funziona perfettamente.
>
> --
> Gelpi ing. Andrea
> --------------------------------------------------------------
> It took the computing power of three C-64s to fly to the Moon.
> It takes a 486 to run Windows 95. Something is wrong here.
> --------------------------------------------------------------
> ________________________________________________________
> http://www.sikurezza.org - Italian Security Mailing List
>
>

Rispondere a