Linux操作系統下/etc/hosts文件配置方法
1、關於/etc/host,主機名和IP配置文件
Hosts - The static table lookup for host name(主機名查詢靜態表)
hosts文件是Linux系統中一個負責IP地址與域名快速解析的文件,以ASCII格式保存在「/etc」目錄下,文件名為「hosts」(不同的linux版本,這個配置文件也可能不同。比如Debian的對應文件是/etc/hostname)。
通常可以將常用的域名和IP地址映射加入到hosts文件中,實現快速方便的訪問。
2、配置文件
這個文件可以配置主機ip及對應的主機名,對於伺服器類型的linux系統其作用還是不可忽略的。
Linux主機名的相關配置文件就是/etc/hosts;這個文件告訴本主機哪些域名對應那些ip,那些主機名對應哪些ip:
比如文件中有這樣的定義
192.168.1.100 linumu100 test100
假設192.168.1.100是一台網站伺服器,在網頁中輸入http://linumu100或http://test100就會打開192.168.1.100的網頁。
通常情況下這個文件首先記錄了本機的ip和主機名:
127.0.0.1 localhost.localdomain localhost
3、配置文件格式說明
一般/etc/hosts 的內容一般有如下類似內容:
127.0.0.1 localhost.localdomain localhost
192.168.1.100 linmu100.com linmu100
192.168.1.120 ftpserver ftp120
一般情況下hosts文件的每行為一個主機,每行由三部份組成,每個部份由空格隔開。其中#號開頭的行做說明,不被系統解釋。
當然每行也可以是兩部份,即主機IP地址和主機名;比如 192.168.1.100 linmu100。
這里可以稍微解釋一下主機名(hostname)和域名(Domain)的區別:主機名通常在區域網內使用,
通過hosts文件,主機名就被解析到對應ip;域名通常在internet上使用,但如果本機不想使用internet上的域名解析,
4、hosts文件可以幫助解決哪些問題
4.1 遠程登錄linux主機過慢問題
有時客戶端想遠程登錄一台linux主機,但每次登錄輸入密碼後都會等很長一段時間才會進入,這是因為linux主機在返回信息時需要解析ip,
4.2 雙機互連
當兩台主機只是雙機互連時,這時兩台主機都需要設置自己的ip,同時在對方的hosts文件里加入自己的ip和主機名。
5、主機名修改工具hostname;
其實主機名的修改也有專用工具,就是hostname
hostname - show or set the system』s host name
顯示主機名:
# hostname
linmu100
此主機的主機名是linmu100,不加參數是用來顯示當前主機的主機名;
臨時設置主機名:
(1)linux組播數據保存擴展閱讀
什麼是Linux主機名;
無論在區域網還是INTERNET上,每台主機都有一個IP地址,是為了區分此台主機和彼台主機,也就是說IP地址就是主機的門牌號。但IP地址不方便記憶,所以又有了域名。域名只是在公網(INtERNET)中存在(以實驗為目的的區域網域網實驗性除外),每個域名都對應一個IP地址,但一個IP 地址可有對應多個域名。域名類型 Linux sir.org 這樣的;
主機名是用於什麼的呢?在一個區域網中,每台機器都有一個主機名,用於主機與主機之間的便於區分,就可以為每台機器設置主機名,以便於以容易記憶的方法來相互訪問。比如我們在區域網中可以為根據每台機器的功用來為其命名。主機名相關的配置文件:/etc/hosts;
2. Linux主機名配置文件;
主機名的配置文件大多是/etc/hosts ;hosts - The static table lookup for Linux hostname(主機名查詢靜態表);由於 Linux發行版本眾多,與主機名相關的配置文件有時也有所不同。現在我們說說常見版本的主機名配置文件;
2.1 Linux主機名置文件 /etc/hosts解說;
Fedora/Redhat 或以Fedora/Redhat為基礎打包的發行版,主機名配置文件是 /etc/hosts Debian或以Debian為基礎打包的發行版,主機名配置文件是 /etc/Linux hostname 和/etc/hosts Slackware的主機名配置文件是 /etc/hosts 那我們來讀讀 /etc/hosts的內容,看這個文件是用來做什麼的。
hosts 配置文件是用來把主機名字映射到IP地址的方法,這種方法比較簡單。但這種映射只是本地機的映射,也就是說每台機器都是獨立的,所有的計算機都不能相互通過Linux hostname來訪問。註:在debian 中還有一個/etc/Linux hostname的文件,這個文件就是直接把本地主機名寫進去就行了,但要和 /etc/hosts中的本地主機名保持一致。
第一部份:網路IP地址;第二部份:主機名.域名,注意主機名和域名之間有個半形的點,比如 localhost.localdomain第二部份:主機名(主機名別名) ,其實就是主機名;當然每行也可以是兩部份,就是主機IP地址和主機名;比如 192.168.1.195 debian
127.0.0.1 是回環地址,比如我們不想讓區域網的其它機器看到我們測試的網路程序,就可以用回環地址來測試。 為什麼需要定義域名呢?其實理解也簡單,比如我們有三台主機,每台做不同的事,一台做MAIL伺服器,一台做FTP伺服器,一台做SMB伺服器,所以我們就可以這樣來設計Linux hostname;
② 如何在Linux伺服器中實現數據實時同步及備份
科技時代,任何行業都離不開數據的分析以及統籌,如果掌握了最關鍵的數據及技術,那成功就指日可待,所以數據對於一個企業來說,就是最無形的財富,而一個企業的數據基本都有伺服器保存及管理著,如何保證數據安全,實現數據同步及備份?誠愷科技小編就同大家一起來看看在Linux伺服器中利用rsync配合inotify實現數據實時同步及備份的方法。
rsync:可以鏡像保存整個目錄樹和文件系統。可以很容易做到保持原來文件的許可權、時間、軟硬鏈接等等。第一次同步時 rsync 會復制全部內容,但在下一次只傳輸修改過的文件。
方案:起初用rsync進行數據備份是利用計劃任務,定時執行一下命令實現rsync的同步,但最近開發這邊修改比較頻繁,看來需要實時同步備份來完善備份機制!所以需要利用inotify觸發器來改善!達到一旦指定的位置有了新的變動就將其同步!
環境:
CentOS 6.4 64位
rsync-3.0.9
inotify-tools-3.14
說明:
10.10.1.6 (rsync+inotify)----------網站程序(/data0/htdocs/)
10.10.1.9 (rsync)------------------網站程序備份(/data0/htdocs/)
目的:
實現10.10.1.6的/data0/htdocs/目錄下發生任何變動都將實時同步到10.10.1.9的/data0/htdocs/上(另,這兩台都跑有keepalived+nginx,來實現出現故障自動切換的容災,詳細配置會在後面補上)
一、web伺服器10.10.1.6 (rsync+inotify)
1、准備軟體包
2、安裝Rsync
1)、1234 tar-zxvf rsync-3.0.9.tar.gz
2)、cdrsync-3.0.9
3)、./configure--prefix=/usr/local/rsync
4)、make;makeinstall
建立密碼認證文件
[root@ftp ~]# echo "111111">/etc/rsyncd/rsyncd.secrets建立密碼認證文件
*其中111111可以自己設置密碼,rsyncd.secrets名字也可以自己設置;
許可權:要將/etc/rsyncd/rsyncd.secrets設置為root擁有, 且許可權為600。
# chmod 600 /etc/rsyncd/rsyncd.secrets
3、安裝inotify
1)、1234 tar-zxvf inotify-tools-3.14.tar.gz
2)、cdinotify-tools-3.14
3)、./configure--prefix=/usr/local/inotify
4)、make;makeinstall
4、創建rsync復制腳本
此項功能主要是將ftp端的目錄/data0/htdocs/里的內容,如果修改了(無論是添加、修改、刪除文件)能夠通過inotify監控到,並通過rsync實時的同步給10.10.1.9的/data0/htdocs里,下面是通過shell腳本實現的。
[root@web ~]# vim /root/shell/rsync.sh
[root@web ~]# chmod u+x /root/shell/rsync.sh
[root@web ~]# setsid /root/shell/rsync.sh &
#後台運行腳本,關閉shell終端繼續後台運行
rsync.sh腳本加入開機啟動項
# echo "/root/shell/rsync.sh" >> /etc/rc.local
防火牆開啟rsync埠:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重啟:
# /etc/init.d/iptables restart
二、備份伺服器10.10.1.9(rsync)
1、准備工作
創建備份目錄:
# mkdir /data0/htdocs
2、安裝rsync(備份主機只安裝rsync)
1)、1234 tar-zxvf rsync-3.0.9.tar.gz
2)、cdrsync-3.0.9
3)、./configure--prefix=/usr/local/rsync
4)、make;makeinstall
3、建立用戶與密碼認證文件
[root@backup ~]# echo "root:111111" > /etc/ rsyncd/rsyncd.secrets
[root@backup ~]# less /etc/rsyncd/rsyncd.secrets
root:111111
注意:
請記住,在10.10.1.6端建立的密碼文件,只有密碼,沒有用戶名;而在10.10.1.9里建立的密碼文件,用戶名與密碼都有。
許可權:要將/etc/rsyncd/rsyncd.secrets設置為root擁有, 且許可權為600。
#chmod 600 /etc/rsyncd/rsyncd.secrets
4、建立rsync配置文件
[root@backup ~]# vim /etc/rsyncd/rsyncd.conf
啟動rsync服務
# /usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf
# ps -ef |grep rsync
Rsync服務加入開機啟動項
# echo "/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf" >> /etc/rc.local
防火牆開啟rsync埠:873
添加:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -jACCEPT
重啟:
# /etc/init.d/iptables restart
完成,其實這個時候數據已經同步了!
測試一下:
由於/data0/htdocs/下涉及到一些公司信息,所以就以/data0/htdocs/tmp/為例
主機名可以區別是兩台機器,裡面的內容完全一直,連文件的屬性都一樣
再對裡面修改一下試試,創建一個文件,然後刪除user目錄試試