CentOS 6.5 पर hostname कैसे बदलें?


49

मैं अपने CentOS 6.5 होस्ट पर होस्टनाम को बदल नहीं सकता। मैं यहां मिले निर्देशों का पालन कर रहा हूं: http://www.rackspace.com/knowledge_center/article/centos-hostname-change

मैंने अपना /etc/hostsऐसा सेट किया ...

    [root@mig-dev-006 ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain 
    192.168.32.128  ost-dev-00.domain.com ost-dev-00
    192.168.32.129  ost-dev-01.domain.com ost-dev-01

... तो मैं अपनी /etc/sysconfig/networkफ़ाइल को इस तरह बनाता हूँ ...

    [root@mig-dev-006 ~]# cat /etc/sysconfig/network
    NETWORKING=yes
    HOSTNAME=ost-dev-00.domain.com
    NTPSERVERARGS=iburst

... तो मैं hostnameऐसे ही चलता हूं ...

    [root@mig-dev-006 ~]# hostname ost-dev-00.domain.com

... और फिर मैं बैश चलाता हूं और सब ठीक लगता है ...

    [root@mig-dev-006 ~]# bash

... लेकिन जब मैं अपने नेटवर्क को पुनः आरंभ करता हूं तो पुराना होस्टनाम वापस आ जाता है:

    [root@ost-dev-00 ~]# /etc/init.d/network restart
    Shutting down interface eth0:  Device state: 3 (disconnected)
                                                               [  OK  ]
    Shutting down loopback interface:                          [  OK  ]
    Bringing up loopback interface:                            [  OK  ]
    Bringing up interface eth0:  Active connection state: activating
    Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/6
    state: activated
    Connection activated
                                                               [  OK  ]
    [root@ost-dev-00 ~]# bash
    [root@mig-dev-006 ~]# 

... मेरे द्वारा इसका निर्धारण नहीं किया जा सकता। मुझसे यहां क्या गलत हो रहा है।


1
क्या आपने अपनी /etc/hostnameफ़ाइल संपादित की है ?
एंथन जूल

कोई /etc/hostnameफ़ाइल नहीं है । [root@smp-mig-dev-006 ~]# ls -l /etc/hostnameआउटपुटls: cannot access /etc/hostname: No such file or directory
रेड क्रिकेट

सेंटो चीज हो सकती है। आपका मैनपावर आपको किसकी स्थायीता के बारे में बताता है hostname somename, कि इसका स्थायी प्रभाव है? (यदि आप उस कॉल को क्यों नहीं करते?)
एंथन जूल

3
मुझे लगता /etc/hostnameहै कि CentOS 7 में है, लेकिन CentOS 6. में नहीं है
Pavel daimerda

मुझे लगता है कि यह पुराना है, लेकिन मैं नेटवर्क मैनजर को काम पर सूँघता हूं, या तो आपके पास नेटवर्क (यानी नेटवर्क-स्क्रिप्ट में) की तुलना में किसी अन्य फ़ाइल में HOSTNAME = सेट हो सकता है। CentOS 6 में / etc / hostname फ़ाइल का उपयोग नहीं किया गया है (यह एक सिस्टमड चीज है; इसका मतलब है कि CentOS 7 और up)। / Etc / sysconfig / network-script / ifcfg-eth0 फ़ाइल की सामग्री की जाँच करें; इसमें क्या है? नोट: यदि आप Redhat की if_post स्क्रिप्ट को नेटवर्क-स्क्रिप्ट / में देखते हैं, तो आप देखेंगे कि set_hostname केवल "hostname $ HOSTNAME" चलाता है, जहां HOSTNAME एक शेल चर या तो नेटवर्क फ़ाइल या ifcfg-eth0 फ़ाइल में सेट है।
माइक एस

जवाबों:


67

होस्टनाम को स्थायी रूप से बदलने के लिए, आपको इसे दो स्थानों पर बदलना होगा:

vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=newHostName

और: एक अच्छा विचार है अगर आपके पास कोई एप्लिकेशन है जिसे होस्टनाम के आईपी को हल करने की आवश्यकता है)

vi /etc/hosts 
127.0.0.1 newHostName
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

और फिर

 rebooting the system

7
इस दो परिवर्तनों के अंत में hostname newHostName, मुझे लगता है कि रिबूट करने के लिए आवश्यक नहीं है
एडाकोस

4
/ Etc / होस्ट फ़ाइल का संपादन आवश्यक नहीं लगता है
jgritty

2
उत्तर को स्वीकार कर लिया गया है, लेकिन पहले, /etc/hostsपरिवर्तन केवल होस्टनाम को बदलने योग्य बनाने के लिए है, इसे बदलने के लिए नहीं, और /etc/sysconfig/networkओपी में जैसा दिखता है। क्या कोई यह बता सकता है कि इसे बनाने के लिए ओपी को बदलाव की क्या जरूरत थी?
पावेल Paमेरदा

3
मुझे लगता है कि एक सही उत्तर प्रश्न के उत्तर के रूप में काम करना चाहिए। प्रश्न से डेटा को दोहराते हुए अच्छा है जब तक कि उत्तर कहता है कि ओपी ने इसे सही ढंग से कॉन्फ़िगर किया है, लेकिन नए कॉन्फ़िगरेशन (जैसे रिबूट) को लोड करने के लिए आवश्यक क्रियाएं नहीं की हैं।
पावेल Paमेरदा

2
रिबूट आवश्यक नहीं है। स्ट्रेस -f होस्टनाम ब्ला देखें। कर्नेल को तुरंत संदेश मिल जाता है। / etc / मेजबान कम से कम CentOS 6.5 (और 7) में होस्ट के होस्टनाम को प्रभावित नहीं करते हैं। और यह उत्तर गलत है कि यह होस्टनाम कमांड को याद कर रहा है जो कि इसके होस्ट के नाम के कर्नेल को सूचित करता है।
माइक एस

65

CentOS 7 का समाधान यहां पाया जा सकता है :

hostnamectl set-hostname <new hostname>

3
CentOS Linux रिलीज़ 7.2.1511
AJN

..और रिबूट, मेरे मामले में।
पश्चिमीगंज

मुझे नहीं लगता कि आपको काम करने के लिए सिर्फ रिबूट करने की आवश्यकता है
FearlessHyena

5
सवाल CentOS 6.5 के बारे में है। CentOS 7 एक पूरी तरह से अलग जानवर है और यह जवाब यहाँ नहीं है।
हराल्ड

15

आप एक ही कमांड से अपना होस्टनाम बदल सकते हैं।

  • कमांड: hostname- यह पुराने होस्टनाम को प्रदर्शित करता है
  • कमांड: hostname <new name>-यह नया होस्टनाम सेट करता है

उदाहरण

$ hostname mynewhost

रिबूट के पार नया होस्टनाम जारी रखने के लिए

नीचे की तरह देखने के लिए संपादन / आदि / sysconfig / नेटवर्क फ़ाइल

NETWORKING=yes
HOSTNAME=myhostanme

वीडियो की मदद के लिए


मेरा मानना ​​है कि यह सबसे सही उत्तर है। उस चल को जोड़ने के लायक: आदमी hostname; सुंदर, क्षणिक, स्थिर आदि की स्थापना के लिए अधिक विकल्प दिखाता है
ekerner

मुझे लगता है कि रिबूट पर लगातार बने रहना पर्याप्त नहीं है। आपको संशोधित / आदि / sysconfig / नेटवर्क फ़ाइल भी करने की आवश्यकता है।
पॉज़िन्यूक्स

6

CentOS 6.5 के लिए पहले से दिए गए उत्तरों के अलावा,

CentOS 7 में होस्टनाम ( और अन्य नेटवर्क सेटिंग्स ), नेटवर्क मैनेजर का हिस्सा बदलने के लिए एक टेक्स्ट आधारित यूजर इंटरफेस टूल भी है :

nmtui

इस यूजर इंटरफेस को शुरू करता है:

यहाँ छवि विवरण दर्ज करें

जिसके पास एक विकल्प है Set system hostname

NetworkManager का टेक्स्ट यूजर इंटरफेस, CentOS-7-x86_64-DVD-1511.iso इमेज, बेस इनस्टॉल द्वारा डिफ़ॉल्ट रूप से इंस्टॉल किया गया है। यदि आपका यह नहीं है, तो आप इसे निम्न आदेश के साथ स्थापित कर सकते हैं:

yum install NetworkManager-tui

2

मुझे मशीनों के एक समूह के लिए ऐसा करना पड़ा। यहां आपकी सहायता करने के लिए एक सरल अजगर स्क्रिप्ट है। बस स्क्रिप्ट के पहले तर्क के रूप में नए होस्ट का नाम प्रदान करें।

उदाहरण के लिए: यदि आप स्क्रिप्ट में बदलाव करते हैं तोहॉस्टहोम इसे फिर से चलाएं

changeHost.py [NewHostName]

जहाँ NewHostName आपका इच्छित होस्ट नाम है।

इस स्क्रिप्ट को रूट के रूप में चलाना सुनिश्चित करें।



#!/usr/bin/env python
import os

from sys import argv
script, newHostName = argv

print "Modifying network file..."
target = open("/etc/sysconfig/network","w")
target.truncate()
target.write("NETWORKING=yes\n")
target.write("HOSTNAME=")
target.write(newHostName)
target.write("\n")
target.close()

print "Modifying hosts file..."
target = open("/etc/hosts","w")
target.truncate()
target.write("127.0.0.1 ")
target.write(newHostName)
target.write(" localhost.localdomain localhosts\n")
target.close()

print "Set new hostname to %r" % newHostName
os.system('/bin/hostname ' + newHostName)

2
हम्म जो एक बदसूरत स्क्रिप्ट है। मुझे आश्चर्य है कि क्या कठपुतली hostname से निपटने के लिए एक बेहतर उपकरण होगा।
रेड क्रिकेट


4
यह स्क्रिप्ट लगभग 3 गुना लंबी है जब तक कि इसे होना चाहिए। पायथन नौकरी के लिए गलत उपकरण है। एक बैश स्क्रिप्ट बहुत छोटी, अधिक पठनीय और अधिक रख-रखाव वाली होगी।
माइक एस

2

CentOS 6.5 पर होस्टनाम बदलने के लिए कोई रिबूट की आवश्यकता नहीं है।

निम्न आदेश नए होस्टनाम के कर्नेल को सूचित करता है:

# hostname new_hostname

निम्न आदेश ताकि होस्टनाम रीबूट में लगातार बना रहे:

# sed -i "s/^HOSTNAME=.*/HOSTNAME=new_hostname/g" /etc/sysconfig/network

2

यदि आप सेंटोस 7.x पर हैं। निम्न कमांड डालें।

nmtui

इसमें सेट सिस्टम होस्टनाम का विकल्प होगा । इस पर एंटर दबाएं।

अपना मेजबाननाम लिखें।

ओके पर क्लिक करें।

अब, कमांड होस्टनाम के साथ जांचें ।

इसमें आपका सेव किया हुआ होस्टनाम होगा।


1

दुर्भाग्य से मैं प्रविष्टियों को बनाकर होस्टनाम को बदलने में सक्षम नहीं था:

/ Etc / sysconfig / network

तथा

/ etc / होस्ट फ़ाइल

हालाँकि मैं नीचे फ़ाइल को संपादित करके होस्टनाम बदलने में सक्षम था:

vi /etc/hostname
server01

होस्टनाम को पुनः आरंभ और परीक्षण करें:

hostname

2
/etc/hostnameसेंटोस 7 में मौजूद ओपी बताते हुए टिप्पणी पर ध्यान दें , लेकिन सेंटोस 6 नहीं
फॉक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.