it-swarm-ko.tech

연결이 끊긴 후에도 SSHFS 마운트

랩톱에서 중앙 서버로 SSHFS 마운트를 사용하고 있습니다.

분명히 더 긴 연결 끊기 (예 : 일시 중단 중) 후에 SSHFS 마운트가 손상되어 기본 SSH 연결 시간이 초과 될 수 있습니다.

오래 지속되는 연결 끊기 (> 5 분) 또는 다른 IP로 다시 전화 접속을 유지하는 SSHFS 마운트를 얻는 방법이 있습니까?

60
bene

Autossh 및 autofs의 팁에 감사합니다.

그러나 필자의 직접적인 목적으로 문서화되지 않은 훨씬 간단한 솔루션을 찾았습니다.

sshfs -o reconnect server:/path/to/mount
54
bene

사용하다 -o reconnect,ServerAliveInterval=15,ServerAliveCountMax=3

조합 ServerAliveInterval=15,ServerAliveCountMax=3는 1 분의 네트워크 중단 후 I/O 오류가 발생하도록합니다. 이것은 중요하지만 대부분 문서화되지 않았습니다. ServerAliveInterval 옵션이 기본값으로 남아 있으면 (활성 검사없이) sshfs가 reconnect '된 후에도 I/O 중단이 발생하는 프로세스는 무한정 휴면 상태 인 것 같습니다. 나는 이것이 쓸모없는 행동이라고 생각합니다.

다시 말해 -o reconnectServerAliveInterval를 지정하지 않으면 ssh가 아래에 다시 연결되면 I/O가 성공하거나 애플리케이션이 무기한 중단됩니다. 결과적으로 일반적인 응용 프로그램이 완전히 중단됩니다. I/O가 오류를 반환하고 응용 프로그램을 다시 시작하도록하려면 ServerAliveInterval=1 이상.

ServerAliveCountMax=3가 기본 설정이지만 가독성을 위해 지정하고 싶습니다.

65
kubanczyk

Autossh ssh가 트래픽 전달을 중지하거나 중지 한 것을 발견하면 ssh 세션을 자동으로 다시 연결합니다. 그것은 자동화 된 ssh이기 때문에 다른 IP 및 일시 중단 (노트북이 다른 LAN에서 깨어 지더라도)에서 작동합니다.

12
kband

autofs 를 통해 파일 시스템을 마운트 할 수 있습니다. Autofs는 파일 시스템이 마운트 될 디렉토리에서 무언가를 사용할 때 파일 시스템을 마운트하는 도구입니다. 활동을 감지하면 파일 시스템이 마운트됩니다. 파일 시스템에서 아무 일도 일어나지 않으면 마운트 해제 된 것입니다.

여기에 howto 이 작업을 수행하기 위해 Google에서 찾은 다른 곳이 있습니다.

9
Zoredache

SSH 클라이언트가 연결을 끊지 않도록 구성 할 수 있다고하더라도 지정된 비활성 기간이 지나면 서버가 그렇게하도록 구성되어있을 수 있으므로 무시할 수 없기 때문입니다. 연결을 다시 시작하지 않으면 서버가 정지 상태가되어 시간이 지남에 따라 서버 리소스가 크게 낭비 될 수 있습니다.

더 좋은 기술은 컴퓨터를 일시 중지하기 전에 파일 시스템을 마운트 해제하고 컴퓨터가 다시 깨어날 때 다시 마운트하는 것입니다. 이를 수행하는 메커니즘은 컴퓨터를 일시 중지하는 방법에 따라 다를 수 있습니다. tuxonice 커널을 사용하여 이와 같은 작업을 수행하려면 다음과 같은 지시문이 있습니다.

Unmount /mnt/sshfs

/etc/hibernate/common.conf.

2
David Z

kubanczyk의 답변 훌륭합니다. 너무 욕심 많은 sshfs로 인해 전체 인터페이스를 정지시키는 데 문제가 있었으므로 이제 랩톱을 열 때 다시 연결되고 연결이 느려질 때 멈추지 않는 스크립트로 쉽게 연결하기 위해 bash 스크립트를 사용할 수 있습니다 (아마도 매우 안전하지는 않지만 많은 웹 프로젝트에 편리합니다.

#!/bin/bash
echo PWD | sshfs [email protected]:/ MOUNT_PATH -o password_stdin,reconnect,ServerAliveInterval=15,ServerAliveCountMax=3 -p PORT -C -oStrictHostKeyChecking=no
if xhost >& /dev/null ; then
    pcmanfm MOUNT_PATH
fi
1
Timofey Bugaevsky