리눅스에서 도대체 "hostname" 명령어는 어디에 있는 정보를 가져다 뿌려 주는지요?
평점 :
- 1 (1 명) 나도 평가하기 visualmania 조회 :306 답변 : 3
답변이 완료된 질문입니다. (2006-02-13 07:38 작성) 신고
현재 저는 페도라4에서 데이콤 광랜을 사용중입니다.
데이콤 광랜은 아시다시피 유동 아이피로서 설치 할 때
네트워킹 잡는 부분에서 DHCP로 설정하고 옵션으로
ISP 쪽에서 호스트이름을 자동으로 받아오기에 체크를 풀어준
상태에서 설치를 했습니다.
[root@8804316 ~]# hostname
8804316
[root@8804316 ~]# cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=localhost.localdomain
[root@8804316 ~]#
그리고 나서 시스템 부팅후 위처럼
hostname 명령을 하면 뜬금없는 "8804316" 이란 호스트 이름이 나옵니다.
위에서 터미널 프롬프트 보셔도 알겠지만,, 터미날 프롬프트에서 "8804316" 뜨고요.
cat 명령으로 /etc/sysconfig/network 를 보면 위에서 보여 드렸듯이
NETWORKING=yes
HOSTNAME=localhost.localdomain
이 출력 되고요..
제가 알고픈것은 hostname 명령어가 도대체 어디에 있는 정보를 갔다고 뿌려 주냐는
것입니다.. 제가 네트워크 관련 파일들을 다 뒤져 봤는데..
위에 제 컴에 호스트 이름인 "8804316"을 찾을 수가 없어거든요..
제가 뒤져본 네트워크 관련 파일 들입니다.
/etc/hosts : localhost 및 server name
/etc/resolv.conf : name server
/etc/sysconfig/network : HOSTNAME
/etc/sysconfig/network-scripts/ifcfg-eth0 : IP, Netmask, Gateway등등
도대체 "hostname" 명령어는 어디에 있는 정보를 가져다 뿌려 주는지요?
질문자가 선택한 답변 -->
re: 리눅스에서 도대체 "hostname" 명령어는
linuxlee (2006-02-13 10:25 작성)
이의제기 | 신고
이의제기 | 신고-->
질문자 평
리눅스가 제일처음 구동하게 되면
/etc/inittab 파일을 읽게됩니다
이후 /etc/rc.d/rc.sysinit 파일을 읽게 되죠
이떄 rc.sysinit 는 /etc/sysconfig/network 파일을 hostname
을 읽어 들여 hostname 을 설정하게 됩니다.
그 후에 . /etc/init.d/functions 을 읽어들이는데
이 파일은 다시 . /etc/sysconfig/init 을 읽어들입니다.
이러한 순서대로 파일을 읽어들이는데
이제 마지막으로 /etc/rc.d/init.d/network 파일을 읽어들여 네트워크를 구동합니다.
이 파일은 /etc/sysconfig/network-script/ifcfg-eth0 파일을 읽고
/etc/sysconfig/network-scripts/ifup 안에 파일을 최종적으로 설정합니다.
최종적이 결과물을 확인하실려면 etc/sysconfig/network-scripts/ifup
이 안에 스크립트를 자세히 보시길 바랍니다
그러면 dhcp 상에서 호스트 네임을 불러오는 게 있습니다.
답변이 잘되셨는지 모르겠네요
리눅스에서 스크립트를 추척하면 답이 나와있습니다.
제일 중요한 부분은 /etc/syscofig/network 란 부분이 되겠지요~
그리고 마지막에 /etc/sysconfig/network-scripts/ifup 이 됩니다.
답변들 -->
re: 리눅스에서 도대체 "hostname" 명령어는 어디에 있는
cgidhtml (2006-02-13 10:18 작성)
이의제기 | 신고
hostname명령어는 부팅시 /etc/sysconfig/network 파일을 참고하며 /etc/host.conf 파일내용에 따라 /etc/hosts 파일 또는 DNS를 이용하여 resolver합니다.
그리고 hostname은 간단하게 "hostname 도메인명"으로 쉽게 변경이 가능합니다.
정확한 원인은 알수가 없으나 저의 추측은 아래와 같습니다.
dhcp를 사용했기 때문에 강제적으로 네임서버 설정을 하지 않았다면 네임서버는 dhcp서버의 설정을 따른다.
dhcp 네임서버에 님의 아이피가 8804316로 맵핑되어 있다.
dhcpclient설정시 hostname이 강제적으로 변경되었다.
hostname에 문제가 있다면 rc.local파일내에 "hostname 도메인명"을 입력해두시면
간단하게 해결될것 같습니다.
지식스폰서답변 : re: "hostname" 답변
리눅스원 - 신병웅 (2006-02-13 10:42 작성)
이의제기 | 신고
님이 알고계신대로
hostname은 /etc/sysconfig/network와 /etc/hosts 파일을 참고합니다.
일단 님의 컴터 호스트이름이 8804316이 되었는지는 모르겠지만..
변경을 하시면 해결될거 같습니다.
위에 /etc/sysconfig/network에 hostname을 지정하여주시고
/etc/hosts에도 정보를 입력해주시고 리부팅 하시면 해결되실겁니다.
참고로 /proc/sys/kernel/hostname 파일을
echo "호스트명" > /proc/sys/kernel/hostname 변경해주시면 바로 적용이 됩니다.
내용출처 :
출처: http://kin.naver.com/db/detail.php?d1id=1&dir_id=10202&eid=35s1ok9yheFDZnkJmMolIacFC6KuXWWb
--------------------------------------------------------------------------
root@HOSTNAME:/proc/sys/kernel># hostname
HOSTNAME