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 > >
