Bir Linux yöneticisi ne bilmeli?


16

Sistem yöneticisi değilim, ancak Linux, Unix, Windows ve donanım konusunda iyi bir bilgim var.

Bir Linux Yöneticisinin ezbere bilmesi gereken en çok ihtiyaç duyulan konular nelerdir (el kitabını maksimuma okumak zorunda kalmadan düzeltmek, ayarlamak, çalışmak için çalışmak; herhangi bir dağıtımda ortak olan man sayfalarını kontrol etmek )?

Bunun için ayarlamak istediğim ODAK şirket ağından sunucu yönetimine, bazı eşit özelliklere sahip olabilir, çoğu zaman farklı olanları da olacaktır. Örneğin, bir şirket sunucusu için her zaman bir FTP sunucusu görmezsiniz, ancak muhtemelen Samba'yı çoğu zaman görürsünüz ...

"Okumanız gereken kitap" ya da bunun gibi şeyler söylemiyorum, ama bir Linux yöneticisi olarak günlük yaşamınızda muhtemelen gerekli olacak en gerekli özellikleri kastediyorum.

Sevmek:

  1. Çekirdek, iptables
  2. Sendmail, Postfix, qmail, exim
  3. Kalamar, Samba, NFS, LDAP
  4. Apache, ngxix, lighthttpd
  5. vsftpd, proftpd
  6. bağlamak
  7. Günlük karşılaşılan sorunlar
  8. Gün boyunca en çok kullandığınız özellik nedir

Bu bir sıralı liste veya en çok ihtiyaç duyulan liste değildir. Sadece kafama gelen bir şeyi isimlendiriyor.

Not: Temel bilgiye zaten sahibim, ancak sahada günlük deneyimim yok. Sunucularım oldu, bazı ağlar yaptım vb. Dahası, bazı bölümlerinde derin bir bilgiye bile sahibim. Sadece burada güncellemek istedim, dediğim gibi bu daha çok bir LINUX SYSADMIN LIFE GÜNLÜK LİSTESİ.

Siz / gals konuları listeleyebilir ve örneğin içinde hangi alan ezberlemek için en çok kullanılan veya önemli olduğunu takdir ediyorum.

Sorumun uygun olmadığına inanıyorsanız sadece bana bildirin ve kendim silerim veya uygun olduğunu düşünüyorsanız, ancak daha fazla çalışılması gerekiyorsa bana da bildirin ve elimden geleni yapacağım.

Yanıtlar:


19

Günlük işleri önemsediğinizden gerçekten emin misiniz? Kişisel olarak, ezberlemeniz gereken şeyler, bir şey kırıldığında yapmanız gereken şeyler ve bence ağınızı geri almak için herkes boynunuzu soluyor. Günlük işler, Linux kutularınızın ağınızda ne yaptığına bağlı olarak değişir.

Bence oldukça önemli birkaç beceri var.

  • Ağı, ifconfig, route ve ip gibi cli araçlarını kullanarak yapılandırabilmeniz gerekir.

    • Bir müşteri bir Linux kutusunun başarısız olduğunu söyleyerek birkaç kez aradı. Bir Livecd önyükleme yaptım. Ancak sunucu DHCP'siz bir ağdaydı (DHCP idi). Sistem önyüklendikten sonra, ağı ve SSH'yi başlatarak onları yürümem gerekiyor, böylece uzaktan bağlanıp kırık olanı teşhis etmelerine ve düzeltmelerine yardımcı olabilirim.
    • İnternet'e erişemeyeceğiniz bir noktada olabilirsiniz ve nasıl çevrimiçi olacağınızı bilmeniz gerekir.
  • Bence tar, rsync veya dd kullanarak sistemin tam yedeklemesini nasıl yapacağınızı bilmelisiniz. Nasıl yedekleme yapılacağını ve geri yükleneceğini bilmiyorsanız, sistemlere kesinlikle dokunmamalısınız. Sistem değişiklikleri yapmadan önce yedeklemelerin yapıldığından da emin olmanız gerekir.

  • Bence sunucularınızdaki bir livecd'den dosya sistemlerine nasıl erişeceğinizi bilmelisiniz. Bu, LVM ve Yazılım RAID tabanlı sürücüleri nasıl etkinleştireceğinizi, bölüm bilgilerine nasıl erişeceğinizi ve dosya sistemlerini nasıl bağlayacağınızı bilmeniz gerektiği anlamına gelir.

    • Sunucunuz önyükleme yapamıyorsa, dosya sistemine erişmeniz ve bir şeyleri düzeltmeniz gerekebilir. Acil bir durumda şeylerin nasıl monte edileceğini anlamaya çalışmak oldukça acı verici olacaktır. Önceden hazırlıklı olun.
  • Önyükleme sırasında bir şeyleri değiştirebilmek için önyükleme işlemine yeterince aşina olmalısınız. Çoğu sistem GRUB kullanır, ancak LILO ile karşılaşabilirsiniz.
    • Önemlisi, tek kullanıcı gibi farklı çalışma seviyelerine nasıl önyükleme yapılacağını bilin.
  • Bence en azından tcpdump ile bazı temel yakalamaların nasıl yapılacağı ve sonuçları okuyabileceğiniz konusunda bilginiz olmalı. Wireshark'taki tüm güzel GUI özellikleri güzel, ancak bir şey bozulursa, aslında Wireshark'a erişemeyebilirsiniz.
    • Sadece tcpdump çalıştırarak hızlı bir şekilde tanımlayabildiğim ve çözebildiğim çok sayıda ağ sorunu var.

Ağ sorunu ve dosya sistemi üzerinde yapılan çok güzel noktalar cevabı takdir :)
Prix

Are you really sure you care about the day-to-day things?mmmmm ama birinin günlük hayatının bir parçası olan inst problemleri? Söylediğiniz gibi ifconfig dhcp gibi kullanılan özelliklere götürecektir ... sorunun ne düzeyde
Prix

10
Güzel nokta. Ayrıca bu satır boyunca: vi editörünün temellerini bilmelisiniz. Günlük düzenlemeniz için joe, pico, emacs veya MS Word'ü kullanırsanız kullanın, bunlar bir kurtarma sisteminde mevcut olmayacak ve vi farklıdır ;)
Sven

1
Teşekkürler, daha fazlasını öğrenmek için zaman harcamak için bir bahane arıyordum: q! vi komutu.
tovare

nano ve vi / vim genellikle evrensel olarak kullanılabilir, ancak yalnızca nano olan sistemleri gördüm
Fahad Sadah

11

Hangi Araçlara Sahip Olduğunuzu Bilin

Önceden her şeyi asla bilemezsiniz . Ama olabilir size çalışmak zorunda biliyorum. Ne kadar çok araç bilirseniz o kadar çok kullanabilirsiniz. Aracın ne olduğunu, ne yaptığını ve hakkında daha fazla bilgiyi nerede bulacağınızı biliyorsanız, başlamak için yeterince iyi.

manSayfaları gerçekten tanıyın . Onları ezberlemek zorunda değilsiniz, ancak aradığınızı nerede bulacağınızı bilmelisiniz. mansözdizimi ayrıntılarını aramak için sayfalar Google'dan daha iyidir, çünkü belirli bir sisteme yüklenen sayfalar baktığınız sisteme karşılık gelen çeşitli tuhaflıkları veya sürüme özgü bilgileri yansıtır.

Çok kullanırsanız apache, apache yapılandırma sözdizimini öğrenmenizi öneririm. Eğer kullanırsanız nginxyerine, o yerine öğrenirler. Ama her iki durumda da, her ikisinin de ne olduğunu ve nasıl farklı olduklarını bilmelisiniz.

Sistem Araçları

Ne tür bir sysadmin çalışması yaparsanız yapın size yardımcı olacak birkaç araç vardır. Temel bilgileri, know varsayarsak gibi chmod, mountvb, burada bazı yöneticiler de yeterince anlamıyorum birkaç çok yararlı araçlardır:

  • rsync
  • sar / iostat (sysstat paketinin bir parçası)
  • setfacl / getfacl (çoğu yönetici chmod / chown ile çalışmak zorunda olduğunuzu düşünür)
  • kıvırmak ve / veya wget
  • iptables
  • kim / son / w

Komut satırı Ninja

Kabuk komut dosyası yazma konusunda sağlam bir anlayış, zor şeyleri hızlı ve kolay hale getirmek için harikalar yaratıyor diyebilirim. Sözdizimine bakmanız gerekiyorsa, o zaman hiç yapmayacaksınızdır, bu yüzden vaktinden önce bilmek kritik öneme sahiptir.

Örneğin mysqldump, her biri sunucuya aktarılması gereken bir veritabanını temsil eden ".sql" dosyalarıyla dolu bir dizininiz olduğunu varsayalım. Bunların 35'ini manuel olarak içe aktarıyor musunuz? Kabuk komut dosyalarına makul derecede aşina iseniz, sadece bir komut yazmak ve daha sonra biraz kahve almak gerçekten hızlıdır:

Not: Okunabilirlik için ayrı satırlara ayırdım; noktalı virgül bırakırsanız, hepsini tek bir satıra koyabilirsiniz. Aksi takdirde, her satırın sonunda noktalı virgül gerekmez.

 for FILE in *.sql; do 
   NAME=${FILE%.sql}; 
   mysql -e "create database $NAME"; 
   mysql $NAME < $FILE; 
 done

Ayrıca, fırçalamayı kullanmanızı öneririm sed. Bunu her yerde düzenli ifadeler uygulamanın bir yolu olarak düşünün. http://www.grymoire.com/Unix/Sed.html

Telefon numaranızı değiştirdiğinizi ve tüm web sayfalarınızı buna göre güncellemeniz gerektiğini varsayalım (ve karışıklık olması durumunda yedek bir kopyasını kaydetmeniz gerekir).

sed -i.bak 's/555-1234/555-4321/' *.html

Yeni şeyler yapmak için mevcut araçların nasıl doğru bir şekilde zincirleneceğini bilmek de gerçekten yardımcı olabilir. Yukarıdakiyle aynı şeyi yapmanız gerektiğini, ancak alt dizinlerde de arama yapmanız gerektiğini varsayalım -

find public_html -name '*.html' -print0 | xargs -0 sed -i.bak 's/555-1234/555-4321/'

Biraz tecrübe sahibi olmak da faydalıdır perl. Onunla ciddi programlar yazmanız gerekmeyebilir, ancak bu sedve awkbelki de biraz daha esnek bir çok şey yapmak için tasarlanmıştır .

Perl -eseçeneği kullanılarak komut satırı sihrini yapmak için kullanılabilir . , Ve ile birlikte kullanmak -p, gerçekten kullanışlı şeyler yapmak için hızlı bir şekilde basit filtreler yazabilirsiniz. Örneğin, Eylül ayında "/admin.php" adresine erişen herkesin IP adresini bulmanız gerektiğini varsayalım:-n-i

perl -ne '
  /([^ ]+).*\[..\/Sep\/2010.*\] "GET \/admin.php / and print "$1\n"' < access_log

Görmek? O kadar da kötü değildi. Sisadmin olarak, bu şeyleri nasıl yapacağınızı bilmeniz bekleniyor.


+1 @tylerl burada yapılan çok güzel noktalar ... sık sık komut satırı ile yapmak zorunda şeyler çoğunu çivi perl kullanın ve bu bir zorunluluk olduğunu bilerek sizi temin ederim! Genellikle trhu'yu çalıştırdığın bazı problemleri bildirebilir misin? Ben de bu konuda okumak istiyorum, Zoredache cevap okuduktan sonra ben bu birçok yararlı şeyler geldi bulundu. Çok takdir!
Prix

9

Ben Linux'ta biraz uğraşan bir Windows yöneticisiyim, bu yüzden soruyu doğrudan cevaplayacak bir konumda değilim. Ancak, bence, temelleri iyi bir şekilde kavradığınızda, bir yöneticinin işletim sistemine bakılmaksızın bilmesi gereken en önemli tek şey cevapları nerede ve nasıl bulacağıdır.


Bilgi madenciliği en iyi becerilerimden biri. Görev sırasında sürekli kullanıyorum.
sysadmin1138

iyi zaten temel bilgiye sahibim ama sahada günlük bir deneyimim yok, sunucularım oldu, bazı ağlar yaptım ve daha da ötesi bazı derin bilgilerim var ... ama istiyorum bir Linux SysAdm için günlük olarak kullanılan şeyle bu bilgiyi daha fazla geliştirmek ve oradan daha fazla bilgi edinmek için ... bundan daha GÜNLÜK bir yaşam listesi almaya odaklanıyorum :)
Prix

2

Diğer cevaplara ek olarak:

Bence süreçlerin üstesinden gelme yolunuzu da bilmelisiniz:

  • / proc'da nerelerde bulacağınız hakkında temel bilgiler
  • ps, top, vmstat ve bazı daha gelişmiş spin-off'larından (ntop, htop, vb.)
  • nagios (overkill olabilir) veya munin gibi en az bir iyi izleme aracının çıktısını nasıl yorumlayacağını bilir.

Ben sed usta gerek yok sanırım (en azından ben kow), kolayca greps (grep, egrep, zgrep, vb) biri ile almak başardı. Yine de, temel düzenli ifade sözdizimini bilmeniz gerekir.

Bir posta sunucusu kullanıyorsanız, MTA (postfix veya exim) ve MDA (dovecot, cyrus, courier) ve izlemek için temel komutları bilmeniz gerektiğini düşünüyorum. Bir tane çalıştırmasanız bile, yalnızca yerel dağıtım sorunları için olsa da, MTA üzerinde temel SMTP testlerini uygulayabilmeniz gerekir.

Kullandığınız kimlik doğrulama sistemi etrafındaki yolunuzu bilmelisiniz (PAM, LDAP). Şifreleriniz nerede saklanıyor? hangi prosedürleri kullanarak? Hangi uygulamalar hangi kimlik doğrulama mekanizmalarını kullanır?


iotop :) ps aswell ile yaşayamayacağım böyle harika bir araç ... Evet, ya bu komutlar ya da perl, python, php gibi bir dil, ihtiyacınız olan şeyi yapan komut satırından çalıştırabilirsiniz.
Prix

2

Kesinlikle bilmeniz gereken birkaç şey var.

Kabuğunuzu iyi bir şekilde anlamanız gerekir (argümanları nasıl ayrıştırır, joker karakterleri nasıl genişletir, niggly köşe vakalarının olduğu yerler).

X11 çalışmadan dosyaları düzenleyebilmeniz gerekir.

Dosya sistemlerini bağlayabilmeli ve bağlantısını kesebilmelisiniz.

Yeni bilgileri hızlı bir şekilde alma yeteneğine sahip olmalısınız. Çünkü bunlar, tüm şirketin sunucu grubu çöktüğünde ihtiyaç duyduğunuz becerilerdir ve yalnızca piddly konsol sunucusu (seri bağlantı noktasında olduğu gibi "konsol") ve / veya çok yavaş bir VPN bağlantısı (X11 tabanlı bir şey de yapabilirsiniz) acı verici). Ve olacak, bu yüzden planlayın.


2

Verilen örnekler Sunucu ile ilgili harika cevaplardır .. Ancak .. Sistem yönetimi asla% 100 bilgisayar değildir .. Keşke olsaydı!

Bizim durumumuzda da Manglement, Lusers, Müteahhitler ve Tedarikçiler anlamına gelen insanlarla uğraşmak zorundasınız. Arg ^ n

Müşteri hizmetleri becerileri istediğiniz / ne gerek bahsetmek bilerek / var-to-do, diğer insanlara, belgelere bilgi almak, bütün esastır tutulması sizin sysadmin işini.

Projelerinizi finanse etmek ve kullanmak istiyorsanız: Parayı nasıl soracağınızı bilmiyorsanız, rakamlara / alternatiflere / DR planına / fiyat tekliflerine / uygulama planına sahip değilseniz yeni bir sunucu almaya çalışmanın anlamı yok vb .. Ofis politikaları bir B ** CH, para her zaman: "Sıkı" .. ne anlama geliyorsa .. execs şirket arabaları etkilemez, ancak sitenizin güvenliğini ve eğer standartlaştırma yeteneğini etkileyecektir onlara nedenlerini etkilemez.

Hatırlanması gereken en önemli şeyi söyleyebilirim: Bir kullanıcının ne dediğine güvenmeyin . Telefona cevap verirken bunu aklınızda bulundurun .. ne derse desinler, yine de kendiniz bulmanız gerekecek, çünkü nihayetinde kıçınız değil, kendiniz değil ve genellikle hiçbir fikri yok. Patronunuzu canlandırmak için bir araya getirilmiş bir paragraf oluşturabilmeleri, aslında ne söylediklerini bildikleri anlamına gelmez.

Diğer düşünceler:

  • Eğer kapatma herşey aşağıya doğru UPS üzerinde yeterli zaman olduğundan emin olun ZAMAN güç başarısız

  • İzleme, aşağı indiğini bildiğinizden emin olun .. pantolonların telefon beklemeyin.

  • BACKUPS BACKUPS BACKUPS .. iyi bir yedekleme sisteminiz yoksa çok kullanıcılı sistemler fazla mesaiye eğilimlidir .. fazla mesai kötüdür (cebiniz için değil, bütçeniz ve profesyonellik görünümü için).

  • ASLA BİR CUMA, ya da tatilden bir gün önce hiçbir şeyi değiştirmeyin .. haftasonu boyunca çağrılacaksınız, düzeltmeniz gerekecek, gerçekten kötü zaman geçireceksiniz ..

  • Standartlaştırmak ve otomatikleştirmek .. kadar freakin olabilir! Senaryoyu yazabiliyorsan neden yapmıyorsun?

  • Bir yardım masası sisteminin nasıl kullanılacağını / kurulacağını anlayın, kullanıcıların sistem üzerinden arama yapmasını sağlayın, etkinliklerinizi izlemenize, yaptığınız iş için size daha fazla ödeme yapmak için daha yüksek teşvikler sunmanıza ve kayıt yapmanıza izin verecektir. cevaplarınızı (defacto KB) .. tüm kullanıcı ilerleme hakkında bilgilendirirken. Kullanıcı sorgularının / sorunlarının selde kaybolmamasını sağlar .. (Spiceworks ücretsizdir, başkaları da vardır)

  • Şunların bir kopyasını aldım: Limoncelli tarafından Sistem Yönetimi Uygulaması, kesinlikle tavsiye ederim.


1

Bir Linux yöneticisinin dosya izinlerini ve su ve sudo , chmod ve chown vb. Gibi araçların kullanımını, bir gruba nasıl kullanıcı ekleneceğini veya yeni kullanıcılar nasıl oluşturulacağını, belirli kullanıcılara SSH ayrıcalıklarının nasıl verileceğini veya grupları.


0

Komut satırında bir düzenleyici ile hızlı olmanız gerekir.


0

Öğrenin sed, grepve awk: bir Linux sysadmin olarak günlük yaptığım şeylerin birçoğu dosyaların / bilgisayarların / kullanıcıların / vb. ve başka bir programın kullanması için girişi başka bir çıkış kümesine dönüştürür.

Bunun somut bir örneği, örneğin bugzilla veya RT'den etkilenen bilgisayarların bir listesini almak, yukarıdaki üç araçtan birini kullanarak hızlı bir şekilde kopyalayıp bir metin belgesine yapıştırdığım tüm gereksiz bilgileri ortadan kaldırmak ve ardından çıktı almak SSH'ye ihtiyacım olan bir grup düğümün boşlukla ayrılmış bir listesi.

Ayrıca, kullandığınız kabuğun üst sınırlarını kesinlikle bilmeniz gerekir. Çoğu zaman, bir sürü eski dosyayı kaldırmak zorunda kalırsanız, muhtemelen içinde 30k + dosya bulunan bir klasöre girersiniz. rm *yıldız işareti 30 binden fazla girişi olan bir listeye genişleyeceğinden ve kullandığınız kabuk bu boyutta bir liste tutamayacağı için çalışmaz. Bunu çözmek yolu ile xargs: yerine rm *, kullanmak istediğiniz ls | xargs -i{} rm {}, hangi olacaktır çalışır.


0

Bir sistem yöneticisi olarak kendimi dijital bir doktor olarak görüyorum (veya güne bağlı olarak bazen dünya standartlarında bir beyin cerrahı).

Her şey işe yaradığında, kendi becerilerinizi ve yönettiğiniz sistemleri geliştirmek için bolca zamanınız olacak.

Bir şey başarısız olduğunda, sorunu hemen teşhis edebilmeniz ve nasıl düzelteceğinizi anlamanız gerekir.

Bu nedenle, yönettiğiniz sunucuların ve uygulamaların temellerini (ve aynı zamanda dahili olanları) öğrenmeniz / ezberlemeniz gerekir. Şirketinizin web kökünün NFS üzerinden sunulduğu bir web sitesi barındırdığını varsayalım. Aniden tüm www düğümleri alarm vermeye başlar ve site yanıt vermeyi durdurur. Ne şüpheli? Ah-ha! NFS sunucusu azaldı ve yük devretme kümelemesi de herhangi bir nedenle çalışmadı.

Öğrenilmesi gereken bir diğer önemli husus, yönettiğiniz sunucuların temel yüküdür. Ortalama yüklerini, işlemci kullanımını, bellek kullanımını ve bunun gibi şeyleri ezberlemeyi öğrenin. Tamam, aslında tüm bunları ezberlemek zorunda değilsiniz - Cacti veya net-snmp + mrtg ile oluşturulan grafikler çok yardımcı olabilir, ancak çağrı cihazınız X sunucusu hakkında garip davranıyorsa ve aynı zamanda yardım masası sizi başkaları hakkında anlatıyorsa sunucu veya hizmet gider bonkers, bu iki şeyi birleştirmek ve günlüklere, alarm geçmişine veya grafiklere bakmadan önce sorunu düzeltmek için gidebilirsiniz.

Ayrıca en kötüsü için hazırlıklı olun: tüm veri merkezi elektrik kesintisi nedeniyle kararırsa ne yapacağınızı düşünün. Elektrik yeniden kullanılabilir hale geldikten sonra her şeyi nasıl başlatacaksınız? Bir şey başlamazsa ne yapardınız? Yedekleri nasıl geri yüklersiniz? Ya da birisi sunucularınıza yeni giren bir kraker hakkında sizi uyarırsa ne yapardınız? (Bu tür şeyler bir kontrol listesi olarak belgelenmelidir, ancak bir tür sezgiye sahip olmak da iyidir)


Başkaları tarafından da belirtildiği gibi, devam etmesi gereken şeyleri otomatik olarak (yarı-) yazınız. Öğrenmek ve kabuk / Perl ile oynamak, onlar gerçekten en iyi arkadaş ve çok sık birlikte sorunları sadece birkaç komut ile çok karmaşık sorunları çözebilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.