sshfs를 통해 마운트 된 여러 디렉토리가 있습니다 . 때때로 서버와의 연결이 끊어집니다 (나에 의해 구성 할 수 없음). 나는 보통 이런 디렉토리를 마운트합니다
sshfs user@server.example.com:/home/user /mnt/example
서버 연결이 끊어지면 sshfs 하위 시스템은 디렉토리를 마운트 해제 / 해제 하지 않고 대신 액세스 할 수 없도록 잠급니다. 입력 할 때 마운트가 여전히 표시됩니다 mount
. 입력 할 때
ls /mnt/example
프로세스가 잠 깁니다 ( Ctrl+ 도 c도움이되지 않습니다). 그러므로 나는
sudo umount -l /mnt/example
# find pid of corresponding process:
ps aux | grep example.com
kill -9 <pid of locked sshfs process>
이것을 다루는 더 좋은 방법이 있습니까? 분명히 sshfs 는 umount를 수행 하고 정리해야합니다. 이상적으로는 자동으로 다시 연결됩니다.
답변
“reconnect”옵션을 사용하여 sshfs를 실행할 수 있습니다. sshfs를 PAM / automount와 함께 사용하여 네트워크의 각 워크 스테이션에 대한 서버 파일을 공유합니다. 우리는 -o reconnect를 sshfs의 매개 변수로 사용합니다. 대부분의 사용자가 컴퓨터를 일시 중지하고 sshfs가 다시 연결되지 않거나 응답하지 않기 때문입니다.
예를 들면 다음과 같습니다.
sshfs mvaldez@192.168.128.1:/home/mvaldez/REMOTE /home/mvaldez/RemoteDocs -o reconnect,idmap=user,password_stdin,dev,suid
참고로 원격 컴퓨터가 실제로 작동하지 않으면 sshfs가 오랫동안 응답하지 않을 수 있습니다.
답변
시간 초과를 줄이면이 문제를 해결할 수 있습니다. $HOME/.ssh/config
또는에 다음을 추가하십시오 /etc/ssh/ssh_config
.
ServerAliveInterval 15
ServerAliveCountMax 3
결과적으로 45 초의 시간 초과가 발생합니다.
답변
스토리지에 사용하는 서버와 내가 살고있는 공간이 부족한 경우 다른 위치에 보관합니다. 파일을 네트워크로 가져 오기 위해 sshfs를 사용하여 서버에서 파일을 마운트하는 라즈베리 파이를 사용합니다.
최근에 정전으로 인해 라즈 비안 제시로 업그레이드해야했고 sshfs가 심각하게 불안정하다는 것을 깨달았습니다. 폴더가 올바르게 마운트되었지만 얼마 후 폴더에 연결할 수 없으며 마운트 내용을 나열하려는 경우 라즈베리 파이가 정지됩니다.
내가 시도한 것은 :
- fstab에서 다시 연결 사용
- .ssh / config 파일에서 ServerAliveInterval 및 ServerAliveCountMax를 사용했지만 아무 소용이 없습니다.
- 대부분의 포럼에서 읽은 다른 솔루션.
그러나 주사위는 없습니다! fstab 파일을 다음과 같이 수정할 때까지 :
sshfs#user@server:/remote/folder /local/mount/dir fuse IdentityFile=sshkeyfile,Port=XXX,uid=1000,gid=1000,allow_other,_netdev,ServerAliveInterval=45,ServerAliveCountMax=2,reconnect,noatime,auto 0 0
그리고 작동합니다! 더 이상 연결을 끊지 마십시오! sshfs가 어떤 이유로 ssh 구성 파일을 읽지 않고 살아있는 신호를 보내지 않은 것처럼 보입니다.
답변
이것은 autofs 작업처럼 들립니다. 오히려 다양한 종류의 네트워크 마운트 (nfs, samba, sshfs, 이름 지정)를 다루고 다시 마운트해야 할 때를 알아내는 데 능숙합니다. 또한 사용 중지 후 파일 마운트 해제 및 파일 시스템 요청시 마운트 해제를 처리 할 수도 있습니다.
답변
여전히이 문제가 발생하는 사람들이 있으면 여전히 문제를 해결할 수 없습니다. 해결 방법을 찾았습니다.
다음 루비 스크립트가 트릭을 수행했습니다. “keepalive”라는 폴더가 반복해서 생성됩니다. 무한대로 계속 실행하십시오.
$i =1
$num =0
begin
puts("Inside the loop i = #$i" )
$i +=1
puts 'creating obj'
system 'mkdir /{yourmountpoint}/keepalive'
sleep 5
puts 'we did it, it should be still alive'
end while $i > $num
왜 이것이 작동하는지 모르겠습니다. 그러나 잠시 동안 비활성 상태이고 모든 것이 멈추는 문제를 해결하는 것 같습니다. 마운트 지점에 폴더를 만들려고하면 폴더가 분리되어 얼어 붙지 않는 것 같습니다.