SSHFS: obter o pwd real no servidor original?

0

Eu conectei uma das minhas pastas do servidor de produção com o servidor "conta ssh" via sshfs .

Muitas vezes preciso descobrir pwd (ou realpath ) do arquivo no servidor original (de produção), mas o pwd retorna o caminho para o arquivo no servidor conectado ("ssh account").

Existe uma maneira de obter o caminho original?

Obrigado

Editar: mais sobre isso: Estou usando isso para vincular meu servidor ssh a vários servidores SFTP / hospedagem compartilhada diferentes.

então, se eu fizer isso (em alguns dos servidores): sshfs user@domain:/ mount_point , então eu estou conectado à minha conta FTP, que atua como root para meu usuário, mas é mais algo como /var/www/clients/c/a/account/pub/ e essa é a caminho que eu preciso -

sshfs user@domain:/ mount_point # mount SFTP acc.
cd mount_point
XXXX file.ext # get back: /var/www/clients/…/pub/file.ext
pwd file.ext # returns /ssh-server/path/mount_point/file.ext

Espero que faça sentido agora.

Obrigado

    
por Adam Kiss 14.11.2012 / 11:57

2 respostas

1

Você pode obter o caminho montado via sshfs a partir da saída de mount (ou simplesmente lembrá-lo). Então você pode tanto

  • constrói um alias que usa um caminho no cliente, remove o ponto de montagem do SSHfs e preenche o nome original do diretório no servidor. Por exemplo, se você montar o diretório remoto /var/www/mywebsite localmente em /home/test/website ( sshfs server:/var/www/mywebsite /home/test/website ), o seguinte funcionará:

    $ alias mpwd="pwd | sed 's|^/home/test/website|/var/www/mywebsite|'"
    $ pwd
    /home/test/website
    $ mpwd
    /var/www/mywebsite
    $ cd gallery
    $ mpwd
    /var/www/mywebsite/gallery
    $ cd /etc
    $ mpwd
    /etc
    

    Observe como diretórios não correspondentes ( /etc ) não são desconfigurados.

  • monte o diretório remove no mesmo local localmente, ou seja, execute sshfs por exemplo como: sshfs server:/var/www/mywebsite /var/www/mywebsite . O diretório obviamente tem que existir localmente para que isso funcione.

por 14.11.2012 / 14:07
1

Você não conhece o caminho que é exportado / montado em sua máquina local? Todos os caminhos no ponto de montagem não seriam relativos ao caminho "exportado"?

sshfs [user@]host:[dir] mountpoint [options]

então, se você estiver em [dir] / foo / bar, o pwd no host real será / [dir] / foo / bar.

Se você estiver montando sua pasta pessoal (padrão se não [dir]), e ela estiver em um local "personalizado", descobrir o seu caminho inicial pode ser feito da seguinte forma:

$ ssh flode echo \$HOME
/home/pvv/d/rakhmato

... então o que eu tenho no mountpoint / moo / hei está em / home / pvv / d / rakhmato / moo / hei

Se o [dir] que você está montando for um alias para outra pasta (mount -o bind), você poderá localizar o caminho original observando o arquivo / etc / mtab. Algo como:

$ ssh localhost mount |grep '/media.*bind'
/mnt/media/media on /media type none (rw,bind)
/mnt/media/root-extension/usr/share/doc on /usr/share/doc type none (rw,bind)

... onde localhost é o nome do seu servidor e '/ media' é o [dir] que você monta via sshfs.

    
por 14.11.2012 / 14:09

Tags