CentOS’ta belirli bir octet içeren ethN arayüzünü tanımlayın


2

Bir octet'in (örneğin xx.xx.xx.112) bir parçasının bir arabirimin bir CentOS makinesine ait olduğunu belirlemeye özel bir ihtiyacım var

Benim ilk fikrim, ifconfigilgili arayüzü tanımlamak için çıktısını atmak ve elle ayrıştırmaktı. Doğru yaklaşım mı yoksa bunu yapmanın daha iyi bir yolu var mı?

Benim ham girişimi aşağıda olduğu gibi bir şey olurdu GNU grep,

ifconfig | grep -B1 -E '\.112' | grep -oP 'e\w+:'

Yanıtlar:


3

awkEkstra alt kabuklara ihtiyaç duymayacağından bir yanıtın biraz daha hızlı olabileceğini düşünüyorum :

ip addr show | awk -F: '/^[0-9]/ {dev=$2} /inet .*\.112/ {print dev; exit}'

Başka bir olasılık, eğer arayüzde yönlendirilecek bir .1adres biliyorsanız, yapabileceğiniz adreste bir ağ geçidi olduğunu farz etmek gibi.

ip route get a.b.c.1 | cut -f3 -d' '

Genelde ip, ifconfiguzun zamandır doğru olmasına rağmen henüz geçilmemiş olmasına rağmen, değiştirilmesi gereken yeni komuttur ifconfig, ancak konuyla ilgili şu Sunucu Hatası sorusuna bakın .


Cevap için teşekkürler. Giriş alanı ayırıcısını tekrar kontrol etmek isteyebilirsiniz, sanırım sonlandırılmamış. Düzeltebilir misin lütfen?
Inian

@Inian Oops, kötü kopyala-yapıştır için özür dilerim, eksik kolonu olması için düzeltdim. FWIW Bu bir centos 6 kutusunda yapılır, farklı bir sürümünüz varsa çıktınız biraz farklı olabilir
Eric Renouf

Evet, şimdi çalışıyor. Kendi kendime çözebildim, ama bunun dışında en büyük endişem, eğer ifconfigbir IP için bir arayüz tanımlamak için doğru bir yaklaşım ise (çıktısını ayrıştırma ) olurdu ? Bu etkili olur mu?
Inian

1
@İnce, ipbunun yerine geçmek için yapılan önerilerin yanı sıra bunun ifconfigfelsefi olarak kötü bir yaklaşım olduğunu düşünmüyorum ve bunun gerçekten etkili olacağını bekliyorum. Elbette, sonunda yapmaya çalıştığınız şeye bağlı olarak, bu hedefi gerçekleştirmenin başka yolları da olabilir
Eric Renouf,
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.