Precise Server의 로그인 화면에서 eth0의 IP 주소를 표시하려면 어떻게해야합니까?


23

내가 관리하는 서버는 불편하게도 DHCP에 의해 할당 된 동적 IP 주소를 가지고 있습니다. 그러나 편리한 카운터 밸런스는 내가 앉은 곳에서 약 2 피트 떨어진 곳에 설치된다는 것입니다. 로그인 프롬프트가 디스플레이에 전달되기 전에 / etc / issue를 편집하여 다른 값을 표시하는 방법을 알고 있지만 / etc / issue가 eth0의 현재 IP 주소를 다시 표시 할 수 있는지 알고 싶습니다 (재평가 됨) 부트 할 때)를 확인하고 ifconfig를 실행하기 위해 로그인 할 필요없이 ssh로 로그인하십시오.


로그인 화면에서 conky를 사용할 수 있습니까? 그렇다면 모든 종류의 정보를 편리하게 만들 수 있습니다.

답변:


27

Debian 8 / jessie부터 \4and 및 \6escape 문자를 사용 하여 IPv4 및 IPv6 주소를 출력 할 수 있습니다 . 따라서 /etc/issue파일 :

Debian GNU/Linux 8 \n \l

eth0: \4{eth0}

로그인 콘솔에서 다음과 같은 내용을 출력합니다.

Debian GNU/Linux 8 myserver tty1

eth0: 192.168.1.100
myserver login:

우분투가 비슷한 기능을 제공한다고 생각합니다 (적어도 최신 릴리스에서는)


이것은 Ubuntu 16.04 LTS에서 저에게 효과적이었습니다. 정답으로 표시된 답변은 아마 grep 주석에 문제가되지 않았습니다. 어쨌든 이것을 게시 해 주셔서 감사합니다.
트래커

여전히 데비안 9에서 작동합니다 :)
borekon

12

/etc/issue불행히도 일반 텍스트 man agetty이며 eth0의 IP 주소가 아닌 추가 할 수있는 옵션이 있습니다 (참조 ).

이것을 넣으면 /etc/rc.local:

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

그러면 다음과 같은 것이 보일 것입니다 :

eth0: 192.168.0.2
myServer login:

3
이것을 실행하는 사람은 / etc / issue의 내용을 덮어 씁니다. 이전 "eth *"행을 grep 한 다음 추가하는 단계를 추가 할 수 있습니다.
Rebs

1

Alex의 답변과 Rebs의 의견을 바탕으로 내 /etc/rc.local파일에 대한 내용입니다 (관련 라인 만).

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"

printf명령은 마법을 수행합니다. 불행히도 형식 문자열 내부 '\n''\l'내부를 넣으면 첫 번째 문자가 줄 바꿈 문자 /etc/issue로 바뀌고 파일이 엉망이되었습니다.

간단히 말해이 4 줄은 원본 정보를 /etc/issue파일로 표시 하고 Server IP Address:메시지를 추가합니다 .

Rebs가 말했듯이 서버를 재부팅 할 때 마다이 스크립트는 /etc/issue파일 을 무시 하므로 다른 스크립트와 다른 파일에서 시도하고 작동하면 변경 사항을 전송하십시오.

행운과 행복한 BASHing :)


0

systemd를 사용하면 systemctl edit getty@다음과 같은 작업 을 수행 할 수 있습니다 .

[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'

그때 systemctl daemon-reload && systemctl restart getty@tty1


0

우분투 19.04의 경우 다음 단계를 수행했습니다.

/etc/network/if-up.d/update-issue다음 내용으로 파일을 만들었습니다 .

#!/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

그런 다음 파일을 실행 파일로 표시했습니다. chmod 0755 /etc/network/if-up.d/update-issue

잘 작동합니다!


0

Nurchi, Alex 및 Steve의 답변 및 Reb의 의견을 바탕으로

다음은 기존 IP를 제거하고 로컬이 아닌 (127.) IP 주소를 추가합니다. 내 서버는 VM이며 eth0이 없습니다. 우분투 18.04에서 테스트

에 배치 /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

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

내 대답과 Steve의 유일한 차이점은 grep 줄을 추가하여 IP 줄을 제거하고 메시지를 캡처하여 새로운 / 업데이트 된 IP와 함께 읽은 것입니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.