Saya punya beberapa mesin virtual linux dengan antarmuka yang terhubung, dan saya ingin alamat IP dari mesin tersebut muncul setelah mesin dinyalakan (dalam login, di mana biasanya ditampilkan rilis dan kernel).
Dari apa yang saya tahu pesannya diambil dari / etc / issues, tapi saya tidak yakin bagaimana dan kapan harus menulisnya.
linux
centos
virtual-machines
Bruno Lopes
sumber
sumber
Jawaban:
Ini hanya file teks ... Anda menulis ke sana dengan cara yang sama Anda akan mengirim teks ke file dengan skrip shell lainnya. Sesuatu seperti ini akan menggantikan / etc / masalah hanya dengan alamat ip Anda:
Jelas Anda dapat menjadikan ini sewenang-wenang lebih kompleks, tergantung pada informasi apa yang Anda inginkan dalam
/etc/issue
file Anda .Anda dapat menulis ke file ini dalam ekuivalen lokal Anda dari /etc/rc.d/rc.local (yang biasanya dijalankan setelah semua skrip startup lainnya).
sumber
ip address show eth0 | awk '/inet / {print $2}' | cut -d/ -f1
ip
adalah alat yang seharusnya Anda gunakan untuk hal semacam ini.ifconfig
secara teknis hanya untuk kompatibilitas.Pada CentOS 7 dan Debian 8 (dan mungkin juga yang lain), tambahkan saja baris berikut ke
/etc/issue
dan itu akan mengatasi ke alamat IPv4 mesin. Jika Anda memiliki beberapa antarmuka jaringan dan Anda ingin memilih satu yang spesifik, Anda dapat menentukannya dengan
Periksa
man getty
daftar urutan pelarian yang didukung pada distribusi Anda.sumber
Skrip ini akan menambah / menghapus alamat IP ke / dari
/etc/issue
file sesuai kebutuhan:Jika Anda menggunakan distro berbasis Debian, yang terbaik adalah menempatkan skrip di lokasi berikut:
Dengan cara ini skrip dieksekusi setiap kali sebuah antarmuka muncul atau turun. Meletakkannya di dalam
/etc/rc.d/rc.local
memiliki kelemahan karena dijalankan hanya satu kali selama bootup.sumber
/sbin/if{up,down}-local
. (Jika ada, itu disebut oleh/etc/sysconfig/network-scripts/ip{up,down}-post
.)--all-ip-addresses
output juga alamat IP "publik". Mungkin sesuatu seperti "alamat IP semua antarmuka eksternal dari host ini:" lebih masuk akal.Anda bisa menulisnya sekali. sayangnya tidak ada urutan getty untuk menampilkan alamat ip eth0 tetapi ada urutan escape yang dapat Anda gunakan di / etc / issue untuk menunjukkan nama host: \ n
Anda selalu dapat secara statis mengatur ip mesin di / etc / issue dengan menuliskannya langsung ke file. berhati-hatilah karena file /etc/issue.net digunakan untuk login jarak jauh sehingga Anda mungkin ingin mengeditnya juga.
Lagi pula, setelah bekerja di jendela terminal Anda akan kehilangan layar awal dan informasi alamat ip / host dengan itu. Cara terbaik adalah dengan mengatur nama host di prompt (kebanyakan distro linux lakukan) menggunakan \ h atau \ H atau lagi, secara statis mengatur alamat ip yang Anda tahu diatur pada host dalam variabel PS1 Anda dapat mengatur variabel PS1 di / etc / profil pada kebanyakan distro linux.
sumber
Banyak terima kasih kepada @ larsks untuk memulai. Saya menemukan bahwa saya memiliki masalah dengan skrip yang diselesaikan sebelum diperlukan sehingga file masalah saya selalu kosong. Jadi saya menambahkan jeda 1 detik dan berputar. Saya bukan penulis bash, jadi jika ada cara yang lebih baik untuk melakukannya, beri tahu saya. Saya menambahkan
COUNT
untuk memastikan itu tidak berulang selamanya.Saya menempatkan skrip ini di
/etc/network/if-up.d/
.sumber
Systemd membuat ini relatif mudah.
systemctl edit getty@
dengan konten seperti:Kemudian
systemctl daemon-reload && systemctl restart getty@tty1
sumber
Bagi siapa pun yang mendarat di sini yang menggunakan Ubuntu 19.04, saya akhirnya mengadopsi dari jawaban @ powpow.
Saya membuat file:
/etc/network/if-up.d/update-issue
dengan konten berikut:Saya kemudian menandai file sebagai executable:
chmod 0755 /etc/network/if-up.d/update-issue
Bagus sekali!
sumber