Bagaimana saya bisa menampilkan alamat IP eth0 di layar login di Precise Server?


23

Server yang saya kelola, cukup merepotkan, memiliki alamat IP dinamis yang ditetapkan oleh DHCP. Namun, penyeimbang yang nyaman adalah bahwa hal itu terjadi sekitar dua kaki dari tempat saya duduk. Saya tahu cara mengedit / etc / issue untuk menunjukkan nilai yang berbeda sebelum prompt login dikirim ke layar, tapi saya ingin tahu apakah mungkin untuk / etc / issue untuk menampilkan alamat IP eth0 saat ini (dievaluasi kembali saat boot) sehingga saya bisa melihatnya dan kemudian ssh in tanpa harus masuk untuk menjalankan ifconfig.


Bisakah conky digunakan di layar login? Jika demikian, Anda dapat membuat semua jenis informasi berguna.
dibs

Jawaban:


27

Pada Debian 8 / jessie Anda dapat menggunakan \4dan \6melarikan diri karakter untuk menampilkan alamat IPv4 dan IPv6. Jadi /etc/issuefile tersebut:

Debian GNU/Linux 8 \n \l

eth0: \4{eth0}

Akan menampilkan sesuatu seperti yang berikut di konsol login:

Debian GNU/Linux 8 myserver tty1

eth0: 192.168.1.100
myserver login:

Saya membayangkan Ubuntu akan menyediakan fungsionalitas serupa (setidaknya dalam rilis yang lebih baru)


Ini bekerja untuk saya di Ubuntu 16.04 LTS, jawaban yang ditandai sebagai benar tidak, mungkin masalah dengan komentar grep, dalam hal apa pun, terima kasih telah memposting ini.
Pelacak1

Ini masih berfungsi pada Debian 9 :)
borekon

12

/etc/issuesayangnya teks biasa, ia memiliki beberapa opsi yang dapat Anda tambahkan (lihat man agetty) tetapi bukan alamat IP eth0.

Jika Anda memasukkan ini ke /etc/rc.local:

IP=$(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
echo "eth0 IP: $IP" > /etc/issue

Maka Anda akan melihat sesuatu seperti ini:

eth0: 192.168.0.2
myServer login:

3
Harap dicatat bagi siapa saja yang menjalankan ini, ini akan menimpa isi / etc / issue. Anda dapat menambahkan langkah-langkah untuk menghapus garis "eth *" sebelumnya dan kemudian menambahkannya.
Rebs

1

Berdasarkan jawaban Alex dan komentar Rebs, inilah yang saya miliki untuk /etc/rc.localfile saya (hanya baris yang relevan):

PRE_MSG="Ubuntu 14.04.3 LTS" # this is from the original /etc/issue

IP=$(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')

IP_MSG="Server IP Address:"

printf "%s %s %s\n\n%s %s\n\n" "$PRE_MSG" '\n' '\l' "$IP_MSG" "$IP" > "/etc/issue"

The printfperintah melakukan keajaiban. Sayangnya menempatkan '\n'dan '\l'di dalam format string akhirnya menggantikan yang pertama dengan karakter baris baru dan /etc/issuefile itu berantakan.

Singkatnya cerita, 4 baris ini membuat informasi asli ditampilkan berdasarkan /etc/issuefile dan menambahkan Server IP Address:pesan.

Dan seperti yang dikatakan oleh Rebs, perlu diingat bahwa setiap kali Anda me-reboot server, skrip ini akan menimpa /etc/issuefile, jadi mungkin coba di dalam skrip yang berbeda dan pada file yang berbeda dan setelah itu berfungsi, transfer perubahan ke ...

Semoga sukses dan selamat BASHing :)


0

Dengan systemd Anda dapat melakukan systemctl edit getty@sesuatu seperti:

[Service]
ExecStartPre=-/bin/bash -c '[ ! -f /etc/.issue.orig ] && cp /etc/issue /etc/.issue.orig; int=`ls /sys/class/net|grep enp|head -1`; sed -r "s/\\\\\\n/[\\\\\\4\{$$int\}]/" < /etc/.issue.orig > /etc/issue'

Kemudian systemctl daemon-reload && systemctl restart getty@tty1


0

Untuk Ubuntu 19.04, saya mengikuti langkah-langkah ini:

Saya membuat file: /etc/network/if-up.d/update-issuedengan konten berikut:

#!/bin/sh
PREFIX="Ubuntu 19.04 - dev"
IPADDRS=$(hostname -I | tr " " "\n" | grep -v "^$" | sort -t . -k 1,1n | head -1 | tr "\n" " ")
echo "$PREFIX\n\nIP: $IPADDRS\n" > /etc/issue

Saya kemudian menandai file sebagai executable: chmod 0755 /etc/network/if-up.d/update-issue

Bagus sekali!


0

Membangun jawaban Nurchi, Alex dan Steve & komentar dari Reb,

Berikut ini akan mengeluarkan IP lama dan menambahkan alamat IP non lokal (127.). Server saya adalah VM dan tidak memiliki eth0. Menguji pada Ubuntu 18.04

Tempatkan di /etc/network/if-up.d/update-issue

#!/bin/sh
MSG=$(cat /etc/issue | grep -v IP)
IP=$(/sbin/ifconfig | grep 'inet' | grep -v '127' | cut -d: -f2 | awk '{ print $2 }')
printf "%s\n%s\n\n" "$MSG" "IP: $IP" > /etc/issue

Kemudian chmod 0755 /etc/network/if-up.d/update-issue

Satu-satunya perbedaan antara jawaban saya dan Steve adalah penambahan garis grep untuk menghapus garis IP, menangkap pesan dan membacanya bersama dengan IP baru / yang diperbarui

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.