Linux系統(tǒng)設(shè)置、硬件信息、備份策略

Centos7針對不同的服務(wù)提供了大量的命令設(shè)定模式。另外,萬一你的Linux主機被cracker入侵、或是由于硬件損壞而掛掉了,這時候如何快速恢復系統(tǒng)呢?

文件與數(shù)據(jù)是最值錢的東西!


1、系統(tǒng)基本設(shè)置

包括語系、日期、時間、網(wǎng)絡(luò)等,在centos6.x前可以使用setup這個圖形界面來設(shè)置。但在Centos7.x就不同了。因為Centos7.x已經(jīng)將很多軟件的指令做的很好了。

1.1、網(wǎng)絡(luò)設(shè)置(static與DHCP)

手動設(shè)置IP(static)

IP;

netmask;

gateway;

DNS;

自動獲取(DHCP)

只需設(shè)置網(wǎng)卡上網(wǎng)方式為DHCP即可;

快捷DHCP命令:dhclient?

目前主流的網(wǎng)卡是使用以太網(wǎng)協(xié)議開發(fā)出來的以太網(wǎng)卡(Ethernet),因此Linux稱呼這種網(wǎng)絡(luò)介質(zhì)為ethN(N為數(shù)字)如eth0為我的第一張網(wǎng)卡。


Centos7開始對網(wǎng)卡編號有了另一套規(guī)則,網(wǎng)卡的界面代號現(xiàn)在與網(wǎng)卡的來源有關(guān)?;旧暇W(wǎng)卡名稱會是這樣分類的:

eno1:代表由主板BIOS內(nèi)建的網(wǎng)卡;

ens1:代表由主板BIOS內(nèi)建的PCI-E界面的網(wǎng)卡;

enp2s0:代表PCI-E界面的獨立網(wǎng)卡;

eth0:如果上述名稱都不適用則會到默認編號;

ifconfig -a ? ?#顯示出全部網(wǎng)卡


手動設(shè)置IP網(wǎng)絡(luò)參數(shù)

手動設(shè)置IP、netmask、gateway、DNS等等。然后通過nmcli來處理!你得知道nmcli是通過一個連接代號的名稱來設(shè)置是否要上網(wǎng),而每個連接代號會有個網(wǎng)卡代號,這兩個東西通常設(shè)置為相同就是了。

#nmcli(command-line tool for controlling NetworkManager)

nmcli connection show

nmcli

name ? ?#就是連接代號,通常與后面網(wǎng)卡DEVICE一樣;

UUID ? ?#這個是特殊的設(shè)備識別,不用管它;

TYPE ? ?#這是網(wǎng)卡類型(802.3以太網(wǎng));

DEVICE ? ?#網(wǎng)卡名稱


nmcli connection show eth0

查看詳細eth0信息


比較重要的幾個參數(shù):

connection.autoconnect [yes|no]:是否開機時啟動這個連接,默認通常是yes;

ipv4.method [auto|manaual] ? ?#自動還是手動設(shè)置網(wǎng)絡(luò)參數(shù);

ipv4.dns [dns_server_ip] ? ?#DNS的地址;

ipv4.addresses [ip/netmask] ? ?#就是ip/netmask的組合形式;

ipv4.gateway [gw_ip] ? ?#網(wǎng)關(guān)地址;


nmcli connection modify eth0\ ipv4.geteway 1.1.1.1 \ xxx?

nmcli connection up eth0

nmcli connection show eth0

設(shè)置eth0網(wǎng)卡的值


自動獲取IP

如果網(wǎng)絡(luò)是由DHCP協(xié)議所分配,那就只需要將ipv4.method改為auto就行。

自動獲取ip


主機名修改

hostnamectl?sethostname zhang.centos7

hostnamectl set-hostname xxx


1.2、日期與時間設(shè)置

時區(qū)的顯示與設(shè)置

地球是圓的,每個時刻每個地方的時間都不一樣。為了統(tǒng)一時間,就有所謂的“GMT”(格林尼治時間)。通過 timedatectl 命令查看目前時區(qū)及其設(shè)置。

timedatectl

timedateclt

#CST?北京時間;

#UTC UTC時間,也可稱為格林尼治標準時間;

#Timezone 時區(qū);

#NTP ntp網(wǎng)絡(luò)時間同步;

timedatectl


timedatectl list-timezones | grep -i shanghai ? #查找上海時區(qū)是否存在

查找時區(qū)

timedatectl set-timezone Asia/Shanghai ? ?#設(shè)置時區(qū)


時間的調(diào)整

timedatectl set-time "year-month-day hour:min:sec"

過去使用 "date" 命令修改日期后,還得要使用 hwclock 去修正BIOS記錄的時間。而 timedatectl 只要設(shè)置過后就搞定,方便很多。


用ntpdate手動網(wǎng)絡(luò)校時

因為系統(tǒng)默認的NTP自動網(wǎng)絡(luò)校時會啟動NTP協(xié)議相關(guān)軟件,會多開幾個port,因此可以利用ntpdate手動校時,寫入crontab也不錯。

ntpdate timeserver ? ?# timeserver位所在地區(qū)提供的標準時間服務(wù)器

ntpdate cn.pool.ntp.org

hwclock -w ? ?#將正確的時間寫入BIOS內(nèi)


crontab -e

59 23 * * * /sbin/ntpdate cn.pool.ntp.org



1.3、語系設(shè)置

可以使用LANG或locale查看目前語系信息,其實/etc/locale.conf就是語系的配置文件。此外,系統(tǒng)的語系可能與你使用的軟件的語系是可以不一樣的。此外,還可以使用localectl命令來查看:

localectl ? ? #系統(tǒng)語系

locale ? ?#軟件語系

localectl?

set-locale LOCALE... ? ?#設(shè)置系統(tǒng)語系

list-locales ? ? #查詢系統(tǒng)語系

localectl set-locale LANG=zh_CN.utf8


systemctl isolate multi-user.target

#systemctl isolate graphical.target

#isolate NAME? ? ? ? ? ? ? ? ? ? Start one unit and stop all others


1.4、防火墻簡易設(shè)定

防火墻其實是一種網(wǎng)絡(luò)資料的過濾方式,它可以依據(jù)你服務(wù)器啟動的服務(wù)來設(shè)置是否放行,也能夠針對你信任的用戶來放行。包括圖形界面的防火墻配置合命令行界面的防火墻配置。

firewall-cmd ?--help ? ?#命令太多了



2、服務(wù)器硬件信息查看

升級或更換你的主機硬件的時候,你的主板插槽還夠嗎?內(nèi)存支持到多大?需要DDR3還是DDR4等等?如果不想拆機,那如何利用軟件去查看?


2.1、以系統(tǒng)內(nèi)建的 dmidecode 解析硬件設(shè)備

系統(tǒng)內(nèi)建的 dmidecode 軟件可以解析CPU、主板、內(nèi)存等相關(guān)型號,尤其在我們硬件升級上相當有幫助。

dmidecode -t?

dmidecode

dmidecode -t 1

Tips:先使用dmidecode查看主機版型插槽規(guī)格,在購買需要的硬件。


2.2、硬件資源的收集與分析

系統(tǒng)硬件是由操作系統(tǒng)所管理的,Linux kernel在開機時就能夠檢測硬件并載入適當?shù)哪K來驅(qū)動硬件。而內(nèi)核所檢測到的各項硬件設(shè)備,后來就會被記錄在/proc與/sys當中。包括/proc/cpuinfo,/proc/partitions,/proc/interrupts等等。

除了直接查看/proc下面的文件內(nèi)容外,Linux有提供幾個簡單的指令來將內(nèi)核所檢測到的硬件叫出來。常見的指令如下:

gdisk? ? #可使用 gdisk -l將分割表列出;

dmesg ? ?#查看內(nèi)核運作過程當中輸出的各項信息;

vmstat ? ?#分析系統(tǒng)(CPU/RAM/IO)目前的狀態(tài);

lspci ? ?#列出整個主機系統(tǒng)的PCI設(shè)備,詳細列出目前的硬件設(shè)備的詳細信息;

lsusb ? ?#列出目前系統(tǒng)上面各個USB接口的狀態(tài);

iostat ? ?# 及時列出整個CPU與周邊設(shè)備的I/O狀態(tài);

lspci命令

lspci -s 02:03.0 -vv ? ?#查看這個設(shè)備的詳細信息

#這串數(shù)字代表設(shè)備的匯流排、 插槽與相關(guān)函數(shù)功能。可通過對比/usr/share/hwdata/pci.ids文件來了解該串數(shù)字的意義。

update-pciids ? ?#使用該命令來更新pci.ids文件

lspci


iostat

avg-cpu:顯示CPU的當前信息;

tps:平均每秒鐘的傳輸次數(shù);

KB_read/s:開機到現(xiàn)在平均的讀取單位;

KB_wrtn/s:開機到現(xiàn)在平均的寫入單位;

KB_read:開機到現(xiàn)在,總共讀取的文件單位;

KB_wrtn:開機到現(xiàn)在,總共寫入的文件單位;

通過 lspci 和 iostat 可以簡略的了解到目前系統(tǒng)的狀態(tài)還有目前主機硬件資料。


2.3、了解磁盤的健康狀況

其實 linux Server 最重要的就是“文件安全”了,而文件都是放在磁盤中。所以需要時刻了解磁盤健康狀況。

這個就得說一下?smartd?的服務(wù)。

smart(Self-Monitoring,Analysis and Reporting Technology System),主要用來監(jiān)控目前的ATA與SCSI界面的磁盤。只是被監(jiān)控的磁盤必須要支持smart協(xié)議才行,否則smartd就無法下達指令,讓磁盤進行自我健康檢查。VMware虛擬機暫不支持這個功能。

smartctl ? ?#smartd提供的命令

smartctl -a /dev/sda ? ?#顯示全部磁盤信息

smartctl -t /dev/sda ? ?#讓磁盤進行一次自檢

#因為在磁盤自檢時I/O會比較高,因此不建議在系統(tǒng)忙碌的時候進行



3、備份要點

備份是個很重要的工作,備份是系統(tǒng)損毀時等待救援的救星!此外,哪些文件最需要備份呢?備份使用什么設(shè)備呢?

3.1、備份資料的考慮

事實上,系統(tǒng)可能會由于不預(yù)期的傷害而導致系統(tǒng)發(fā)生錯誤。如硬件故障、軟件故障、cracker入侵、認為操作不當?shù)纫蛩厮隆?/p>

備份因素考慮:

備份哪些文件;

選擇什么備份的設(shè)備; ? ?#同一磁盤不同分區(qū),另一個磁盤,還是網(wǎng)絡(luò)備份?哪一種最快,最便宜,保存的最久?

考慮備份的方式; ? ?#完整備份還是僅差異備份

備份的頻率;

備份使用的工具; ? ?#tar,dump,dd,cpio等

3.2、備份哪些Linux數(shù)據(jù)

一般來說,備份最重要的數(shù)據(jù)而不用整個系統(tǒng)都備份。具有備份意義的文件通常分為兩類,一類是系統(tǒng)基本配置文件,一類則是數(shù)據(jù)信息。

操作系統(tǒng)本身需要備份的文件:

賬號與系統(tǒng)配置文件 ;

用戶主目錄,郵件目錄等;

/etc/* ? ?#基本上Linux默認的重要參數(shù)都放在/etc/下;

/home/*;

/var/spool/mail/;

/var/spoll/{ at|cron };

/boot/;

/root/;

如果額外安裝了其他軟件/usr/local或/opt也可以備份一下;

網(wǎng)絡(luò)服務(wù)的數(shù)據(jù)庫方面:

如果你的網(wǎng)絡(luò)軟件安裝都是以原廠提供的為主,那么配置文件大多是在/etc下;如果大多來自自行安裝,那么/usr/local這個目錄就十分重要了。

軟件本身的配置文件,如/etc/,/usr/local/;

軟件服務(wù)提供的服務(wù),如WWW;

WWW數(shù)據(jù),/var/www或/srv/www,以及系統(tǒng)用戶主目錄;

數(shù)據(jù)庫,MySQL,Mongo,Redis等;

推薦備份的目錄:

/etc;

/home;

/root;

/var;

/usr/local;

3.3、選擇備份設(shè)備

需要考慮備份的磁盤被盜,容量,速度或其他問題。

異地備份系統(tǒng),就是將你備份的數(shù)據(jù)放到其他地方去,缺點就是需要一定的帶寬;

存儲設(shè)備的考慮,對速度要求真么樣,對存儲容量大小需要多少;



4、備份的種類、頻率與工具的選擇

備份可粗略分為 “增量備份”和“差異備份”這兩種。如果你想在系統(tǒng)出錯時重新安裝更新的系統(tǒng)時,僅備份關(guān)鍵數(shù)據(jù)也就可以了。

4.1、完整備份的增量備份(Incremental backup)

還原系統(tǒng)的考慮:

如果是完整備份,當系統(tǒng)損毀時,只要將完整備份拿出來,整個給它倒回去,連同重要的Linux系統(tǒng)文件等,所以不用重新安裝!因此很多企業(yè)用來提供重要服務(wù)的主機都會使用完整備份,可以架設(shè)出一部一模一樣的機器來。

增量備份的原則:

我們的系統(tǒng)用的越久,數(shù)據(jù)量就越巨大。如此一來,完整備份所需要花費的時間與存儲設(shè)備的使用就會相當麻煩。所以,完整備份并不會也不太可能每天都進行。那么每天都需要備份的數(shù)據(jù)該如何進行呢?有兩種方式,一種是增量備份,一種是差異備份。

所謂的增量備份,指的是系統(tǒng)在進行第一次完整備份后,經(jīng)過一段時間的運作,比較系統(tǒng)與備份文件之間的差異,僅備份有差異的文件。而第二次增量備份則與第一次增量備份的數(shù)據(jù)比較,也是僅備份有差異的文件而已。

增量備份(incremental backup)示意圖

由于每次僅與前一次的備份文件比較,因此備份的資料就會少很多。

那如何還原?如在第三次備份后系統(tǒng)掛掉了,那首先必須還原到完整備份,再到第二次,再到第三次。

增量備份使用的軟件:

完整備份常用的工具有dd,cpio,xfsdump/xfsrestore等等。

dd可以直接讀取磁盤的磁區(qū)而不用理會文件系統(tǒng),是相當良好的備份工具;

cpio是能夠備份所有文件名,不過,得要配合find或其他文件名的命令才能處理妥當。

增量備份就得要額外使用腳本程序來處理了??梢灾苯舆M行增量備份的就是xfsdump這個指令。

舉個栗子:

dd if=/dev/sda of=/dev/sdb


# 用dd來將/dev/sda備份到完全一模一樣的/dev/sdb磁盤上

#由于dd是讀取磁區(qū),所以/dev/sdb這顆磁碟可以不必格式化!非常的方便!

#同理,dd也可用于刻錄系統(tǒng)

# 只是你會等非常非常久!因為dd 的速度比較慢!

find / -print | cpio -covB > /dev/st0 ? ?#備份到st0

cpio -iduv < /dev/st0 ? ?#還原

假設(shè)/home為一個獨立的文件系統(tǒng),而/backupdata也是一個獨立的用來備份的文件系統(tǒng),那如何使用dump將/home完整備份到/backupdata呢?

xfsdump -l 0 -L 'full' -M 'full' -f /backupdata/home.dump /home ? ?#完整備份

xfsdump -l 1 -L 'full-1' -M 'full-1' -f /backupdata/home.dump1 /home

其實tar也可以用來進行完整備份。假設(shè)/backupdata是個獨立的文件系統(tǒng),你想要將整個系統(tǒng)除/proc,/tmp目錄外都備份。

tar --exclude /proc --ecclude /tmjp -jcvp -f /backupdata/bakupsystem.tar.bz2 /

#exclude(排除)


4.2、完整備份的差異備份(Differential backup)

差異備份與累積備份有點類似,也是需要進行第一次的完整備份后才能夠進行,只是差異備份指的是:每次的備份都是與原始的完整備份比較的結(jié)果。所以系統(tǒng)運作越久,離完整備份時間越長,那么該次的差異備份文件可能就越大。

差異備份(differential backup)示意圖

如果是使用xfsdump的話,那么每次備份的等級(level)就都是level 1,tar則要使用-N選項。

tar -N '2017-06-06' -jpcv -f /backupdata/home.tar.bz2 /home

#只要在比20170606還要新的在/home目錄下文件才會被打包進home.tar.bz2中;

#目錄還是會被記錄下來,但是目錄內(nèi)舊的文件不會備份;

此外,也可以通過rsync命令來進行鏡像備份。rsync可以對兩個目錄進行鏡像(mirror),是一個非??焖俚膫浞莨ぞ摺?/p>

rsync -av 源 目 ? ?#sync(同步)

rsync -av /home /backupdata/

rsync -av /home /backupdata/ ? ?#再次進行會快很多。如果文件沒有變動,幾乎不會進行任何動作!


4.3、關(guān)鍵數(shù)據(jù)備份

完整備份雖然有許多好處,但就是需要花費很多時間。僅備份關(guān)鍵數(shù)據(jù)就好。如果備份當時系統(tǒng)已經(jīng)被攻破,那么背后的文件是有問題的,還原回去也是有問題的系統(tǒng)。

不過,備份關(guān)鍵數(shù)據(jù)最麻煩的地方其實就是還原。尤其在SELinux方面的安全性。

備份關(guān)鍵文件推薦使用tar,如果想要分門別類將各種服務(wù)的不同的時間備份使用不同的文件名,配合date指令是非常好用的。

tar -jpcvf mysql. `date +%Y%m%d`.tar.bz2 /var/lib/mysql

備份是非常重要的工作,你可不希望想到時才進行吧。交個系統(tǒng)自動處理就對啦。自己便是script,配合crontab執(zhí)行。



5、備份策略

每部主機的任務(wù)都不相同,重要性也不一樣,因此每個人的備份思考角度都不一樣!但有些備份策略是非常有趣的,包括使用多個磁盤來自動備份企業(yè)數(shù)據(jù)。

鳥哥的想法 ------>并不需要把整個系統(tǒng)完整的備份下來,因為太耗時了。而且也沒有這個必要,所以通常只需要備份重要的文件就夠了。一個是每日備份經(jīng)常性變動的重要數(shù)據(jù),一個是每周備份不常變動的數(shù)據(jù)。所以就需要寫兩個scripts。

vi ~/backupday.sh

vi ~/backupwk.sh

vi /etc/crontab

#有些時候,在進行備份時,備份的文件可能同時被其他的網(wǎng)絡(luò)服務(wù)所修改暫用,此時可能就會發(fā)生一些錯誤??梢栽賯浞萸跋汝P(guān)掉這個服務(wù),備份完成后再啟動。

/etc/crontab ? ?#這種方法只有root能用,這種方法更加方便與直接給其他用戶設(shè)置計劃任務(wù);

crontab -e ? ?#這種方式所有用戶都可以使用;

crontab -e 是某個用戶的周期性任務(wù),/etc/crontab是系統(tǒng)的周期性任務(wù);

5.1、遠程備份的script

如果有兩臺以上的Linux主機,那么互相將對方的重要數(shù)據(jù)保存一份在自己的系統(tǒng)中也是不錯的想法。這樣的話就可以通過sshd這個網(wǎng)絡(luò)服務(wù)。

使用rsync上次備份數(shù)據(jù)。由于rsync可以通過ssh來進行鏡像備份,所以沒有變更的數(shù)據(jù)將不需要上傳,sshd本身是加密的,就比ftp要好些。



6、災(zāi)難恢復的考慮

備份就是為了防止系統(tǒng)掛掉,但如果系統(tǒng)真的掛了,那么該如何進行還原系統(tǒng)呢?

硬件損壞且具有完整備份的數(shù)據(jù)時:

更換好硬件,之后將備份的系統(tǒng)還原回去就好了。

由于軟件的問題產(chǎn)生的被攻破安全事件:

既然系統(tǒng)的損毀是由于被攻擊,此刻就算恢復到了正常的系統(tǒng),那么系統(tǒng)依然存在被攻破的風險。最好進行如下操作:

1,斷網(wǎng),將系統(tǒng)完整備份到其他設(shè)備上,以備查驗;

2,查閱日志文件,嘗試找出各種可能的問題;

3,安裝新系統(tǒng);

4,系統(tǒng)升級與防火墻規(guī)則的指定;

5,修復日志文件中存在的bug;

6,進行各項服務(wù)與相關(guān)文件的恢復;

7,正式上線提供服務(wù),并開始測試。

系統(tǒng)安全造成的問題可大可小,一定要找出問題并予以解決。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容