2009-10-24 5 views
1

커맨드 - cd와 같은 디렉토리를 어떻게 입력 하는가? 따라서 경로 접두어없이 원격 파일을 조작 할 수 있습니까?Ruby NET에 원격 디렉토리를 입력하는 방법 : SFTP?

다음은 현재 코드입니다.

Net::SFTP.start do |sftp| 
    sftp.rename!(REMOTE_PATH + "latest.zip", REMOTE_PATH + "latest.back.zip") 
    sftp.upload!("latest.zip", REMOTE_PATH + "latest.zip") 
end 

내가하고 싶은 : 나는 SSH 대신 연결 사용하는 솔루션을 발견

sftp.cd REMOTE_PATH  
sftp.rename!("latest.zip", "latest.back.zip") 
sftp.upload!("latest.zip", "latest.zip") 

답변

0

.. 작동하지 않습니다. SFTP 경로는 SSH 경로와 관련이없는 것처럼 보입니다. 다른 옵션이 있으면 알려주세요.

Net::SSH.start("localhost", "user", "password") do |ssh| 
    ssh.sftp.upload!("/local/file.tgz", "/remote/file.tgz") 
    ssh.exec! "cd /some/path && tar xf /remote/file.tgz && rm /remote/file.tgz" 
    end 
+1

정확합니다. SFTP는 실제로 FTP를 따라 원격 디렉토리를 변경할 수 없도록합니다. 메모리가 나에게 올바르게 서비스된다면, SFTP는 항상 SSH 루트 디렉토리로 빠져들고 거기에 갇히게된다. 원격 CD를 보내는 것이 이동하는 유일한 방법 인 것 같습니다. –

관련 문제