Centos7針對不同的服務(wù)提供了大量的命令設(shè)定模式笋婿。另外,萬一你的Linux主機被cracker入侵顿颅、或是由于硬件損壞而掛掉了缸濒,這時候如何快速恢復(fù)系統(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ǎng)卡名稱會是這樣分類的:
eno1:代表由主板BIOS內(nèi)建的網(wǎng)卡戈盈;
ens1:代表由主板BIOS內(nèi)建的PCI-E界面的網(wǎng)卡奠衔;
enp2s0:代表PCI-E界面的獨立網(wǎng)卡;
eth0:如果上述名稱都不適用則會到默認(rèn)編號塘娶;
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
name ? ?#就是連接代號,通常與后面網(wǎng)卡DEVICE一樣矾踱;
UUID ? ?#這個是特殊的設(shè)備識別恨狈,不用管它;
TYPE ? ?#這是網(wǎng)卡類型(802.3以太網(wǎng))介返;
DEVICE ? ?#網(wǎng)卡名稱
nmcli connection show eth0
比較重要的幾個參數(shù):
connection.autoconnect [yes|no]:是否開機時啟動這個連接拴事,默認(rèn)通常是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
自動獲取IP
如果網(wǎng)絡(luò)是由DHCP協(xié)議所分配牲证,那就只需要將ipv4.method改為auto就行。
主機名修改
hostnamectl?sethostname zhang.centos7
1.2关面、日期與時間設(shè)置
時區(qū)的顯示與設(shè)置
地球是圓的坦袍,每個時刻每個地方的時間都不一樣。為了統(tǒng)一時間等太,就有所謂的“GMT”(格林尼治時間)捂齐。通過 timedatectl 命令查看目前時區(qū)及其設(shè)置。
timedateclt
#CST?北京時間缩抡;
#UTC UTC時間奠宜,也可稱為格林尼治標(biāo)準(zhǔn)時間;
#Timezone 時區(qū)瞻想;
#NTP ntp網(wǎng)絡(luò)時間同步压真;
timedatectl list-timezones | grep -i shanghai ? #查找上海時區(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)默認(rèn)的NTP自動網(wǎng)絡(luò)校時會啟動NTP協(xié)議相關(guān)軟件佃迄,會多開幾個port泼差,因此可以利用ntpdate手動校時,寫入crontab也不錯呵俏。
ntpdate timeserver ? ?# timeserver位所在地區(qū)提供的標(biāo)準(zhǔn)時間服務(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)型號澡绩,尤其在我們硬件升級上相當(dāng)有幫助。
dmidecode -t?
dmidecode -t 1
Tips:先使用dmidecode查看主機版型插槽規(guī)格俺附,在購買需要的硬件肥卡。
2.2、硬件資源的收集與分析
系統(tǒng)硬件是由操作系統(tǒng)所管理的事镣,Linux kernel在開機時就能夠檢測硬件并載入適當(dāng)?shù)哪K來驅(qū)動硬件步鉴。而內(nèi)核所檢測到的各項硬件設(shè)備,后來就會被記錄在/proc與/sys當(dāng)中蛮浑。包括/proc/cpuinfo唠叛,/proc/partitions,/proc/interrupts等等沮稚。
除了直接查看/proc下面的文件內(nèi)容外艺沼,Linux有提供幾個簡單的指令來將內(nèi)核所檢測到的硬件叫出來。常見的指令如下:
gdisk? ? #可使用 gdisk -l將分割表列出蕴掏;
dmesg ? ?#查看內(nèi)核運作過程當(dāng)中輸出的各項信息障般;
vmstat ? ?#分析系統(tǒng)(CPU/RAM/IO)目前的狀態(tài);
lspci ? ?#列出整個主機系統(tǒng)的PCI設(shè)備盛杰,詳細(xì)列出目前的硬件設(shè)備的詳細(xì)信息挽荡;
lsusb ? ?#列出目前系統(tǒng)上面各個USB接口的狀態(tài);
iostat ? ?# 及時列出整個CPU與周邊設(shè)備的I/O狀態(tài)即供;
lspci -s 02:03.0 -vv ? ?#查看這個設(shè)備的詳細(xì)信息
#這串?dāng)?shù)字代表設(shè)備的匯流排定拟、 插槽與相關(guān)函數(shù)功能《旱眨可通過對比/usr/share/hwdata/pci.ids文件來了解該串?dāng)?shù)字的意義青自。
update-pciids ? ?#使用該命令來更新pci.ids文件
avg-cpu:顯示CPU的當(dāng)前信息株依;
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就無法下達(dá)指令总寻,讓磁盤進行自我健康檢查。VMware虛擬機暫不支持這個功能梢为。
smartctl ? ?#smartd提供的命令
smartctl -a /dev/sda ? ?#顯示全部磁盤信息
smartctl -t /dev/sda ? ?#讓磁盤進行一次自檢
#因為在磁盤自檢時I/O會比較高渐行,因此不建議在系統(tǒng)忙碌的時候進行
3、備份要點
備份是個很重要的工作铸董,備份是系統(tǒng)損毀時等待救援的救星祟印!此外,哪些文件最需要備份呢粟害?備份使用什么設(shè)備呢蕴忆?
3.1、備份資料的考慮
事實上悲幅,系統(tǒng)可能會由于不預(yù)期的傷害而導(dǎo)致系統(tǒng)發(fā)生錯誤套鹅。如硬件故障、軟件故障汰具、cracker入侵卓鹿、認(rèn)為操作不當(dāng)?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默認(rèn)的重要參數(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)的考慮:
如果是完整備份,當(dāng)系統(tǒng)損毀時移稳,只要將完整備份拿出來蕴纳,整個給它倒回去,連同重要的Linux系統(tǒng)文件等个粱,所以不用重新安裝古毛!因此很多企業(yè)用來提供重要服務(wù)的主機都會使用完整備份,可以架設(shè)出一部一模一樣的機器來都许。
增量備份的原則:
我們的系統(tǒng)用的越久稻薇,數(shù)據(jù)量就越巨大。如此一來胶征,完整備份所需要花費的時間與存儲設(shè)備的使用就會相當(dāng)麻煩塞椎。所以,完整備份并不會也不太可能每天都進行睛低。那么每天都需要備份的數(shù)據(jù)該如何進行呢案狠?有兩種方式服傍,一種是增量備份,一種是差異備份骂铁。
所謂的增量備份吹零,指的是系統(tǒng)在進行第一次完整備份后,經(jīng)過一段時間的運作拉庵,比較系統(tǒng)與備份文件之間的差異灿椅,僅備份有差異的文件。而第二次增量備份則與第一次增量備份的數(shù)據(jù)比較钞支,也是僅備份有差異的文件而已阱扬。
由于每次僅與前一次的備份文件比較,因此備份的資料就會少很多伸辟。
那如何還原?如在第三次備份后系統(tǒng)掛掉了馍刮,那首先必須還原到完整備份信夫,再到第二次,再到第三次卡啰。
增量備份使用的軟件:
完整備份常用的工具有dd静稻,cpio,xfsdump/xfsrestore等等匈辱。
dd可以直接讀取磁盤的磁區(qū)而不用理會文件系統(tǒng)振湾,是相當(dāng)良好的備份工具;
cpio是能夠備份所有文件名亡脸,不過押搪,得要配合find或其他文件名的命令才能處理妥當(dāng)。
增量備份就得要額外使用腳本程序來處理了浅碾〈笾荩可以直接進行增量備份的就是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)運作越久嚷缭,離完整備份時間越長,那么該次的差異備份文件可能就越大耍贾。
如果是使用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)能扒,是一個非秤犊剩快速的備份工具。
rsync -av 源 目 ? ?#sync(同步)
rsync -av /home /backupdata/
rsync -av /home /backupdata/ ? ?#再次進行會快很多初斑。如果文件沒有變動辛润,幾乎不會進行任何動作!
4.3见秤、關(guān)鍵數(shù)據(jù)備份
完整備份雖然有許多好處砂竖,但就是需要花費很多時間。僅備份關(guān)鍵數(shù)據(jù)就好鹃答。如果備份當(dāng)時系統(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ā)生一些錯誤论矾。可以再備份前先關(guān)掉這個服務(wù)杆勇,備份完成后再啟動贪壳。
/etc/crontab ? ?#這種方法只有root能用,這種方法更加方便與直接給其他用戶設(shè)置計劃任務(wù)蚜退;
crontab -e ? ?#這種方式所有用戶都可以使用闰靴;
crontab -e 是某個用戶的周期性任務(wù),/etc/crontab是系統(tǒng)的周期性任務(wù)钻注;
5.1蚂且、遠(yuǎn)程備份的script
如果有兩臺以上的Linux主機,那么互相將對方的重要數(shù)據(jù)保存一份在自己的系統(tǒng)中也是不錯的想法幅恋。這樣的話就可以通過sshd這個網(wǎng)絡(luò)服務(wù)杏死。
使用rsync上次備份數(shù)據(jù)。由于rsync可以通過ssh來進行鏡像備份捆交,所以沒有變更的數(shù)據(jù)將不需要上傳淑翼,sshd本身是加密的,就比ftp要好些品追。
6玄括、災(zāi)難恢復(fù)的考慮
備份就是為了防止系統(tǒng)掛掉,但如果系統(tǒng)真的掛了肉瓦,那么該如何進行還原系統(tǒng)呢遭京?
硬件損壞且具有完整備份的數(shù)據(jù)時:
更換好硬件胃惜,之后將備份的系統(tǒng)還原回去就好了。
由于軟件的問題產(chǎn)生的被攻破安全事件:
既然系統(tǒng)的損毀是由于被攻擊哪雕,此刻就算恢復(fù)到了正常的系統(tǒng)船殉,那么系統(tǒng)依然存在被攻破的風(fēng)險。最好進行如下操作:
1热监,斷網(wǎng)捺弦,將系統(tǒng)完整備份到其他設(shè)備上,以備查驗孝扛;
2列吼,查閱日志文件,嘗試找出各種可能的問題苦始;
3寞钥,安裝新系統(tǒng);
4陌选,系統(tǒng)升級與防火墻規(guī)則的指定理郑;
5,修復(fù)日志文件中存在的bug咨油;
6您炉,進行各項服務(wù)與相關(guān)文件的恢復(fù);
7役电,正式上線提供服務(wù)赚爵,并開始測試。
系統(tǒng)安全造成的問題可大可小法瑟,一定要找出問題并予以解決冀膝。