컴퓨터의 IP 주소를 표시하도록 로그인 프롬프트 또는 헤더(/etc/issue)를 수정합니다.

컴퓨터의 IP 주소를 표시하도록 로그인 프롬프트 또는 헤더(/etc/issue)를 수정합니다.

저는 많은 가상 머신을 사용하여 작업합니다. 테스트 및 사전 제작 설정용입니다.

로그인 프롬프트나 헤더에 컴퓨터의 IP 주소를 표시하고 싶습니다. 그렇게 하면 시작할 때 어떤 IP에 SSH로 연결될지 확인할 수 있습니다. 우리 네트워크는 DHCP를 사용합니다. 따라서 부팅 사이에 변경될 수 있습니다.

$ cat /etc/issue
우분투 11.04 \n \l

다음과 같이 나타납니다.

우분투 11.04 [호스트 이름] tty[x]

나는 그것이

우분투 11.04 [호스트 이름] tty[x] ip xxx.xxx.xxx.xxx

나는 init/upstart 스크립트를 작성하려고 생각하고 있었습니다. 더 좋은 방법이 있습니까?

답변1

Getty는 컴퓨터의 IP 주소를 모릅니다. 하지만 이 질문은 이미서버 결함. 허용되는 답변은 다음과 같습니다.

이것은 단지 텍스트 파일일 뿐입니다. 다른 쉘 스크립트를 사용하여 파일에 텍스트를 보내는 것과 같은 방식으로 파일에 작성합니다. 다음과 같이 /etc/issue를 귀하의 IP 주소로 대체합니다.

ifconfig eth0 | awk '/inet addr/ {print $2}' | cut -f2 -d: > /etc/issue

분명히 파일에서 원하는 정보에 따라 이를 임의로 더 복잡하게 만들 수 있습니다 /etc/issue.

/etc/rc.d/rc.local(일반적으로 다른 모든 시작 스크립트 이후에 실행되는) 로컬 파일로 이 파일에 쓸 수 있습니다 .

또한 해당 파일은 /etc/issue.net원격 로그인에 사용되므로 편집할 수도 있습니다.

답변2

~에센트OS 7그리고데비안 8(그리고 어쩌면 다른 것들도), 다음 줄을 추가하십시오./etc/issue

My IP address: \4

그러면 머신의 IPv4 주소가 확인됩니다. 여러 네트워크 인터페이스가 있고 특정 인터페이스를 선택하려는 경우 다음을 사용하여 지정할 수 있습니다.

My IP address: \4{eth0}

답변3

DHCP 임대 IP를 사용하는 CentOS 5의 경우 다음 스크립트를 사용할 수 있습니다.

$ cat /etc/dhcp/dhclient.d/issue.sh
#!/bin/bash

update_issue() {
    awk -v \
        r="$(ip -o addr | awk '/inet [1-9]+/ { print $2 " " $4 }')" \
        '{ gsub(/%INTERFACES%/,r) }1' \
        /etc/issue.template > /etc/issue
}

issue_config() {
    update_issue
}

issue_restore() {
    update_issue
}

다음과 같은 문제 "템플릿"이 있습니다.

$ cat /etc/issue.template
CentOS release 6.5 (Final)
Kernel \r on an \m

%INTERFACES%

기억해

chmod +x /etc/dhcp/dhclient.d/issue.sh

awk현재 IP를 가져와 파일에서 바꾸는 명령은 최신 /etc/issue.templateLinux 배포판으로 이식 가능해야 합니다.

관련 정보