明明白白你的Linux服務(wù)器——技巧篇
原創(chuàng)【51CTO獨(dú)家特稿】本文是又一篇撫琴煮酒的《明明白白你的Linux/Unix服務(wù)器》系列,總結(jié)一些其他的心得技巧。
眾所周所,現(xiàn)在搞系統(tǒng)運(yùn)維的一般會(huì)區(qū)分二種環(huán)境,一種是開(kāi)發(fā)環(huán)境,我們一般稱之為內(nèi)網(wǎng),用的服務(wù)器系統(tǒng)一般是FreeBSD8(64位)或Ubuntu系列;一種是運(yùn)維環(huán)境,即我們托管的系統(tǒng)或網(wǎng)站,一般放電信機(jī)房或雙線機(jī)房,我們稱之為外網(wǎng),用的服務(wù)器系統(tǒng)為CentOS5系列(64位)。玩了幾年Linux/UNIX,我這里有幾點(diǎn)心得技巧,可能是大家平時(shí)在工作和學(xué)習(xí)中容易忽略的,特與大家交流分享下,希望能提高大家的運(yùn)維水平。
一、選擇一個(gè)合適的遠(yuǎn)程操作工具
Linux/unix下我推薦X-manager 3.0企業(yè)版,windows2003/2008下我推薦用RA和遠(yuǎn)程桌面。這里稍為介紹下它們的優(yōu)點(diǎn):
X-manager 3.0企業(yè)版
官方網(wǎng)站:http://www.netsarang.com/products/xmg_detail.html
①跟putty不同,它只需要一個(gè)程序窗口就可以同時(shí)控制成百臺(tái)Linux/unix服務(wù)器;
②X-shell的亂碼情況比putty更好;
③X-browser能很好的從windows桌面控制Linux桌面,尤其是操作Linux下的oracle數(shù)據(jù)庫(kù)時(shí);
④X-sftp很方便的和安全的上傳和下載Linux/unix服務(wù)器的東西,尤其是在windowsXP下。
Remote Admin
官方網(wǎng)站:http://www.radmin.com/
撫琴煮酒外出公干時(shí),有幸經(jīng)HP工程推薦使用Remote Admin(以下簡(jiǎn)稱為ra)用來(lái)遠(yuǎn)程管理windows2003機(jī)器,后來(lái)在公司60k的限速環(huán)境下一直運(yùn)行得很好。家里的機(jī)器是二臺(tái)XP機(jī)器,用windows自帶的遠(yuǎn)程桌面效果非常不佳,這時(shí)想起了ra,效果非常好,這里將其使用心得與大家分享交流一番:
①windows的遠(yuǎn)程桌面用于windows2003效果不錯(cuò),反而用于xp效果不佳:局域網(wǎng)連接速度慢,鼠標(biāo)有延遲情況等,這應(yīng)該有由于系統(tǒng)自身的bug引起的;因?yàn)閷?duì)比公司局域網(wǎng)中windows2003的遠(yuǎn)程桌面,完全沒(méi)有這種現(xiàn)象;
②二臺(tái)XP之間共享文件很麻煩,而且傳輸速度相當(dāng)慢;用于ra的File transfer效果就不一樣了,撫琴煮酒有了這個(gè)后,基本放充了xp的網(wǎng)上鄰居了。以前如果有超過(guò)10G的連續(xù)劇要共享的話,用飛秋和飛鴿在XP下傳輸速度居然都很慢,改用ra后速度有明顯提高;
③每次用完遠(yuǎn)程桌面后,被控機(jī)必須輸入管理員密碼才能進(jìn),而ra可以選擇性的是否鎖定,這點(diǎn)設(shè)計(jì)我感覺(jué)反而更人性化;
④同事從公司遠(yuǎn)程上傳大約SQL Server2008的數(shù)據(jù)庫(kù)大約40G,在60K限制的情況下也能很穩(wěn)定的成功上傳,基本上一晚上來(lái)個(gè)無(wú)人值守上傳就OK了,呵呵。
現(xiàn)在內(nèi)網(wǎng)我就用遠(yuǎn)程桌面,外網(wǎng)windows2003服務(wù)器操縱時(shí)我喜歡用RA。
二、小心謹(jǐn)慎的使用X-manager
使用X-manager時(shí)需要注意區(qū)別三種環(huán)境,一般為虛擬機(jī)環(huán)境、內(nèi)網(wǎng)環(huán)境、外網(wǎng)環(huán)境。喜歡用X-shell的小伙都應(yīng)該知道,有時(shí)你同時(shí)連上二三十臺(tái)Linux或FreeBSD服務(wù)器時(shí),特別是連上Linux服務(wù)器時(shí),許多SA估計(jì)都跟我一樣,都喜歡用root操作,稍不留心就會(huì)鑄成大禍,這里我有個(gè)心得,如果是操作的的是內(nèi)網(wǎng)或線上環(huán)境服務(wù)器,操作完畢后建議馬上退出登錄,如果需要再操作時(shí)就再登錄,這樣更安全。
#p#
三、用sudo,避免使用root
如果操作的是FreeBSD服務(wù)器,建議用帶sudo權(quán)限的用戶操作(強(qiáng)烈建議不要用root),有時(shí)許多操作對(duì)于系統(tǒng)而言是非常危險(xiǎn)的,尤其是rm -rf,而這個(gè)時(shí)候sudo會(huì)要求輸入你具有root權(quán)限的用戶密碼,提醒你是否執(zhí)行此危險(xiǎn)操作;我從Linux轉(zhuǎn)到FreeBSD下操作時(shí)也非常不習(xí)慣了,現(xiàn)在也喜歡用sudo了,建議你的Linux也可按FreeBSD操作。
四、巧用crontab
如果你的Linux機(jī)器處于IDC機(jī)房,前端沒(méi)有硬件防火墻時(shí)建議開(kāi)啟iptables防護(hù);但此時(shí)就有一個(gè)問(wèn)題,你可能要在處于千里之外的公司調(diào)試iptables腳本,稍一出錯(cuò)后果就很嚴(yán)重。
我在配置一臺(tái)服務(wù)器的iptables時(shí),不小心設(shè)置了某一項(xiàng)錯(cuò)誤參數(shù),結(jié)果鎖定了SSH會(huì)話,導(dǎo)致我們經(jīng)理及另一技術(shù)員連不上服務(wù)器。郁悶之余,看到此法特推薦給大家,極其有用,建議大家學(xué)習(xí)參考:可以配置一計(jì)劃任務(wù)crontab,每5分鐘運(yùn)行一次,即*/5 * * * * root /bin/sh /root/firestop.sh,firestop.sh內(nèi)容為:service iptables stop;這樣即使你的腳本存在錯(cuò)誤設(shè)置(或丟失的)規(guī)則時(shí),也不至于將你鎖在計(jì)算機(jī)外而無(wú)法返回與計(jì)算機(jī)的連接,讓你放心大膽的調(diào)試你的腳本。同學(xué)們可參考學(xué)習(xí)下,這畢竟是生產(chǎn)環(huán)境下逼出來(lái)的辦法。
五、合理利用虛擬機(jī)來(lái)組構(gòu)開(kāi)發(fā)環(huán)境及實(shí)驗(yàn)環(huán)境
Linux和windows服務(wù)器環(huán)境下,我比較推薦Vmware vSphere和Vmare GSX,F(xiàn)reeBSD我推薦下jail。目前我將Vmware vSphpere和GSX均用于了生產(chǎn)環(huán)境,效果也比較穩(wěn)定和安全,這里重點(diǎn)推薦下其特點(diǎn)。
最近在公司的DELL2850(開(kāi)發(fā)服務(wù)器)部署成功了VMware vSphere,一直在測(cè)試其性能,目前除了它的兼容性以外(成功率10%),其它還算不錯(cuò);最近一直在關(guān)注其中的新技術(shù),在講到HA的時(shí)候,資料要求中有幾個(gè)需要注意的:
①HA是針對(duì)安裝有ESX主機(jī)的硬件的,在ESX主機(jī)故障后,虛擬機(jī)在其它主機(jī)恢復(fù)時(shí)使用了VMotion技術(shù),但VMotion則是針對(duì)虛擬機(jī)的(建議參考VMwareHA、DRS、VMotion相互關(guān)系)
②HA實(shí)現(xiàn)過(guò)程也就是虛擬機(jī)故障恢后在其它主機(jī)的過(guò)程中,虛擬機(jī)對(duì)外的服務(wù)會(huì)中斷,但是時(shí)間相對(duì)較短罷了,這和VMotion上也有不同之處。
③所有的虛擬機(jī)硬盤文件等必須要放在共享存儲(chǔ)上。
④需要使用到DNS或HOSTS服務(wù),這個(gè)容易實(shí)現(xiàn),以前部署lvs+heartbeat我就蠻喜歡用hosts的,推薦hosts服務(wù)。
⑤ESX主機(jī)在同一子網(wǎng)內(nèi),如果有多個(gè)網(wǎng)段,要確保ESX主機(jī)上有足夠的網(wǎng)卡去連接。
⑥公司其它有虛擬要求的服務(wù)器,實(shí)在裝不上VMware vSphere的,我安裝完VMware GSX v3.2.1后作了系統(tǒng)相關(guān)負(fù)載測(cè)試,跟vSphere作了對(duì)比,沒(méi)發(fā)現(xiàn)性能上有明顯差異;而且前期在電信機(jī)房GSX v3.2.1用于生產(chǎn)環(huán)境也相當(dāng)穩(wěn)定。
⑦VMware vSphere至少需要二臺(tái)服務(wù)器作infrastructure環(huán)境,其中一臺(tái)用來(lái)作vmware VirtualCenter,畢竟vSphere的其中賣點(diǎn)之一就是它的高可控性。
⑧ESX Server系列對(duì)服務(wù)器的要求比較高,必須要有兩個(gè)以上的網(wǎng)卡,其中一個(gè)作為控制用途(Control Console),就是管理員通過(guò)這個(gè)網(wǎng)卡使用瀏覽器和 VMware vSphere Client來(lái)進(jìn)行管理,這個(gè)網(wǎng)卡設(shè)定的ip地址就是ESX Server的ip地址,另外一個(gè)網(wǎng)卡就作為 Virtual Network 設(shè)備使用。
六、Linux下用crontab定時(shí)執(zhí)行PHP程序的正確方法
這種情況,涉及得比較多的是要定期執(zhí)行一段郵件或短信任務(wù)。以前我用是的wget程序,感覺(jué)雖然實(shí)現(xiàn)了目的,但還是沒(méi)有研究透徹。后來(lái)花了些時(shí)間測(cè)試發(fā)現(xiàn)在linux下,可以使用crontab+php的方法:
1、使用crontab -e編輯定時(shí)任務(wù)
內(nèi)容為:
xx:xx:xx 執(zhí)行一個(gè)test.php文件
2、php文件必須在文件頭一行,加上解釋器路徑(就象perl做的那樣)
#!/usr/local/bin/php
PHP的執(zhí)行需要Apache的支持,shell腳本的執(zhí)行需要Linux的支持,而Linux支持定時(shí)運(yùn)行某個(gè)程序的功能。(參考閱讀:將PHP作為Shell腳本語(yǔ)言使【英文】)
※以上是第一種辦法。另一種方法就是直接在/etc/crontab里直接帶上php路徑,如
*/5 * * * * root php test.php
這樣就設(shè)定為每隔五分鐘執(zhí)行一次test.php。有興趣的朋友可寫一個(gè)hello程序測(cè)試,將其所有輸出到一個(gè)文件即可測(cè)試。
七、點(diǎn)分十進(jìn)制
另外值得一說(shuō)的是,大家玩Linux服務(wù)時(shí)應(yīng)該會(huì)發(fā)現(xiàn),Linux下的服務(wù)眾多。簽于Linux中此類安全限制眾多,比如samba,nfs,rsync,tcp_wrapper,xinetd等,而每個(gè)又要各自支持的寫法,這樣對(duì)于考試學(xué)習(xí)及工作記憶很不方便。其實(shí)它們均支持192.168.0.0/255.255.255.0這樣的點(diǎn)分十進(jìn)制寫法,這里特指出來(lái),希望對(duì)大家學(xué)習(xí)及工作有所幫助(感謝眾多RHCE們的努力)。
(注:iptables的語(yǔ)法不支持這樣的寫法,只支持192.168.0.0/24此類寫法。)
八、學(xué)習(xí)網(wǎng)絡(luò)知識(shí)
另外,系統(tǒng)管理員雖然主要處理的是系統(tǒng)方面和應(yīng)用方面的事情,但有時(shí)遇到了故障,第一時(shí)間應(yīng)該處理的是網(wǎng)絡(luò)方面的事情;我以前所在的公司,規(guī)模都比較大,Network Engineer和System Admin的職責(zé)范圍都區(qū)別開(kāi)了,雖然網(wǎng)絡(luò)工程師可以不懂linux/unix系統(tǒng),但SA最好是掌握網(wǎng)絡(luò)方面的知識(shí),這樣對(duì)自己的職業(yè)生涯還是有幫助的。
【編輯推薦】