Bu katran 2 soketleri görmezden geldiğinde, giriş klasörümü nasıl yedekler ve geri yüklerim?


8

Leopard'ın en son sürümünü çalıştıran eski Power Mac G5'imde önyüklenebilir hale getirmek için bulunduğu birimi yeniden biçimlendirme hazırlığı için giriş alanımın ağ yedeğini aldım .

Her ne kadar bu belirtinin asıl tarçağrışmanın bir işlevi olduğuna inanmasam da , işte tamlık için gerçek komut:

   bill@r2d2-2:~
   [108] (sudo tar cf - -C /Volumes/usr1 Users) | gzip -c - | ssh whmcclos@mbp \
             'cat > /Volumes/link2TMS/r2d2_usr1_Users.tar.gz'
   tar: Users/bill/Library/Acrobat User Data/8.0_ppc/Synchronizer/Commands: socket ignored
   tar: Users/bill/Library/Acrobat User Data/8.0_ppc/Synchronizer/Notification: socket ignored

İşte targörmezden gelen iki soket dosyası

bill@r2d2:~/Library/Acrobat User Data/8.0_ppc/Synchronizer
[11] ls -larhdt *
drwx------  3 bill  staff   102B Jun  4  2010 metadata
-rw-r--r--  1 bill  staff     0B Jan 20 13:05 adobesynchronizersu80
srwxr-xr-x  1 bill  staff     0B Jan 20 13:05 Notification
srwxr-xr-x  1 bill  staff     0B Jan 20 13:05 Commands

Birkaç senedir yuva yapmak için çalışmadım ve bir ipucu bulduktan sonra ne yapacağımı biliyorum. Başlığın dediği gibi, taronları görmezden gelen bu dosyaları nasıl yedekler ve sonra geri yüklerim ?

Yanıtlar:


9

Sen değil.

Unix yerel soketleri, bir program bağlantılar için verilen yolu dinlemeye çalıştığı anda yaratılır ve bir tür dosya olmasına rağmen, sadece bellek içi yapılara işaretçiler gibi davranırlar; bu nedenle, yalnızca program hala çalıştığı sürece kullanışlıdır (ve yalnızca aynı makine içinde; NFS veya benzeri bir şey yoktur).

Program çıktıktan sonra, soket dosyası artık kullanışlı değildir (ve normalde programın kendisi tarafından silinir); Aslında, program yeniden başlatılırsa, aynı yolu dinlemeden önce eski soketi silmek zorundadır - aksi takdirde bir "Adres zaten kullanımda" (iki program aynı TCP portunu almaya çalışıyormuş gibi) alacaktır. .

Bu, çok daha basit bir şekilde çalışan (bir işlem yazıyor, bir işlem okuyor) ve bu nedenle tekrar kullanılabilir olan adlandırılmış borulardan (aka fifos) biraz farklıdır ; mkfifoveya mknod p …komutları kullanılarak adlandırılmış bir boru oluşturulabilir .


Gerçekten de programladığım ve kullandığım FIFO'ları soketlerle karıştırıyordum. Klasördeki son derece önemli / faydalı b(kilit) ve c(karakter) özel dosyalar da olsa sinir bozucu olanlar da var, /devhatırladığım kadarıyla onlar da tartar. Hızlı cevabınız için teşekkür ederim.
Billy McCloskey

1
@BillMcCloskey: tar cihaz düğümlerini arşivleyebilir, ancak bunları çıkarmak için kök ayrıcalıklarına ihtiyaç duyar. Ancak modern sistemler önyüklemede gerekli aygıt düğümlerini oluşturduğundan, genellikle / dev'in tümünü de atlayabilirsiniz.
Ocak'ta 14:14

/ Dev dosya oluşturma işleminin daha dinamik olacağına sevindim; mknodilk slackware kurulumumun günlerinde kullandığımı hatırlıyorum . Bu nispeten yeni leopar kutusuyla ne sudo tar cf - /dev > /dev/nulliçin olabileceğimi görmek istemiştim , sadece görmek için yaptım tar: /dev/fd/3: Cannot stat: Bad file descriptor. Bellek hizmet ettiğinde , PPC G5'in eksik olduğunu bildiğim bir disket olduğunu düşünüyorum , ancak ihtiyaç duyulduğunda USB disket sürücüm olsa bile! LOL Görüşünüz için tekrar teşekkürler - en çok yardımcı olan.
Billy McCloskey,

Evet - Linux bir süre "devfs" yaptı (sıra dışı olmasına rağmen); daha sonra, / dev udev arka planının tüm cihaz düğümlerini çekirdek olaylarından yarattığı basit bir tmpfs yapıldı; bu, on yıldan uzun süredir varlığını sürdürüyor - 1997'den udev'in eski adı olan "kerneld" e atıflar buluyorum. Son zamanlarda, bu tekrar çekirdeğe geri taşındı - devfs'den çok daha basit bir yol olsa da) udev sadece modları / sahipliği / sembolik bağlantıları ayarlar. OS X'i bilmiyorum, ama sanırım diğer BSD'lerde devd gibi, dinamik / dev kullanıyor.
Ocak'ta 14:40

/ Dev / fd / dizinine gelince, bu disket sürücüleri değil - programın kendi dosya tanımlayıcılarına karşılık gelen özel dosyalar içeriyor. Örneğin, / dev / fd / 2 'nin açılması (veya / dev / stderr sembolik bağlantısı) çağrıya eşdeğerdir dup(2). Genel olarak, yedekleme araçlarına ya tamamen / tamamen yok sayılmasını ya da dosya sistemi bağlama noktalarını (hiç bir bağlama noktası olduğunu varsayarak) geçmemesini söylemek iyi bir fikirdir , çünkü / dev ya da sanal dosya sistemlerinin yedeğini almak kesinlikle işe yaramazdır. Linux / proc ve / sys veya FreeBSD / kern.
Gravity
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.