Avec
my $command =<<EOF
'sqlplus / as sysdba
set heading off
set pages 1000
set lines 300
col path format a50
col instance_name format a20
select v\$asm_diskgroup.name,v\$asm_disk.PATH from v\$asm_diskgroup,v\$asm_client,v\$asm_disk where v\$asm_client.GROUP_NUMBER=v\$asm_disk.GROUP_NUMBER and v\$asm_disk.GROUP_NUMBER=v\$asm_diskgroup.GROUP_NUMBER;'
EOF
;
ça marcherait pas mieux?
Il y avait plusieurs pbs:
Un blanc entre le << et le EOF ce qui en faisait une séquence pas reconnue ('deprecated')
les ' avant le <<EOF ce qui fait qu'ils étaient pris en compte en premier
le ; juste après le EOF alors qu'il doit figurer seul sur la ligne.
Bref, si
$command doit contenir
'sqlplus / as sysdba
set heading off
set pages 1000
set lines 300
col path format a50
col instance_name format a20
select v$asm_diskgroup.name,v$asm_disk.PATH from v$asm_diskgroup,v$asm_client,v$asm_disk where v$asm_client.GROUP_NUMBER=v$asm_disk.GROUP_NUMBER and v$asm_disk.GROUP_NUMBER=v$asm_diskgroup.GROUP_NUMBER;' |
ce qui à priori me semble logique au vu du $cmd='ssh -q -o stricthostkeychecking=no -o batchmode=yes root@'.$server.' \'echo "1" | su - grid -c \''.$command;
alors ça devrait coller avec ce que je vous ai modifié.
Peut être que pour la première ligne, un 'sqlplus "/ as sysdba" est meilleur, au vu de certains exemples trouvés sur le web (qui ont aussi un exit final en fin de commande).
A+,
Message édité par gilou le 04-07-2012 à 14:30:14
---------------
There's more than what can be linked! -- Iyashikei Anime Forever! -- AngularJS c'est un framework d'engulé! --