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