it-swarm-tr.com

Sshfs bağlarının sunucu bağlantılarını kesmenin daha iyi bir yolu nedir?

sshfs ile bağlanmış birkaç dizin var. Bazen sunucudan bağlantı kesiliyor (benim tarafımdan yapılandırılamıyor). Genellikle böyle dizinleri bağlarım

sshfs [email protected]:/home/user /mnt/example

Bir sunucunun bağlantısı kesildiğinde, sshfs alt sistemi mount/free dizinini yerine erişemez. mount yazılırken mount hala görülebilir. Yazdığımda

ls /mnt/example

süreç kilitlenir (ayrıca Ctrl+c yardımcı olmaz). Bu yüzden yaparım

Sudo umount -l /mnt/example
# find pid of corresponding process:
ps aux | grep example.com
kill -9 <pid of locked sshfs process>

Bununla başa çıkmanın daha iyi bir yolu var mı? Açıkçası sshfsmount yapmalı ve temizlemeli ... İdeal olarak otomatik olarak yeniden bağlanacaktır.

60
Sebastian

Sshfs komutunu "reconnect" seçeneğiyle çalıştırabilirsiniz. Ağımızdaki her iş istasyonu için sunucu dosyalarını paylaşmak üzere PAM/automount ile sshfs kullanıyoruz. Sshfs için -o reconnect parametresini kullanıyoruz, çünkü çoğunlukla kullanıcılarımız bilgisayarlarını askıya aldı ve uyandığında sshfs yeniden bağlanmayacak (veya yanıt vermeyecek veya herhangi bir şey) olmayacak.

Örneğin:

sshfs [email protected]:/home/mvaldez/REMOTE /home/mvaldez/RemoteDocs -o reconnect,idmap=user,password_stdin,dev,suid

Sadece bir not, uzak bilgisayar gerçekten çalışmıyorsa, sshfs uzun süre yanıt vermeyebilir.

45
MV.

Bu, zaman aşımı azaltılarak çözülebilir. Aşağıdakileri $HOME/.ssh/config veya /etc/ssh/ssh_config:

ServerAliveInterval 15
ServerAliveCountMax 3

Bu 45 saniyelik bir zaman aşımı ile sonuçlanır.

11
Thor

Depolama için kullandığım bir sunucum var ve yaşadığım yer yetersizliği nedeniyle başka bir yerde tutuyorum. Dosyaları ağıma getirmek için sshfs kullanarak dosyaları sunucudan bağlayan bir Raspberry Pi kullanıyorum.

Son zamanlarda bir elektrik kesintisi nedeniyle raspbian jessie'ye geçmek zorunda kaldım ve sshfs'nin ciddi bir şekilde kararsız hale geldiğini fark ettim. Klasörler düzgün bir şekilde monte edilmiş olacaktı, ancak bir süre sonra onlara bağlanamadım ve bağların içeriğini listelemek istersem Raspberry Pi donacaktı.

Ne denedim:

  1. fstab içinde reconnect kullanılmış
  2. .ssh/config dosyasında ServerAliveInterval ve ServerAliveCountMax kullanılır, ancak boşuna kullanılır.
  3. çoğu forumda okuduğum diğer çözümler.

ama zar yok! Fstab dosyasını aşağıdaki gibi değiştirene kadar:

sshfs#[email protected]:/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

Ve çalışıyor! Artık bağlantı kesilmiyor! Sshfs ssh yapılandırma dosyasını bir nedenden dolayı okumuyor gibi görünüyor ve canlı sinyalleri asla gönderilmedi.

6
lucian

Bu, autofs için bir iş gibi geliyor. Çeşitli türlerdeki ağ bağlarını (nfs, samba, sshfs, adınız) ele almak ve bu şeylerin ne zaman yeniden monte edilmesi gerektiğini fark etmek oldukça yeterlidir. Ayrıca, kullanılmadığı sürelerden sonra bunların bağlantısını keserek ve bir dosya sistemi isteği yapıldığında bunları monte edebilir.

3
Caleb

Hala bu sorunla karşılaşan insanlar varsa, hala düzeltemedim. Çalışan bir geçici çözüm buldum.

Aşağıdaki Ruby komut hile yaptı. Tekrar tekrar "keepalive" adlı bir klasör oluşturur. Sonsuza kadar bunu çalıştırmaya devam edin.

$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

Bunun neden işe yaradığını bilmiyorum. Ama bir dakika boyunca hareketsiz olduğum ve her şeyin dontuğu yerde sorunumu çözüyor gibi görünüyor. Sadece montaj noktasında bir klasör oluşturmaya çalışır ve bu, her şeyin bir şekilde bağlantısını kesip dondurmasını engelliyor gibi görünüyor.

1
Vudew