pb pour execution d'un shell
un petit peu d'aide ne serait pas de refus
pour aller à l'essentiel.
avec un serveur linux (version fedora 4), dans un shell j'éxécute un script php qui a pour fonction d'assurer un transfert de données.
Lorsque j'éxécute cette ligne de commande en mode terminal (dans le même repertoire où se trouve mon shell) pas de souci, la tache s'éxecute correctement.
Lorsque j'execute le shell, par contre la partie ou se trouve ma ligne de commande en php ne s'execute pas et j'ai un message d'erreur du genre (de mémoire) "can't open file.
j'en suis fort contrarié.
Est-ce que celà viendrait de mon environnement sous linux ?
Qu'est ce qui peut être la cause de pareil farce ?
merci d'avance pour votre aide
ouaips, je n'y avais pas pensé.
une alternative possible ???
dans le but de trouver une alternative à mon script qui ne tourne pas rond, j'ai tenté de passer les instructions php directement dans le shell avec la commande
php -r 'mon code php'
mais je rencontre quelques difficultés avec notamment l'usage des simples quotes genre ' dans la commande insert par exemple.
Peut-on les "echapper" ? et comment ?
voici les quelques lignes de code en question:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| php -r '$dbhote="@ipmachine1";
$dbuser="monlogin";
$dbpass="monpass";
$dbase="mabase";
$link= mysql_connect ($dbhote, $dbuser, $dbpass);
mysql_select_db($dbase, $link);
$sql0="select distinct ds from `tdsj`";
$rs0= mysql_query($sql0,$link);
$nl = mysql_num_rows($rs0);
Putenv("NLS_LANG=AMERICAN_AMERICA.US7ASCII");
$db="(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = @ipmachine2)(PORT = 1524
)) ) (CONNECT_DATA = (SID = P42BUTI) ) )";
$cnx = ocilogon("dippar","dippar",$db);
$sqlSido= "SELECT count(dslam) as nb FROM itdslam";
$tab=array();
while ($row=mysql_fetch_array($rs0))
{
array_push($tab, $row['ds']);
}
foreach($tab as $val)
{
$sqlSido1= "INSERT INTO itdslam (dslam) values ('$val]'";
$stmt1 = ociparse($cnx, $sqlSido1);
oci_execute($stmt1, OCI_COMMIT_ON_SUCCESS);
}
oci_free_statement($stmt1);' |
bon je voudrais pas abuser de votre bonne volonté tout de même.
:?
peut-être sorti d'affaires
j'ai inséré les variables nécessaires (libray, path) dans la crontab de l'user concerné.
Cela fonctionne désormais semble-t-il; je surveille le schmilblic chaque jour ...
merci encore
:D
moralité: quelques progrès à faire pour bien maitriser linux...