O comando cd usando variável para mapear o volume NFS dentro do script ssh in linux não está funcionando

0

Eu tenho que fazer o seguinte a partir de um script bash. A pasta / VMNFS / está presente na caixa linux, de onde o script é executado, e é mapeada para a máquina na qual eu estou ssh'ing, como um NFS em / vmfs / volumes / VMNFS /. O segundo comando cd não funciona, nem com o nome do caminho simbólico nem com o caminho físico. Por quê? e como corrigir isso?

#!/bin/bash
ssh -2 [email protected]  /bin/sh  <<\EOF
vmfile_path='grep / vmvar_file'
datastore_path=/vmfs/volumes/VMNFS/
cd $datastore_path                && echo "The present working directory is" 'pwd -P'
esxi_vmfile_path_sub='pwd -P'     && echo "variable value is" $esxi_vmfile_path_sub
esxi_vmfile_path='echo $vmfile_path | sed "s:/VMNFS:$esxi_vmfile_path_sub:"'             
cd "$esxi_vmfile_path" 
EOF


***Output***:
The current working directory is  /vmfs/volumes/65335ec4-46d12e41
variable value is /vmfs/volumes/65335ec4-46d12e41
can't cd to /vmfs/volumes/65335ec4-46d12e41/TPAE7.5/
    
por Bhavya Maheshwari 04.02.2013 / 11:18

2 respostas

0

Funciona quando você altera manualmente o diretório na linha de comando? Se não, pode ser que você simplesmente não tenha as permissões para ver esse diretório.

Além disso, parece que você está usando uma maneira incrivelmente complicada de alterar um diretório. O que há de errado com

#!/bin/bash
ssh -2 [email protected]  /bin/sh  <<EOF
cd "/vmfs/volumes$(grep -m 1 / vmvar_file)"
EOF

Além disso, você pode considerar aspas duplas em todas as suas atribuições de variáveis, caso elas resultem em valores com espaços. Falando em espaços, se o seu $esxi_vmfile_path contiver espaços, ele também poderá tentar mudar para o diretório errado.

    
por 04.02.2013 / 12:07
0

Pensamento estúpido ... verifique se você não tem espaços no final de seus caminhos no vmar_file

    
por 09.06.2014 / 23:01

Tags