Debian çalışan servislerin versiyonunu alıyor


2

Debian'da çalışan servislerin sürüm sayısını nasıl alabilirim?

service --status-all

vermez.

Yanıtlar:


1

Bu konuda Debian'da veya herhangi bir GNU / Linux kutusunda çalışan servislerin kendileri için bir sürümü olması gerekmez. Bunun yerine, hizmet veren tüm servis dosyalarının bir tür sürüm dizgisi vardır ve bir paketin parçasıdır. Çoğu bariz komut satırına cevap olsa eski gibi geçer, tüm cinleri olarak dışarı kazmak için oldukça zordur --versionveya -vbir tahmin edebileceğiniz şekilde. İkincisi biraz daha kolaydır: sadece çeşitli daemon'ları başlatan tüm betiklerin bir listesini alabiliriz ve sonra bu dosyalar için paket bilgilerini listeleyebiliriz.

Bu tam olarak istediğin şey değildi, ama oldukça yaklaştı. En azından hangi paket sürümlerinin hangi hizmetleri sağladığını bileceksiniz. Aşağıdaki örnek, dizinde bir init-script veya -scripts sağlayan tüm paketlerin bir listesini üretecektir /etc/init.d/.

#!/bin/sh

for pkg in $(for file in /etc/init.d/* ; do \
               dpkg -S $file | awk -F: '{ print $1 }' ; \
             done | sort | uniq) ; do
  echo "$pkg: `dpkg-query -W -f='${Version}' $pkg`"
done

Bu geçmesi biraz zaman alacaktır, dpkg gezegendeki en hızlı şey değildir ve orada epeyce koşar. service --status-allYukarıdaki örnekte gösterilmeyen bazı şeyler de olacaktır . Bunun nedeni her paketi yalnızca bir kez sorguladığımız içindir (bu nedenle uniq): bazı paketler birkaç init-script sağlar ve bu daha sonra çıktısına yansıtılır service --status-all.


Cevabınız için teşekkür ederim. Senaryo iyi çalışıyor.
kursus
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.