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