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 — Statue un fichier sur un système de fichiers distant
Description
array ssh2_sftp_stat
( resource
$sftp
, string $path
)Statue un fichier sur un système de fichiers distant, en suivant les liens symboliques.
Cette fonction est similaire à l'utilisation de la fonction stat() avec le gestionnaire ssh2.sftp:// en PHP 5 et retourne les mêmes valeurs.
Valeurs de retour
Voir la documentation de la fonction stat() pour les détails concernant les valeurs retournées.
Exemples
Exemple #1 Statut d'un fichier via SFTP
<?php
$connection = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($connection, 'username', 'password');
$sftp = ssh2_sftp($connection);
$statinfo = ssh2_sftp_stat($sftp, '/path/to/file');
$filesize = $statinfo['size'];
$group = $statinfo['gid'];
$owner = $statinfo['uid'];
$atime = $statinfo['atime'];
$mtime = $statinfo['mtime'];
$mode = $statinfo['mode'];
?>
Voir aussi
- ssh2_sftp_lstat() - Statue un lien symbolique
- lstat() - Retourne les informations sur un fichier ou un lien symbolique
- stat() - Renvoie les informations à propos d'un fichier
vanscot on gemail
27-Mar-2008 12:53
