for some unkwon reason, stream_set_timeout() does not work on ssh2_exec, and strem_set_blocking (on my personal case) just hangs the script until it hits the max_execution_time.
Using sleep() or usleep() does not help either, because they are arbitrary and the command passed to ssh2_exec may have not finished yet.
The (best?) way to workaround this case was using a sh script on the remote server an a file as a handshake, the using this function to stat the file and, given a certain rule, fetching the result using stream_get_contents().
The sh script should create a dummy not zero size file (the handshake), run the commands then truncate the file (finished execution of the command). On the other side, the php script, should be stating the file until it gets a 0 size and then fetch the results.
I hope that this would be usefull to somebody else until stream_set_timeout() works on ssh2_exec or the functions adds a "timeout" parameter.
ssh2_sftp_stat
(PECL ssh2 >= 0.9.0)
ssh2_sftp_stat — Uzak dosya sistemindeki bir dosyanın durum bilgisini döndürür
Açıklama
array ssh2_sftp_stat
( resource $sftp
, string $dosya
)
Bir sembolik bağın hedefindeki dosya sistemi üzerinde bulunan bir dosyanın durum bilgisini alır.
Bu işlev, stat() işlevini PHP5'teki ssh2.sftp:// sarmalayıcısı ile kullanmaya eşdeğer olup ikisi de aynı sonucu döndürür.
Dönen Değerler
Dönen değerlerle ilgili ayrıntılı bilgi edinmek için stat() işlevinin açıklamasına bakınız.
Örnekler
Örnek 1 - SFTP üzerinden bir dosyanın durum bilgisini almak
<?php
$baglanti = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($baglanti, 'birey', 'parola');
$sftp = ssh2_sftp($baglanti);
$statinfo = ssh2_sftp_stat($sftp, '/bir/yol/dosya');
$dosyaboyu = $statinfo['size'];
$grup = $statinfo['gid'];
$sahibi = $statinfo['uid'];
$eriszaman = $statinfo['atime'];
$degiszaman = $statinfo['mtime'];
kip = $statinfo['mode'];
?>
Ayrıca Bakınız
- ssh2_sftp_lstat() - Uzak sunucudaki bir sembolik bağın durum bilgisini döndürür
- lstat() - Bir dosya veya sembolik bağ hakkında bilgi verir
- stat() - Bir dosya hakkında bilgi döndürür
ssh2_sftp_stat
vanscot on gemail
27-Mar-2008 08:53
27-Mar-2008 08:53
