Methods summary
public
|
|
public
array
|
#
parallelize( array $aValues, string $sPattern, integer $iMax )
Launch parallel processes running pattern filled with each of specified
values. If number of values is greater than $iMax, then several batches are
launched.
Launch parallel processes running pattern filled with each of specified
values. If number of values is greater than $iMax, then several batches are
launched.
Example: $this->parallelize(array('user1@server', 'user2@server'), "ssh []
/bin/bash <<EOF\nls -l\nEOF\n", 2); Example:
$this->parallelize(array('a', 'b'), 'cat /path/to/resources/[].txt', 2);
Parameters
- $aValues
array $aValues liste de valeurs qui viendront remplacer le(s) '[]' du pattern
- $sPattern
string $sPattern pattern possédant une ou plusieurs occurences de paires de crochets
vides '[]' qui seront remplacées dans les processus lancés en parallèle par
l'une des valeurs spécifiées.
- $iMax
integer $iMax nombre maximal de processus lancés en parallèles
Returns
array liste de tableau associatif : array( array( 'value' => (string)"l'une des
valeurs de $aValues", 'error_code' => (int)code de retour Shell,
'elapsed_time' => (int) temps approximatif en secondes, 'cmd' => (string)
commande shell exécutée, 'output' => (string) sortie standard, 'error'
=> (string) sortie d'erreur standard, ), ... )
Throws
RuntimeException si le moindre code de retour Shell non nul apparaît.
RuntimeException si une valeur hors de $aValues apparaît dans les entrées 'value'.
RuntimeException s'il manque des valeurs de $aValues dans le résultat final.
|
public
array
|
#
exec( string $sCmd )
Exécute la commande shell spécifiée et retourne la sortie découpée par
ligne dans un tableau. En cas d'erreur shell (code d'erreur <> 0), lance
une exception incluant le message d'erreur.
Exécute la commande shell spécifiée et retourne la sortie découpée par
ligne dans un tableau. En cas d'erreur shell (code d'erreur <> 0), lance
une exception incluant le message d'erreur.
Parameters
Returns
array tableau indexé du flux de sortie shell découpé par ligne
Throws
RuntimeException en cas d'erreur shell
|
public
array
|
#
execSSH( string $sPatternCmd, string $sParam )
Exécute la commande shell spécifiée en l'encapsulant au besoin dans une
connexion SSH pour atteindre les hôtes distants.
Exécute la commande shell spécifiée en l'encapsulant au besoin dans une
connexion SSH pour atteindre les hôtes distants.
Parameters
- $sPatternCmd
string $sPatternCmd commande au format printf
- $sParam
string $sParam paramètre du pattern $sPatternCmd, permettant en plus de décider si
l'on doit encapsuler la commande dans un SSH (si serveur distant) ou non.
Returns
array tableau indexé du flux de sortie shell découpé par ligne
Throws
RuntimeException en cas d'erreur shell
See
|
public
string
|
#
buildSSHCmd( string $sPatternCmd, string $sParam )
Retourne la commande Shell spécifiée envoyée à sprintf avec $sParam, et
encapsule au besoin le tout dans une connexion SSH pour atteindre les hôtes
distants (si $sParam est un hôte distant).
Retourne la commande Shell spécifiée envoyée à sprintf avec $sParam, et
encapsule au besoin le tout dans une connexion SSH pour atteindre les hôtes
distants (si $sParam est un hôte distant).
Parameters
- $sPatternCmd
string $sPatternCmd commande au format printf
- $sParam
string $sParam paramètre du pattern $sPatternCmd, permettant en plus de décider si
l'on doit encapsuler la commande dans un SSH (si serveur distant) ou non.
Returns
string la commande Shell spécifiée envoyée à sprintf avec $sParam, et encapsule au
besoin le tout dans une connexion SSH pour atteindre les hôtes distants (si
$sParam est un hôte distant).
See
|
public
integer
|
#
getPathStatus( string $sPath )
Retourne l'une des constantes de Shell_PathStatus, indiquant pour le chemin
spécifié s'il est inexistant, un fichier, un répertoire, un lien symbolique
sur fichier ou encore un lien symbolique sur répertoire.
Retourne l'une des constantes de Shell_PathStatus, indiquant pour le chemin
spécifié s'il est inexistant, un fichier, un répertoire, un lien symbolique
sur fichier ou encore un lien symbolique sur répertoire.
Les éventuels slash terminaux sont supprimés. Si le statut est différent
de inexistant, l'appel est mis en cache. Un appel à remove() s'efforce de
maintenir cohérent ce cache.
Le chemin spécifié peut concerner un hôte distant (user@server:/path),
auquel cas un appel SSH sera effectué.
Parameters
- $sPath
string $sPath chemin à tester, de la forme [user@server:]/path
Returns
integer l'une des constantes de Shell_PathStatus
Throws
RuntimeException en cas d'erreur shell
See
|
public
array
|
#
getParallelSSHPathStatus( string $sPath, array $aServers )
Pour chaque serveur retourne l'une des constantes de Shell_PathStatus,
indiquant pour le chemin spécifié s'il est inexistant, un fichier, un
répertoire, un lien symbolique sur fichier ou encore un lien symbolique sur
répertoire.
Pour chaque serveur retourne l'une des constantes de Shell_PathStatus,
indiquant pour le chemin spécifié s'il est inexistant, un fichier, un
répertoire, un lien symbolique sur fichier ou encore un lien symbolique sur
répertoire.
Comme getPathStatus(), mais sur une liste de serveurs.
Les éventuels slash terminaux sont supprimés. Si le statut est différent
de inexistant, l'appel est mis en cache. Un appel à remove() s'efforce de
maintenir cohérent ce cache.
Parameters
- $sPath
string $sPath chemin à tester, sans mention de serveur
- $aServers
array $aServers liste de serveurs sur lesquels faire la demande de statut
Returns
array tableau associatif listant par serveur (clé) le status (valeur, constante de
Shell_PathStatus)
Throws
RuntimeException en cas d'erreur shell
See
|
public
array
|
#
isRemotePath( string $sPath )
Retourne un triplet dont la 1re valeur (bool) indique si le chemin spécifié
commence par '[user@]servername_or_ip:', la 2e (string) est le serveur (ou
chaîne vide si $sPath est local), et la 3e (string) est le chemin dépourvu de
l'éventuel serveur.
Retourne un triplet dont la 1re valeur (bool) indique si le chemin spécifié
commence par '[user@]servername_or_ip:', la 2e (string) est le serveur (ou
chaîne vide si $sPath est local), et la 3e (string) est le chemin dépourvu de
l'éventuel serveur.
Parameters
- $sPath
string $sPath chemin au format [[user@]servername_or_ip:]/path
Returns
array triplet dont la 1re valeur (bool) indique si le chemin spécifié commence par
'[user@]servername_or_ip:', la 2e (string) est le serveur (ou chaîne vide si
$sPath est local), et la 3e (string) est le chemin dépourvu de l'éventuel
serveur.
|
public
array
|
#
copy( string $sSrcPath, string $sDestPath, boolean $bIsDestFile = false )
Copie un chemin vers un autre. Les jokers '' et '?' sont autorisés. Par
exemple copiera le contenu de $sSrcPath si celui-ci se termine par '/'. Si
le chemin de destination n'existe pas, il sera créé.
Copie un chemin vers un autre. Les jokers '' et '?' sont autorisés. Par
exemple copiera le contenu de $sSrcPath si celui-ci se termine par '/'. Si
le chemin de destination n'existe pas, il sera créé.
Parameters
- $sSrcPath
string $sSrcPath chemin source, au format [[user@]hostname_or_ip:]/path
- $sDestPath
string $sDestPath chemin de destination, au format [[user@]hostname_or_ip:]/path
- $bIsDestFile
boolean $bIsDestFile précise si le chemin de destination est un simple fichier ou non,
information nécessaire si l'on doit créer une partie de ce chemin si
inexistant
Returns
array tableau indexé du flux de sortie shell découpé par ligne
Throws
RuntimeException en cas d'erreur shell
|
public
array
|
#
createLink( string $sLinkPath, string $sTargetPath )
Crée un lien symbolique de chemin $sLinkPath vers la cible $sTargetPath.
Crée un lien symbolique de chemin $sLinkPath vers la cible $sTargetPath.
Parameters
- $sLinkPath
string $sLinkPath nom du lien, au format [[user@]hostname_or_ip:]/path
- $sTargetPath
string $sTargetPath cible sur laquelle faire pointer le lien, au format
[[user@]hostname_or_ip:]/path
Returns
array tableau indexé du flux de sortie shell découpé par ligne
Throws
DomainException si les chemins référencent des serveurs différents
RuntimeException en cas d'erreur shell
|
public
string
|
#
escapePath( string $sPath )
Entoure le chemin de guillemets doubles en tenant compte des jokers '' et
'?' qui ne les supportent pas. Par exemple : '/a/b/img*jpg', donnera :
'"/a/b/img""jpg"'. Pour rappel, '*' vaut pour 0 à n caractères, '?' vaut
pour exactement 1 caractère (et non 0 à 1).
Entoure le chemin de guillemets doubles en tenant compte des jokers '' et
'?' qui ne les supportent pas. Par exemple : '/a/b/img*jpg', donnera :
'"/a/b/img""jpg"'. Pour rappel, '*' vaut pour 0 à n caractères, '?' vaut
pour exactement 1 caractère (et non 0 à 1).
Parameters
Returns
string
|
public
array
|
#
remove( string $sPath )
Supprime le chemin spécifié, répertoire ou fichier, distant ou local.
S'efforce de maintenir cohérent le cache de statut de chemins rempli par
getPathStatus().
Supprime le chemin spécifié, répertoire ou fichier, distant ou local.
S'efforce de maintenir cohérent le cache de statut de chemins rempli par
getPathStatus().
Parameters
- $sPath
string $sPath chemin à supprimer, au format [[user@]hostname_or_ip:]/path
Returns
array tableau indexé du flux de sortie shell découpé par ligne
Throws
DomainException si chemin invalide (garde-fou)
RuntimeException en cas d'erreur shell
See
|
public
array
|
#
backup( string $sSrcPath, string $sBackupPath )
Effectue un tar gzip du répertoire $sSrcPath dans $sBackupPath.
Effectue un tar gzip du répertoire $sSrcPath dans $sBackupPath.
Parameters
- $sSrcPath
string $sSrcPath au format [[user@]hostname_or_ip:]/path
- $sBackupPath
string $sBackupPath au format [[user@]hostname_or_ip:]/path
Returns
array tableau indexé du flux de sortie shell découpé par ligne
Throws
RuntimeException en cas d'erreur shell
|
public
|
#
mkdir( string $sPath, string $sMode = '', array $aValues = array() )
Crée le chemin spécifié s'il n'existe pas déjà , avec les droits
éventuellement transmis dans tous les cas.
Crée le chemin spécifié s'il n'existe pas déjà , avec les droits
éventuellement transmis dans tous les cas.
Parameters
- $sPath
string $sPath chemin à créer, au format [[user@]hostname_or_ip:]/path
- $sMode
string $sMode droits utilisateur du chemin appliqués même si ce dernier existe
déjà . Par exemple '644'.
- $aValues
array $aValues liste de valeurs (string) optionnelles pour générer autant de
demandes de synchronisation en parallèle. Dans ce cas ces valeurs viendront
remplacer l'une après l'autre les occurences de crochets vide '[]' présents
dans $sSrcPath ou $sDestPath.
Throws
RuntimeException en cas d'erreur shell
|
public
array
|
#
sync( string $sSrcPath, string $sDestPath, array $aValues = array(), array $aIncludedPaths = array(), array $aExcludedPaths = array(), string $sRsyncPattern = '' )
Synchronise une source avec une ou plusieurs destinations.
Synchronise une source avec une ou plusieurs destinations.
Parameters
- $sSrcPath
string $sSrcPath au format [[user@]hostname_or_ip:]/path
- $sDestPath
string $sDestPath chaque destination au format [[user@]hostname_or_ip:]/path
- $aValues
array $aValues liste de valeurs (string) optionnelles pour générer autant de
demandes de synchronisation en parallèle. Dans ce cas ces valeurs viendront
remplacer l'une après l'autre les occurences de crochets vide '[]' présents
dans $sSrcPath ou $sDestPath.
- $aIncludedPaths
array $aIncludedPaths chemins à transmettre aux paramètres --include de la commande
shell rsync. Il précéderons les paramètres --exclude.
- $aExcludedPaths
array $aExcludedPaths chemins à transmettre aux paramètres --exclude de la commande
shell rsync
- $sRsyncPattern
string $sRsyncPattern
Returns
array tableau indexé du flux de sortie shell des commandes rsync exécutées,
découpé par ligne et analysé par _resumeSyncResult()
|
private
array
|
#
_resumeSyncResult( array $aRawResult )
Analyse la sortie shell de commandes rsync et en propose un résumé.
Analyse la sortie shell de commandes rsync et en propose un résumé.
Exemple : - entrée : Number of files: 1774 Number of files transferred: 2
Total file size: 64093953 bytes Total transferred file size: 178 bytes Literal
data: 178 bytes Matched data: 0 bytes File list size: 39177 File list generation
time: 0.013 seconds File list transfer time: 0.000 seconds Total bytes sent:
39542 Total bytes received: 64 sent 39542 bytes received 64 bytes 26404.00
bytes/sec total size is 64093953 speedup is 1618.29 - sortie : Number of
transferred files ( / total): 2 / 1774 Total transferred file size ( / total):
<1 / 61 Mio
Parameters
- $aRawResult
array $aRawResult tableau indexé du flux de sortie shell de la commande rsync,
découpé par ligne
Returns
array du tableau indexé du flux de sortie shell de commandes rsync résumé et
découpé par ligne
|