WEB开发网      濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌涘☉姗堝姛缂佺娀绠栭弻宥堫檨闁告挻姘ㄩ幑銏犫槈濞嗘劕顎撻梺鍛婂姇瀵爼骞栭幇顔炬/闁告挆鍕畬闂佸疇顫夐崹鍧楀箖閳哄啠鍋撻崷顓炐㈡い銉︾箞濮婂搫效閸パ€鍋撳Δ鍛;闁规崘顕ф闂佸憡娲﹂崹鎵不濞戙垺鐓曟い鎰剁稻缁€鍐┿亜鎼达紕效婵﹨娅g划娆忊枎閹冨闂備礁鎽滄慨鐢稿礉濞嗘劒绻嗛柣銏⑶圭粈瀣亜閺嶃劏澹橀柛鐐姂濮婃椽妫冨ù銈嗙⊕閹峰懘骞撻幒宥咁棜闂備礁婀遍崕銈夈€冮崱娑樼厱闁圭儤顨嗛悡鏇㈡煛閸ャ儱濡煎ù婊勭矋閵囧嫯绠涢敐鍛睄闂佸搫澶囬埀顒€纾弳鍡涙倵閿濆骸澧伴柡鍡欏█閺屟勫濞嗘垵鍩岄梺闈涙鐢帡锝炲┑瀣亗閹艰揪绲奸悽鑽ょ磽娴h娈曢柛銊ョ仢椤繒绱掑Ο璇差€撶紓浣圭☉椤戝懎鈻撻鐐╂斀妞ゆ梹鏋婚崗顒傜磼閻樿櫕宕岄柕鍡曠椤繈骞囨担鍏夋瀸濠电姷鏁告慨顓㈠磻閹捐秮褰掓晲閸モ斂鈧﹪鏌¢埀顒佺鐎n偆鍘藉┑鈽嗗灡椤戞瑩宕电€n兘鍋撶憴鍕仩闁稿氦绮鹃悘鍐⒑缂佹◤顏勵嚕閸洖鐤柣鎰暩绾惧ジ鏌涚仦鐐殤閺佸牓鎮楃憴鍕缂侇喖绻樿棟閻庨潧鎽滃Λ顖炴煙椤栧棔绀佹禒顕€鎮楀▓鍨灈闁绘牜鍘ч悾鐑芥偂鎼存ɑ顫嶅┑鈽嗗灟鐠€锕傛倵瀹曞洨纾介柛灞剧懅閸斿秵銇勯妸銉︻棞闁伙絾绻堥獮鏍ㄦ媴濮濆本鎲伴梻浣虹帛濡啴藟閹捐姹查悗锝庡枟閻撶喐淇婇妶鍌氫壕闂佺粯顨呭Λ妤呭煝閹炬緞鏃堝川椤旇瀚奸梺鑽ゅТ濞茬娀鍩€椤掑啯鐝柣蹇婂亾闂傚倷绀侀幖顐﹀箠閹邦厽鍙忛柟缁㈠枟閸嬧晠鏌i妶搴$仜濞存粌缍婇弻鐔兼倻濡偐鐣洪梺鍝勬噺缁诲牆顫忓ú顏咁棃婵炴垶鑹鹃。鍝勨攽閳藉棗浜濋柣鐔叉櫊閵嗕礁鈻庨幒鏃傛澑闂佸搫鍟崐濠氭儊閸儲鈷戞慨鐟版搐閻忓弶绻涙担鍐插椤╃兘鏌ㄩ弴鐐测偓褰掓偂閺囥垺鐓忓┑鐐茬仢閸斻倝鏌涢埡瀣ɑ妞ゃ劊鍎甸幃娆撳级閹存繍娼氭俊銈囧Х閸嬬偤鏁冮姀銈冣偓浣糕枎閹炬潙娈愰梺鍐叉惈椤戝洭鐛姀銈嗏拻闁稿本鐟︾粊鐗堛亜椤愩埄妲搁柣锝呭槻铻i柤娴嬫櫇閻撳顪冮妶鍡橆梿闁跨喆鍎茬粋宥堛亹閹烘挾鍘甸梺缁樺灦钃遍悘蹇e幖闇夋繝濠傚暟缁夌儤鎱ㄦ繝鍛仩缂佽鲸甯掕灒闁惧繘鈧稒顢橀梻鍌欑劍鐎笛兠哄澶婄柧婵炴垶绮庢禍閬嶆⒒娴e憡鍟炴繛璇х畵瀹曞綊鏌嗗鍛幈闂佺鎻梽鍕偂濞嗘挻鐓犳繛鏉戭儐濞呭懎霉閻樺磭鐭婇柍瑙勫灴閸ㄩ箖鎮欓挊澶夊垝闂備浇顕栭崰妤呫€冮崨鏉戠叀濠㈣埖鍔曠粻鎶芥煙閹屽殶鐟滄澘娲ㄧ槐鎾诲磼濞嗘垼绐楅梺鍝ュУ閻楃娀銆侀弽顓炲窛闁圭⒈鍘介弲锝夋⒑缁嬭法绠抽柛妯犲懏顐介柣鎰節缁诲棙銇勯弽銊х煂閻㈩垱绋掔换娑㈠川椤撶喎鏋犲┑顔硷功缁垶骞忛崨瀛樺仭闂侇叏绠戝▓婵堢磽閸屾瑦绁版い鏇嗗洤纾归柛顭戝櫘閸ゆ洜绱撴担璐細缂佲檧鍋撻梻浣规偠閸庮垶宕濆鍛瀺闁搞儺鍓氶埛鎴犵磼鐎n偄顕滄繝鈧幍顔剧<閻庯綆鍋呭畷宀€鈧娲忛崹浠嬪箖娴犲宸濆┑鐘插楠炴姊洪悷鏉挎倯闁伙綆浜畷瑙勭節濮橆剛鍘愰梺鍝勬储閸ㄦ椽鎮¢妷锔藉弿婵☆垰鐏濋悡鎰版煟閹捐泛鏋涢柣鎿冨亰瀹曞爼濡烽妷銉バ戠紓鍌欑椤戝牆鐣烽悽鍨潟闁圭儤姊荤壕鍏间繆椤栨繂浜归柣锝堟缁辨挻鎷呴搹鐟扮缂備浇顕ч悧鍡涙偩瀹勯偊娼ㄩ柍褜鍓氭穱濠傤潰瀹€濠冃ㄧ紓鍌欐祰妞村摜鎹㈤崼婵愭綎缂備焦蓱婵绱掑☉姗嗗剰婵炲牊鍔欏娲箹閻愭彃顬嗛梺鍛婎殔閸熷潡鎮鹃悜绛嬫晬闁绘劘灏欐鍥⒑閻熼偊鍤熷┑顕€娼ч埢鎾淬偅閸愨斁鎷虹紓鍌欑劍钃遍柍閿嬪浮閺屽秴鐣¢幍顔尖叺閻庢鍣崑濠傜暦閹烘鍊烽悗鐢登归獮鍫ユ⒒娴g懓鈻曢柡渚囧櫍瀹曟垿骞樼紒妯煎幐闂佸憡渚楅崰姘跺箠閸涱喕绻嗛柛娆忣槸婵洭鎽堕敐澶嬪仩婵炴垶甯掓晶鏌ユ煛閸屾浜鹃梻鍌氬€烽懗鍓佸垝椤栫偛绀夐柡鍥╁€i悢鍝ョ瘈闁搞儜鍐╁劒闂備胶绮弻銊╂儍濠靛缁╅柤鎭掑劘娴滄粓鏌¢崘銊﹀妞ゃ儱顦甸弻娑㈠棘鐠囨祴鍋撳┑瀣闁割偅娲橀崐鐑芥煟閹寸偍缂氶柛姗€浜跺娲传閸曨剙鍋嶉梺鍛婃煥閺堫剟寮查崼鏇ㄦ晬闁绘劕顕崢鍗炩攽閻愬弶顥滅紒缁樺笧缁粯绻濆顓犲幐闁诲繒鍋熼弲顐f櫏闁诲氦顫夊ú锕傚磻婵犲倻鏆﹂柣鏃傗拡閺佸棝鏌嶈閸撴瑩鍩㈠澶嬫櫜闁搞儮鏅濋敍婵囩箾鏉堝墽绋荤憸鏉垮暞缁傚秹鎮欓鍌滅槇闂侀潧楠忕徊鍓ф兜閻愵兙浜滈柟瀛樼箖瀹告繄绱掗鍓у笡闁靛牞缍佸畷姗€鍩¢崘銊ョ闂備浇顕х€涒晝绮欓幒鎴犲箵閻犳亽鍔庢稉宥嗘叏濡炶浜鹃梺鍝勮閸斿矂鍩ユ径濞㈢喐寰勯惂鍝ョɑ闁靛洤瀚版俊鎼佹晲閸涱厼袝闂備浇顕栭崰妤呮偡閳哄懌鈧線寮崼婵堫槹濡炪倖鎸荤换鍕矆閸曨垱鈷掗柛灞剧懄缁佺増銇勯弴鐔哄⒌鐎规洑鍗冲浠嬵敃閵堝浂妲稿┑鐘垫暩婵挳宕愭繝姘辈闁挎洖鍊归悡娆愩亜閺嶎偄浠滃ù婊呭娣囧﹪鎳犳0婵嗘闂佸疇顫夐崹鍧楀春閸曨垰绀冮柕濞у懌鍋″┑锛勫亼閸娿倝宕㈡ィ鍐ㄧ婵☆垯璀﹂崵鏇㈡偣閸ャ劎銈存俊鎻掔墦閺屾洝绠涢弴鐑嗘綌闂佸啿鎼幊蹇涙偂韫囨搩鐔嗛悹楦挎婢ф洟鏌涢弮鈧幐鎶藉蓟濞戙垹妫樻繛鍡欏亾妤旂紓鍌欐祰妞存悂骞愭繝姘闁告侗鍨抽惌娆撳箹鐎涙ɑ灏ù婊堢畺閺屾稑鈹戦崟顐㈠Б闂佹椿鍘介幐楣冨箟閹间焦鍋嬮柛顐g箘閻熴劑姊洪崫鍕靛剮缂佽埖宀稿濠氭偄閻撳海顦悷婊冪箳閺侇喖鈽夐姀锛勫幐闂佸憡渚楅崰妤呭磹閹扮増鐓涢悘鐐额嚙婵倿鏌熼鍝勨偓婵嗙暦閹烘垟妲堟慨妤€妫旂槐锟� ---闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌i幋锝呅撻柛濠傛健閺屻劑寮崼鐔告闂佺ǹ顑嗛幐鍓у垝椤撶偐妲堟俊顖氭惈缁犺鈹戦悙鍙夆枙濞存粍绮撻幃鈥斥槈閵忥紕鍘卞┑鐐村灥瀹曨剟鐛Ο姹囦簻闁哄倹瀵чˉ銏℃叏婵犲懏顏犻柟鐟板婵℃悂濡烽敂鎯х稈闂傚倷鑳堕幊鎾诲吹閺嶎厼绠柨鐕傛嫹
开发学院操作系统Linux/Unix 通过COM口管理Linux服务器 阅读

通过COM口管理Linux服务器

 2004-02-09 11:23:13 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亜顒㈡い鎰Г閹便劌顫滈崱妤€骞婄紓鍌氬€瑰銊╁箟缁嬫鍚嬮柛顐線缂冩洟姊婚崒娆戭槮婵犫偓闁秵鎯為幖娣妼缁愭鏌″搴′簽濞戞挸绉甸妵鍕冀椤愵澀娌梺缁樻尪閸庣敻寮婚敐澶婂嵆闁绘劖绁撮崑鎾诲捶椤撴稑浜炬慨妯煎亾鐎氾拷闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亝鎹i柣顓炴閵嗘帒顫濋敐鍛婵°倗濮烽崑娑⑺囬悽绋挎瀬闁瑰墽绮崑鎰版煙缂佹ê绗ч柍褜鍓﹂崣鍐潖閸濆嫅褔宕惰娴犲ジ姊虹拠鑼闁煎綊绠栭幃楣冩倻閽樺鎽曢梺闈涱檧婵″洭宕㈤悽鍛娾拺閻熸瑥瀚烽崯蹇涙煕閻樺磭澧甸柕鍡楀€圭缓浠嬪川婵犲嫬骞堥梺纭呭閹活亞妲愰弴鐔哄ⅰ闂傚倷绶氬ḿ褍煤閵堝洠鍋撳顐㈠祮闁绘侗鍣i獮鎺懳旈埀顒傜不閿濆棛绡€闂傚牊绋戦弳娆徝瑰⿰鍫㈢暫闁哄矉缍佹慨鈧柍鎯版硾濠€杈ㄧ珶閺囩喓绡€婵﹩鍘鹃崢鐢告⒑缂佹ê濮﹂柛鎾村哺閹ɑ娼忛妸銈囩畾闂佸湱绮敮鐐存櫠濞戞氨纾肩紓浣贯缚濞插鈧娲栧畷顒冪亙闂佸憡鍔曢崯鐘诲礈濠靛牊宕叉繛鎴炨缚閺嗗棗鈹戦悩杈厡闁轰焦鐗滅槐鎾存媴娴犲鎽甸梺鍦嚀濞层倝鎮鹃悜钘夌闁规惌鍘介崓鐢告⒑閻熸澘鎮侀柣鎺炵畵閹骞栨担鍏夋嫽婵炶揪绲块崕銈夊吹閳ь剟姊洪幖鐐测偓鏍偋閻樿崵宓侀煫鍥ㄧ⊕閺呮悂鏌ㄩ悤鍌涘濠电姷鏁告慨鐑藉极閸涘﹥鍙忛柣鎴f閺嬩線鏌涘☉姗堟敾闁告瑥绻戦妵鍕箻閸楃偟浠肩紓浣哄閸ㄥ爼寮诲☉銏犵疀闂傚牊绋掗悘鍫ユ倵閻熺増鍟炵紒璇插暣婵$敻宕熼姘鳖啋闁诲酣娼ч幗婊堟偩婵傚憡鈷戠痪顓炴媼濞兼劖绻涢懠顒€鏋庢い顐㈢箳缁辨帒螣閼测晜鍤岄梻渚€鈧偛鑻晶顔肩暆閿濆牆鍔垫い锔界叀閹繝濡舵径瀣帾闂佸壊鍋呯换鍐磻椤忓懐绠剧€瑰壊鍠曠花濠氬箚閻斿吋鈷戦悗鍦У閵嗗啴鏌ら崘鑼煟鐎规洘绻堥弫鍐焵椤掑嫧鈧棃宕橀鍢壯囨煕閳╁喚娈橀柣鐔稿姍濮婃椽鎮℃惔鈩冩瘣闂佺粯鐗曢妶绋跨暦閻戞ḿ绡€闁搞儜鍐ㄧギ闂備線娼ф蹇曟閺囥垹鍌ㄦい蹇撶墛閳锋垿鏌熼懖鈺佷粶闁告梹顨婇弻锟犲川椤旈敮濮囩紓浣稿€圭敮鐔妓囩€靛摜纾奸弶鍫涘妼缁楁碍绻涢悡搴g闁糕斁鍓濋幏鍛存煥鐎e灚缍楅梻鍌氬€峰ù鍥ь浖閵娾晜鍊块柨鏇炲€哥粻鏌ユ煕閵夘喖澧柡瀣╃窔閺岀喖宕滆鐢盯鏌¢崨顔藉€愰柡灞诲姂閹倝宕掑☉姗嗕紦闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾剧懓顪冪€n亜顒㈡い鎰Г閹便劌顫滈崱妤€骞婄紓鍌氬€瑰銊╁箟缁嬫鍚嬮柛顐線缂冩洟姊婚崒娆戭槮婵犫偓闁秵鎯為幖娣妼缁愭鏌″搴′簽濞戞挸绉甸妵鍕冀椤愵澀娌梺缁樻尪閸庣敻寮婚敐澶婂嵆闁绘劖绁撮崑鎾诲捶椤撴稑浜炬慨妯煎亾鐎氾拷  闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌i幋锝呅撻柛銈呭閺屻倝宕妷锔芥瘎婵炲濮靛銊ф閹捐纾兼繛鍡樺笒閸橈紕绱撴笟鍥ф珮闁搞劌鐖兼俊鎾礃椤旂厧绐涢梺鍝勵槹閸ㄥ綊宕㈠ú顏呭€垫鐐茬仢閸旀碍銇勯敂璇茬仸鐎规洩绻濋獮搴ㄦ嚍閵壯冨妇闂傚⿴鍋勫ú锕€煤閺嶃劎澧¢梻鍌欐祰椤曆呪偓鍨浮瀹曟粓鎮㈡總澶嬬稁闂佹儳绻愬﹢杈╁閸忛棿绻嗘い鏍ㄧ閹牊銇勯銏㈢劯婵﹥妞藉畷鐑筋敇濞戞瑥鐝遍梻浣呵归鍛涘┑瀣畾闁逞屽墯閵囧嫯绠涢幘瀵搞偐濠碘槅鍨扮€氭澘顫忓ú顏勪紶闁告洦鍓氶幏鍗炩攽閻愭彃绾у畝锝呮健楠炴垿濮€閻橆偅鏂€婵犵數濮寸€氼噣寮堕幖浣光拺闁告繂瀚婵嗏攽椤旀儳鍘撮柟顔诲嵆婵$兘鍩¢崒妤佸濠电偠鎻徊浠嬪箹椤愩倖鏆滈悹杞拌閻斿棝鏌i悢宄扮盎闁衡偓閼姐倗纾奸柛灞炬皑瀛濆Δ妤婁簷閸楀啿鐣烽悡搴僵闁挎繂鎳嶆竟鏇㈡⒑閸濆嫬鏆欓柣妤€妫涚划鍫ュ礃閳瑰じ绨婚棅顐㈡搐濞寸兘藝閿曗偓闇夋繝濠傜墢閻f椽鏌$仦璇插闁宠鍨垮畷鍗炩槈閹典礁浜炬俊銈傚亾妞ゎ叀鍎婚¨渚€鏌涢悩宕囧⒌婵犫偓娓氣偓濮婅櫣绱掑Ο鏇熷灴閹兘濡疯閸嬫挸顫濋悡搴㈢亾缂備緡鍠氱划顖炲Χ閿濆绀冮柍鍝勫暙楠炲牊淇婇悙顏勨偓鏍礉閹达箑纾归柡鍥ュ灩閸戠娀骞栧ǎ顒€濡介柣鎾跺枛閻擃偊宕惰閸庡繘鏌涢弮鈧划鎾诲蓟閺囥垹鐐婄憸宥夘敂椤撶姭鍋撳▓鍨灍婵炲吋鐟ㄩ悘鎺楁⒑閸涘﹦绠撻悗姘煎墲椤ゅ倹绻濈喊澶岀?闁稿鍨垮畷鎰板箣閿曗偓閸ㄥ倹绻涘顔荤凹闁稿绻濋弻宥夊传閸曨剙娅g紓浣哄У閻楃娀寮诲澶婄厸濞达絽鎲″▓鏌ユ⒑缁嬫寧鎹i柛鐘崇墵瀵寮撮姀鐘靛€為悷婊冪Ф閼鸿鲸绻濆顓犲幍闂佸憡鍨崐鏍偓姘炬嫹
核心提示:本文简要地介绍了如何通过常见的COM口进行linux服务器的控制台的扩展,具有实用性和简易性,通过COM口管理Linux服务器,不受服务器网络等条件的限制,可以方便地管理实际生产环境中的Linux服务器,以实现集中式管理,Linux也可以作为优秀的终端服务器, 说到管理Linux服务器,大家会有很多种不同的办法:键盘+

本文简要地介绍了如何通过常见的COM口进行linux服务器的控制台的扩展,具有实用性和简易性,不受服务器网络等条件的限制,可以方便地管理实际生产环境中的Linux服务器。

说到管理Linux服务器,大家会有很多种不同的办法:键盘+显示器、通过网络登陆、基于WEB的工具、X系统下的图形工具等等,这些方法用在普通的服务器或者自己 的PC服务器上是没有任何问题的,但是要管理一台24X7模式的服务器,确保在任何情况下都能直接快捷地管理到服务器,就不是那么容易了。

对比以上说到的几种方式:


X系统下的图形工具。这当然是界面很友好的方式了,而且X系统也可以通过网络扩展到远程,但网络毕竟不是这么可靠,如果服务器的网络瘫痪了,你正好需要远程解决网络的问题,那该怎么做?

基于WEB的工具。这种方式的界面也是相当友好,如webadmin,但是由于安全方面的问题,这些工具是不会安装在真正重要的服务器上的,另外这种方式也受限于网络;

通过网络登陆。这是常用的办法,一般服务器会对信赖的远程站点开放SSH服务,以便维护人员可以远程登陆进行日常维护,这是很安全的,但很不幸它还是基于网络的,当然也受限于网络;

键盘+显示器。这是最保险的办法,笔者都建议使用这种最保险的办法,但是很不幸这也是有缺陷的,就是有很多服务器都不配备显示器和键盘,就算有,也只是安装系统时使用,一旦投入生产运行就不再使用显示器和键盘了。

其实对于UNIX/Linux系统的服务器,可以通过COM口即串行口来扩展系统的控制台,作为另外的途径管理服务器。

CONSOLE,即控制台,是系统输出管理信息的字符输出设备,这些管理信息是由内核产生,比如系统日志、告警信息等。Linux下默认的控制台就是键盘和显示器,而一些老式的SUN、HP、IBM服务器则使用串行口接Text Terminal[1](字符终端,如著名的DEC的VT100)作为控制台,这也是这次将要介绍的方式。

字符终端在大型机时代用得比较多,一个大型机通常联接许多终端,每个终端没有处理能力,只是简单地用键盘输入和从屏幕输出结果,处理过程都是由大型机完成。字符终端屏幕多为黑白字符型的,不具备图形显示功能。这里介绍的Text Terminal和大型机的终端是一样的,只不过市场上早就没有新的终端设备了,现在都是通过应用程序模拟一个终端,叫虚拟终端,如WINDOWS的超级终端就是常用的一个虚拟终端程序,在管理工作站上用打开超级终端(使用正确的速率),就相当于一个终端了。

这种通过串行口实行CONSOLE功能是广泛使用的,如CISCO的路由器,都是通过这种方式进行设备的管理,小小的一条CONSOLE线就相当于一台PC的显示器加键盘,这无疑为路由器省下了许多不必要的配件,而事实上部分CISCO的设备就是一台PC,如思科PIX515防火墙,只要你插上一块PCI的显卡到PCI槽,接上显示器,按下PIX的开关,你就可以看到一台BX主板、奔腾II代350MHZ处理器、128M内存电脑的启动信息,和一台普通电脑启动是没有任何区别的。当PIX完成自检后,控制台就转到CONSOLE口上了,而那个RJ45接口的CONSOLE口,其实就是一个COM口,只是接口形式不是9针D形口而己。

现在可以明确我们需要做的工作了:使用管理工作站的虚拟终端程序模拟一个字符终端设备,通过COM口对COM口的形式将Linux的CONSOLE重定向到该虚拟终端,以实现从虚拟终端控制Linux服务器。步骤如下:

1、制作交叉线

两台电脑要用COM口互联起来需要一种"NULL MODEM CABLE","NULL MODEM CABLE"直译过来大致是"交叉MODEM线",和网线的交叉线意思相近,这是用来"背靠背"联接两个DTE设备的,两头都是9针D型母接头,分别插入管理工作站和服务器的COM口中,为了方便标识建议都接第一个COM口。这种线可以自己制作,也可以去电脑城买,最方便的是有CISCO的标准CONSOLE线加RJ45转9针D型母接头的转接头(部件号74-0495-01),可以直接使用。自己制作可以参考以下的线序:

缩写 引脚定义 方向 引脚定义
RxD Receive Data 2 <---- 3 TxD Transmit Data
TxD Transmit Data 3 ----> 2 RxD Receive Data
    +--> 6 DSR Data Set Ready
DTR Data Terminal Ready 4 --+--> 1 DCD Carrier Detect
GND Signal Ground 5 <----> 5 GND Signal Ground
DCD Carrier Detect 1 <--+  
DSR Data Set Ready 6 <--+-- 4 DTR Data Terminal Ready
RTS Request To Send 7 ----> 8 CTS Clear To Send
CTS Clear To Send 8 <---- 7 RTS Request To Send
RI Ring Indicator 9 (not used)

制作时需要把Txd与Rxd、CTS与RTS、GND与GND、DTR与DSR&DCD交叉相联,DSR&DCD表示这两个引脚串联在一起作为一个引脚信号。更多的详细介绍参见Serial-HOWTO[3]。

2、测试联通性

管理工作站和服务器接上交叉线后,可以简单地来测试一下这条线是否起作用。在管理工作站上用超级终端新建一个联接,速率9600,8数据位,1停止位,无奇偶校验位,无硬件"Flow control";在服务器上echo '1'>/dev/ttyS0(需要ROOT权限),在管理工作站超级终端里观察是否能收到数字1,如果能收到就表明联接无问题。如果不能收到则要在服务器上检查一下各信号引脚是否正确,使用命令"statserial /dev/ttyS0"可以查看当前串行口的状态(在CABLE对端不接管理工作站时或者线序错误时DSR状态为0),联接状态如下:

Device: /dev/ttyS0
Signal Name Pin(25) Pin(9) Direction (computer) Status Full Name
----- --- --- --------- ------ -----
FG 1 - - - Frame Ground
TxD 2 3 out - Transmit Data
RxD 3 2 in - Receive Data
RTS 4 7 out 1 Request To Send
CTS 5 8 in 0 Clear To Send
DSR 6 6 in 1 Data Set Ready
GND 7 5 - - Signal Ground
DCD 8 1 in 0 Data Carrier Detect
DTR 20 4 out 1 Data Terminal Ready
RI 22 9 in 0 Ring Indicator

3、从POST开始

这是很多电脑都无法实现的功能,这主要取决于主板BIOS是否支持。POST(Power On Self Test)即我们通常说的自检,我们可以看到系统的基本信息及检查过程,当然也有可能有出错的提示信息及相应的处理提示,有一些型号的服务器主板(如INTEL原装NL440BX)可以将POST重定向到COM口,这样我们可以接一个终端在COM口上便能看到POST过程,当然也可以通过终端操作,完全不需要键盘和显示器。可惜一般情况下我们的主板并不支持这项功能,但是没有关系,我们可以先设定好BIOS参数(Halt On 设置为None)忽略无关紧要的出错信息,让每次系统自检都顺利通过,这样系统便能顺利进入硬盘启动了。

4、重定向GRUB

也许你有几个系统(如FreeBSD),或者有新的内核需要进行测试,你可能希望通过COM口来选择系统,将GRUB重定向到COM口也是可能的。我们在GRUB的manual页[4]可以看到其支持seriral终端,在GRUB配置文件第一条Title的前面加入两行如下:

serial --unit=0 --speed=38400
terminal serial console 


  我们便能从接在COM口上的终端中看到GRUB的提示信息,通过上、下键选择光带就可以正确地进入各个系统了。LILO的用法类似,请参阅LILO的手册页。

5、重定向CONSOLE

为了能够控制Linux服务器启动过程,我们需要传递一些参数到Linux内核中,从serial-console[2]中我们可以看到只需要将console=ttyS0,9600传递到内核中就可以实现CONSOLE重定向到串口。当然9600的速度太慢,我们可以使用38400的速率,这样显示的速度就和启动时显示器上显示的速度差不多了。我的服务器使用GRUB,所以我的/boot/grub/menu.lst文件中kernel语句如下:

kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ console=tty0 console=ttyS0,38400 


  现在重新启动Linux服务器,打开超级终端,不出意外就能看到平时在显示器上才看得到的启动信息,当然你也可以按"i"键进入交互式的启动模式,当然在不小心踢掉电源后也能轻松输入"Y"进行文件系统检测,是不是很好用?不过启动完了系统后怎么就停在那里不动了?好像Linux很笨啊,它居然不知道我想从这里登录进系统?不要怪Linux,我们马上就来解释为什么会这样以及解决办法。

6、开启ttyS0登陆

其实Linux启动时的信息都是由KERNEL显示的,缺省情况下启动完毕了后init再运行mingetty来提供6个虚拟终端来登陆系统,这可以在/etc/inittab文件中清楚地看到。其实login和内核是没有关系的,所以如果只是在内核中加入参数使其能从COM口交互式地操作并不代表能从超级终端登录系统,我们需要另外运行一个提供从串口登录能力的程序,这个程序就是agetty,它是属于util-Linux软件包中的一员,大家可以参考其man手册页以获得更多的信息,这些信息在其他的文档[1][3]中也都提及到了。我在服务器的/etc/inittab文件中加了一行如下:

S0:2345:respawn:/sbin/agetty -L 38400 ttyS0 


  这样我们就能从超级终端登录系统了,很好用吧。

7、一些经验

使用ttyS0登录还有一些小的窍门和经验,以下是我的经验:

COM口的传输距离有限制,普通的线缆只有15米的有效距离,建议使用5类双绞线,可以扩展到50米仍能正常操作;

大家一般会想使用root从ttyS0登录,但是默认的这是不行的,我们需要把该终端加入到文件/etc/securetty中,就是说终端ttyS0是安全的终端,可以使用root登录;

如果服务器长时间开着的话,最好每次都使用exit退出该终端,因为如果不退出来的话,下次再登陆可能会出现输入乱码导致终端不可用等问题,而在登录提示符下输入乱码则无关紧要;

如果你是通过这种方法管理一台实际24X7开着的服务器的话,你可能会有时发现在终端中按回车没有任何反映,有一种可能性就是系统在停电后再开机出现不能启动NFS和sendmail之类的服务,就这样卡在那里死锁住了,这在电源不稳定的情况下尤其多见,所以一定要给你的Linux服务器接上UPS不间断电源,或者在系统BIOS里设置断电后不再启动系统(如果它不是太重要的话),在这种情况下只有按键盘重新启动或者直接断电再重新启动一次,检查启动过程到底发生了什么事情,一般只需要检查一遍硬盘就没有问题了;

如果你的ttyS0出现乱码没有办法使用的话,可以尝试着从网络登陆,把/etc/inittab中ttyS0那一行注释,使用"init q"命令停止通过inittab启动的agetty,然后再重新取消/etc/inittab中的注释,再次"init q"命令启动agetty,不出意外就能恢复正常了。

结束语

到此我们就方便地管理没有显示器和键盘的Linux服务器了,实际生产中可以使用终端服务器代替管理工作站来管理非常多的服务器。简单地说终端服务器有许多COM口,可以同时连接多个服务器(或者网络设备如思科路由器)的CONSOLE,以实现集中式管理。Linux也可以作为优秀的终端服务器,我们将另作介绍。
 

Tags:通过 COM 管理

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接