สิ่งที่ผู้ดูแลระบบ Linux ต้องรู้ด้วยหัว?


16

ฉันไม่ใช่ผู้ดูแลระบบ แต่ฉันมีความรู้ดีเกี่ยวกับ Linux, Unix, Windows และฮาร์ดแวร์

อะไรคือหัวข้อที่จำเป็นที่สุดที่ผู้ดูแลระบบ Linux ต้องรู้ด้วยใจ (ณ จุดที่สามารถแก้ไข, ติดตั้ง, ทำงานได้โดยไม่ต้องอ่านคู่มือมากที่สุด; ตรวจสอบ man pages ที่ใช้ร่วมกันได้ )?

FOCUSฉันต้องการชุดนี้จะมาจากเครือข่ายของ บริษัท ในการบริหารจัดการเซิร์ฟเวอร์ซึ่งอาจมีคุณสมบัติเท่ากับบางมากที่สุดของเวลาจะมีคนที่แตกต่างกันบางส่วนเช่นกัน ตัวอย่างเช่นคุณจะไม่เห็นเซิร์ฟเวอร์ FTP สำหรับเซิร์ฟเวอร์ บริษัท เสมอ แต่อาจเห็น Samba เกือบตลอดเวลา ...

ฉันไม่ได้พูดว่า "หนังสือคุณต้องอ่าน" หรืออะไรทำนองนั้น แต่ฉันหมายถึงคุณสมบัติที่จำเป็นที่สุดที่อาจจำเป็นในชีวิตประจำวันของคุณในฐานะผู้ดูแลระบบ Linux

ชอบ:

  1. เคอร์เนล iptables
  2. Sendmail, Postfix, qmail, exim
  3. Squid, Samba, NFS, LDAP
  4. Apache, ngxix, lighthttpd
  5. vsftpd, proftpd
  6. ผูก
  7. ประสบปัญหารายวัน
  8. ฟีเจอร์ที่คุณใช้บ่อยที่สุดระหว่างวันคืออะไร

นี่ไม่ใช่รายการตามลำดับหรือจำเป็นที่สุด มันเป็นเพียงชื่อสิ่งที่มาถึงหัวของฉัน

PS: ฉันมีความรู้พื้นฐานอยู่แล้ว แต่ฉันไม่มีประสบการณ์ประจำวันในสนาม ฉันมีเซิร์ฟเวอร์สร้างเครือข่ายและอื่น ๆ นอกจากนี้ฉันยังมีความรู้ลึกซึ้งในบางส่วนของมัน ฉันต้องการอัปเดตที่นี่เช่นฉันบอกว่านี่เป็นรายการประจำวันของชีวิตของลินุกซ์ SYSADMIN

ฉันจะซาบซึ้งถ้าพวกคุณ / gals สามารถเขียนหัวข้อและตัวอย่างเช่นฟิลด์ใดในนั้นที่มีการใช้งานมากที่สุดหรือสำคัญในการจดจำ

หากคุณเชื่อว่าคำถามของฉันไม่เหมาะเพียงแจ้งให้เราทราบและฉันจะลบออกเองหรือถ้าคุณรู้สึกว่าเหมาะสม แต่ต้องกลับมาทำงานอีกให้แจ้งให้ฉันทราบด้วยและฉันจะพยายามอย่างดีที่สุด

คำตอบ:


19

คุณแน่ใจหรือไม่ว่าคุณใส่ใจในสิ่งต่าง ๆ ในแต่ละวัน? โดยส่วนตัวแล้วฉันคิดว่าสิ่งที่คุณควรจดจำคือสิ่งที่คุณจะต้องทำเมื่อมีอะไรบางอย่างพังทลายและทุกคนก็หายใจคอของคุณเพื่อให้เครือข่ายสำรอง สิ่งต่าง ๆ ในแต่ละวันมีแนวโน้มที่จะแตกต่างกันไปตามสิ่งที่กล่อง Linux ของคุณกำลังทำอยู่บนเครือข่ายของคุณ

ฉันคิดว่ามีทักษะเล็กน้อยที่สำคัญทีเดียว

  • คุณจะต้องสามารถกำหนดค่าเครือข่ายโดยใช้เครื่องมือ cli เช่น ifconfig, route และ ip

    • สองสามครั้งที่ลูกค้าเรียกว่ากล่อง Linux ล้มเหลว ฉันให้พวกเขาบูท livecd แต่เซิร์ฟเวอร์อยู่บนเครือข่ายที่ไม่มี DHCP (เป็น DHCP) เมื่อระบบถูกบูทฉันต้องแนะนำพวกเขาให้เริ่มเครือข่ายและ SSH เพื่อให้ฉันสามารถเชื่อมต่อจากระยะไกลและช่วยให้พวกเขาวินิจฉัยและแก้ไขสิ่งที่เสียหาย
    • คุณอาจอยู่ในจุดที่ไม่สามารถเข้าถึงอินเทอร์เน็ตได้และคุณจะต้องรู้วิธีการออนไลน์
  • ฉันคิดว่าคุณควรรู้วิธีการสำรองข้อมูลทั้งหมดของระบบโดยใช้ tar, rsync หรือ dd หากคุณไม่ทราบวิธีการสำรองข้อมูลและคืนค่าสิ่งต่าง ๆ ที่คุณเกือบจะไม่ควรสัมผัสกับระบบ คุณต้องตรวจสอบให้แน่ใจด้วยว่าได้ทำการสำรองข้อมูลก่อนทำการเปลี่ยนแปลงระบบ

  • ฉันคิดว่าคุณควรรู้วิธีเข้าถึงระบบไฟล์จาก livecd บนเซิร์ฟเวอร์ของคุณ ซึ่งหมายความว่าคุณควรทราบวิธีการเปิดใช้งานไดรฟ์ LVM และ Software RAID ที่เข้าถึงข้อมูลพาร์ติชันและติดตั้งระบบไฟล์

    • หากเซิร์ฟเวอร์ของคุณไม่สามารถบูตได้คุณอาจต้องเข้าถึงระบบไฟล์และแก้ไขบางอย่าง มันจะค่อนข้างเจ็บปวดเมื่อพยายามคิดวิธีติดตั้งสิ่งต่าง ๆ ในกรณีฉุกเฉิน เตรียมล่วงหน้า
  • คุณควรคุ้นเคยกับกระบวนการบูทเพื่อให้สามารถเปลี่ยนแปลงสิ่งต่าง ๆ ในการบู๊ตได้ ระบบส่วนใหญ่ใช้ GRUB แต่คุณอาจพบใน LILO
    • ที่สำคัญรู้วิธีการบูตในระดับที่แตกต่างกันเช่นผู้ใช้คนเดียว
  • ฉันคิดว่าคุณควรมีความรู้ในการทำงานอย่างน้อยเกี่ยวกับวิธีการบันทึกพื้นฐานบางอย่างด้วย tcpdump และสามารถอ่านผลลัพธ์ได้ ฟีเจอร์ GUI ที่ยอดเยี่ยมทั้งหมดใน Wireshark นั้นดี แต่ถ้ามีอะไรบางอย่างพังคุณอาจไม่สามารถเข้าถึง Wireshark ได้
    • มีปัญหาเครือข่ายจำนวนมากที่ฉันสามารถระบุและแก้ไขได้อย่างรวดเร็วเพียงแค่รัน tcpdump

จุดที่ดีมากที่ทำเกี่ยวกับปัญหาเครือข่ายและระบบไฟล์ชื่นชมคำตอบ :)
กรังปรีซ์

Are you really sure you care about the day-to-day things?mmmmm แต่ปัญหา inst ที่เกิดขึ้นเป็นส่วนหนึ่งของชีวิตประจำวันของหนึ่ง ซึ่งจะนำคุณไปสู่คุณลักษณะที่ใช้เช่นเครือข่าย DHCP ifconfig เช่นคุณกล่าวว่า ... สิ่งที่ debuging ระดับปัญหาเกิดขึ้น ฯลฯ
กรังปรีซ์

10
จุดที่ดี นอกจากนี้ในบรรทัดนั้น: คุณควรทราบพื้นฐานของเครื่องมือแก้ไข vi ไม่ว่าคุณจะใช้ joe, pico, emacs หรือ MS Word สำหรับการแก้ไขรายวันของคุณสิ่งเหล่านั้นจะไม่สามารถใช้ได้ในระบบช่วยเหลือและ vi จะแตกต่างกัน ;)
Sven

1
ขอบคุณฉันกำลังมองหาข้ออ้างที่จะใช้เวลาเรียนรู้มากกว่า: q! คำสั่งใน vi
tovare

nano และ vi / vim มักใช้งานได้ทั่วไปแม้ว่าฉันจะเห็นระบบที่มีเฉพาะ nano
Fahad Sadah

11

รู้ว่าคุณมีเครื่องมืออะไร

คุณจะไม่มีทางรู้ทุกสิ่งล่วงหน้า แต่คุณสามารถรู้ว่าคุณต้องทำงานกับอะไร ยิ่งคุณรู้เครื่องมือมากเท่าใดคุณก็ยิ่งสามารถใช้งานได้มากขึ้นเท่านั้น หากคุณรู้ว่าเครื่องมือคืออะไรสิ่งที่ทำและตำแหน่งที่จะหาข้อมูลเพิ่มเติมเกี่ยวกับมันแสดงว่าเริ่มต้นได้ดีพอ

ทำความคุ้นเคยกับmanหน้าต่างๆ คุณไม่ต้องจดจำพวกเขา แต่คุณควรรู้ว่าจะหาสิ่งที่คุณกำลังมองหา manหน้าเว็บดีกว่า Google ในการค้นหารายละเอียดไวยากรณ์เนื่องจากหน้าเว็บที่ติดตั้งบนระบบที่กำหนดนั้นสะท้อนถึงนิสัยใจคอหรือข้อมูลเฉพาะรุ่นที่สอดคล้องกับระบบที่คุณกำลังดู

ถ้าคุณใช้apacheมากฉันขอแนะนำให้เรียนรู้ไวยากรณ์การกำหนดค่า apache หากคุณใช้nginxแทนเรียนรู้สิ่งนั้นแทน แต่อย่างใดคุณควรรู้ว่าทั้งคู่ต่างกันอย่างไรและต่างกันอย่างไร

เครื่องมือระบบ

มีเครื่องมือบางอย่างที่จะช่วยคุณไม่ว่าระบบดูแลระบบแบบไหนที่คุณกำลังทำอยู่ สมมติว่าคุณรู้พื้นฐานเช่นchmodและmountอื่น ๆ ต่อไปนี้เป็นเครื่องมือที่มีประโยชน์มากบางอย่างที่ผู้ดูแลระบบบางคนไม่เข้าใจดีพอ:

  • rsync
  • sar / iostat (ส่วนหนึ่งของแพ็คเกจ sysstat)
  • setfacl / getfacl (ผู้ดูแลระบบส่วนใหญ่คิดว่า chmod / chown เป็นสิ่งที่คุณต้องทำงานด้วย)
  • ขดและ / หรือ wget
  • iptables
  • ใคร / ครั้งสุดท้าย / w

บรรทัดคำสั่ง Ninja

ฉันว่าความเข้าใจที่ดีเกี่ยวกับ shell scripting นั้นเป็นสิ่งมหัศจรรย์ที่ทำให้สิ่งที่ยากทำได้ง่ายและรวดเร็ว หากคุณต้องค้นหาไวยากรณ์คุณจะไม่มีโอกาสเลยดังนั้นการรู้ล่วงหน้าเป็นเรื่องสำคัญ

ตัวอย่างเช่นสมมติว่าคุณมีไดเรกทอรีที่เต็มไปด้วยmysqldumpไฟล์ ".sql" แต่ละไฟล์แสดงถึงฐานข้อมูลที่จำเป็นต้องนำเข้าสู่เซิร์ฟเวอร์ คุณนำเข้าทั้งหมด 35 รายการด้วยตนเองหรือไม่ หากคุณมีความคุ้นเคยกับการใช้สคริปต์เชลล์อย่างรวดเร็วมันง่ายมากที่จะพิมพ์คำสั่งเพียงคำเดียวแล้วหยิบกาแฟ:

หมายเหตุ: ฉันแบ่งมันเป็นเส้นแยกเพื่อให้อ่านง่าย หากคุณเว้นเครื่องหมายอัฒภาคไว้คุณสามารถใส่ทุกอย่างไว้ในบรรทัดเดียว มิฉะนั้นไม่จำเป็นต้องใช้เครื่องหมายอัฒภาคในตอนท้ายของแต่ละบรรทัด

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

sedนอกจากนี้ผมขอแนะนำให้การแปรงขึ้นเกี่ยวกับการใช้ คิดว่ามันเป็นวิธีในการใช้การแสดงออกปกติทุกที่ http://www.grymoire.com/Unix/Sed.html

สมมติว่าคุณเปลี่ยนหมายเลขโทรศัพท์และจำเป็นต้องอัปเดตหน้าเว็บทั้งหมดของคุณตามนั้น (และบันทึกสำเนาสำรองในกรณีที่คุณเลอะ)

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

การรู้วิธีการเชื่อมโยงเครื่องมือที่มีอยู่อย่างถูกต้องเพื่อทำสิ่งใหม่ ๆ จะมีประโยชน์เช่นกัน สมมติว่าคุณต้องทำเช่นเดียวกับข้างต้น แต่ยังค้นหาในไดเรกทอรีย่อยด้วย -

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

perlนอกจากนี้ยังเป็นประโยชน์ที่จะมีบางคนที่มีประสบการณ์ คุณอาจไม่จำเป็นต้องเขียนโปรแกรมที่จริงจังกับมัน แต่มันถูกออกแบบมาเพื่อทำสิ่งต่าง ๆ มากมายที่ทำsedและawkอาจมีความยืดหยุ่นเพียงเล็กน้อยเท่านั้น

Perl สามารถใช้ในการทำมายากลบรรทัดคำสั่งโดยใช้-eตัวเลือก การใช้กับ-p, -nและ-i, คุณสามารถเขียนตัวกรองอย่างง่าย ๆ เพื่อทำสิ่งที่มีประโยชน์จริงๆ ตัวอย่างเช่นสมมติว่าคุณต้องค้นหาที่อยู่ IP ของทุกคนที่เข้าถึง "/admin.php" ในเดือนกันยายน:

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

ดู? นั่นไม่เลวเลย ในฐานะผู้ดูแลระบบคุณคาดว่าจะรู้วิธีการทำสิ่งนี้


+1 @tylerl จุดที่ดีมากที่ทำที่นี่ ... ฉันมักจะใช้ Perl เพื่อตอกย้ำส่วนใหญ่ของสิ่งที่ฉันต้องทำกับบรรทัดคำสั่งและฉันสามารถมั่นใจได้ว่าคุณรู้ว่าต้อง! คุณจะช่วยโพสต์ปัญหาบางอย่างที่คุณมักเรียกใช้ trhu เช่นกัน ฉันต้องการอ่านเกี่ยวกับเรื่องนี้เช่นกันหลังจากอ่านคำตอบ Zoredache ฉันพบว่ามีสิ่งที่มีประโยชน์มากมายเกิดขึ้นในนั้น นิยมมาก!
Prix

9

ฉันเป็นผู้ดูแลระบบ Windows ที่ใช้ลีนุกซ์เพียงเล็กน้อยดังนั้นฉันจึงไม่สามารถตอบคำถามได้โดยตรง แต่ในความคิดของฉันเมื่อคุณ Hava ความเข้าใจที่ดีของพื้นฐานสิ่งหนึ่งเดียวมากที่สุดที่สำคัญความต้องการของผู้ดูแลระบบทราบโดยไม่คำนึงถึงระบบปฏิบัติการที่เป็นที่และวิธีการที่จะหาคำตอบ


Info-mining เป็นหนึ่งในทักษะยอดนิยมของฉัน ฉันใช้มันอย่างต่อเนื่องในระหว่างการปฏิบัติหน้าที่
sysadmin1138

ฉันมีความรู้พื้นฐานอยู่แล้ว แต่ฉันไม่มีประสบการณ์ประจำวันในสนามฉันมีเซิร์ฟเวอร์สร้างเครือข่ายบางส่วนและต่อไปฉันยังมีความรู้เชิงลึกในส่วนของมัน ... แต่ฉันต้องการ เพื่อเพิ่มความรู้มากขึ้นนี้กับสิ่งที่จะใช้จริงในชีวิตประจำวันสำหรับลินุกซ์ SYSADM และจากที่นั่นเรียนรู้เพิ่มเติม ... ฉันมากขึ้นมุ่งเน้นไปที่ได้รับรายชื่อในชีวิตประจำวันจากนี้ :)
กรังปรีซ์

2

นอกจากคำตอบอื่น ๆ :

ฉันคิดว่าคุณควรรู้วิธีจัดการกับกระบวนการของคุณด้วย:

  • ความรู้พื้นฐานที่จะหาสิ่งของใน / proc
  • ps, ด้านบน, vmstat และบางส่วนของการหมุนที่ซับซ้อนมากขึ้นของพวกเขา (ntop, htop, ฯลฯ )
  • รู้วิธีตีความผลลัพธ์ของเครื่องมือตรวจสอบที่ดีอย่างน้อยหนึ่งอย่างเช่น nagios (อาจ overkill) หรือ munin

ฉันคิดว่าคุณไม่จำเป็นต้องควบคุมตัวเอง (อย่างน้อยฉันก็ทำไม่ได้) ฉันจัดการกับ greps (grep, egrep, zgrep, etc) ได้อย่างง่ายดาย คุณต้องรู้ไวยากรณ์การแสดงออกปกติพื้นฐาน

ฉันคิดว่าคุณควรรู้คำสั่งพื้นฐานในการจัดการและ / หรือตรวจสอบ MTA (postfix หรือ exim) และ MDA (dovecot, cyrus, courier) ถ้าคุณบำรุงรักษาเซิร์ฟเวอร์อีเมล แม้ว่าคุณจะไม่เปิดใช้งานก็ตามคุณจะต้องสามารถใช้การทดสอบ SMTP ขั้นพื้นฐานบน MTA ได้หากมีปัญหาในการจัดส่งเฉพาะที่

คุณควรรู้วิธีการแก้ไขระบบการรับรองความถูกต้องของคุณโดยใช้ (PAM, LDAP) รหัสผ่านของคุณเก็บไว้ที่ไหน ใช้ขั้นตอนอะไร? แอปพลิเคชันใดที่ใช้กลไกการพิสูจน์ตัวตนแบบใด


ไอโซโทป :) เป็นเครื่องมือที่ยอดเยี่ยมที่ฉันไม่สามารถอยู่ได้โดยไม่มี ps เช่นกัน ... ใช่มันเป็นทั้งคำสั่งหรือภาษาเช่น perl, python, php ที่คุณสามารถเรียกใช้จากบรรทัดคำสั่งที่ทำสิ่งที่คุณต้องการ
Prix

2

มีบางสิ่งที่คุณต้องรู้อย่างแน่นอน

คุณจำเป็นต้องมีความเข้าใจที่ดีเกี่ยวกับเชลล์ของคุณ (วิธีแยกวิเคราะห์อาร์กิวเมนต์, ขยาย wildcard อย่างไร, ซึ่งเป็นกรณีมุม niggly)

คุณต้องสามารถแก้ไขไฟล์โดยไม่ต้องใช้ X11

คุณต้องสามารถเมานต์และถอนติดตั้งระบบไฟล์ได้

คุณต้องมีความสามารถในการดูดซับข้อมูลใหม่ได้อย่างรวดเร็ว เนื่องจากสิ่งเหล่านี้เป็นทักษะที่คุณต้องการเมื่อเซิร์ฟเวอร์ฟาร์มทั้งหมดของ บริษัท หยุดทำงานและคุณสามารถเข้าถึงได้ผ่านทางเซิร์ฟเวอร์คอนโซลแบบ piddly (นั่นคือ "คอนโซล" ในพอร์ตอนุกรม) และ / หรือการเชื่อมต่อ VPN ที่ช้ามาก เจ็บปวด). และมันจะเกิดขึ้นดังนั้นจงวางแผนไว้


2

ตัวอย่างที่ให้มาคือคำตอบที่เกี่ยวข้องกับเซิร์ฟเวอร์ทั้งหมด .. แต่ .. การบริหารระบบไม่เคยมีคอมพิวเตอร์ 100% .. ฉันหวังว่ามันจะเป็น!

คุณต้องจัดการกับผู้คนด้วยในกรณีของเรานั่นหมายถึงการทะเลาะวิวาท, ผู้แพ้, ผู้รับจ้างและซัพพลายเออร์ .. arg ^ n

ทักษะการบริการลูกค้ารู้วิธีที่จะพูดคุยเกี่ยวกับสิ่งที่คุณต้องการ / ต้องการ / ต้องทำรับข้อมูลกับคนอื่น ๆ เอกสารทั้งหมดมีความสำคัญในการรักษางานดูแลระบบของคุณ

หากคุณต้องการรับเงินทุนและใช้โครงการของคุณ: ไม่มีจุดพยายามรับเซิร์ฟเวอร์ใหม่หากคุณไม่รู้วิธีขอเงินหากคุณไม่มีตัวเลข / ทางเลือก / แผน DR / คำพูด / แผนการดำเนินการ การเมืองในสำนักงานเป็น B ** CH, เงินอยู่เสมอ: "แน่น" .. อะไรก็ตามที่แปลว่า .. ไม่ส่งผลกระทบต่อรถยนต์ของ บริษัท ผู้บริหาร แต่มันจะส่งผลกระทบต่อความปลอดภัยและความสามารถของเว็บไซต์ของคุณในการสร้างมาตรฐานหากคุณสามารถ ไม่ประทับใจกับพวกเขาด้วยเหตุผลของคุณ

ผมว่าสิ่งที่สำคัญที่สุดที่จะจำ: อย่าไว้ใจสิ่งที่ผู้ใช้กล่าวว่า จำไว้ว่าเมื่อรับโทรศัพท์ .. ไม่ว่าพวกเขาจะพูดอะไรคุณจะต้องคิดออกเองเพราะท้ายที่สุดแล้วตูดของคุณไม่ใช่ของพวกเขาและโดยทั่วไปพวกเขาก็ไม่รู้ เพียงเพราะพวกเขาสามารถรวบรวมย่อหน้า buzzword ที่เต็มไปด้วยลวงเจ้านายของคุณไม่ได้หมายความว่าพวกเขารู้ว่าสิ่งที่พวกเขาเพิ่งพูด

ความคิดอื่น ๆ:

  • ตรวจสอบให้แน่ใจว่าคุณมีเวลาเพียงพอในการปิดเครื่อง UPS ทุกอย่างเมื่อ ไฟฟ้าดับ

  • การติดตามตรวจสอบให้แน่ใจว่าคุณรู้ว่ามันลงไป .. อย่ารอให้ผู้มีโทรศัพท์เข้ามา

  • BACKUPS BACKUPS BACKUPS .. ระบบหลายผู้ใช้มีแนวโน้มที่จะทำงานล่วงเวลาหากคุณไม่มีระบบสำรองข้อมูลที่ดี .. การทำงานล่วงเวลาไม่ดี (ไม่ใช่สำหรับกระเป๋าของคุณ แต่สำหรับงบประมาณและความเป็นมืออาชีพของคุณ)

  • ไม่เคยเปลี่ยนสิ่งใดในวันศุกร์หรือวันก่อนวันหยุด .. คุณจะถูกเรียกในช่วงสุดสัปดาห์คุณจะต้องแก้ไขมันคุณจะมีช่วงเวลาที่เลวร้าย ..

  • สร้างมาตรฐานและอัตโนมัติ .. ให้มากที่สุดเท่าที่คุณจะประหลาดใจได้! หากคุณสามารถสคริปต์มันทำไมคุณไม่?

  • คิดว่าจะใช้ / ติดตั้งระบบช่วยเหลือได้อย่างไรทำให้ผู้ใช้เข้าสู่ระบบการโทรผ่านมันจะช่วยให้คุณติดตามกิจกรรมของคุณให้สิ่งจูงใจที่สูงขึ้นเพื่อจ่ายให้คุณมากขึ้นสำหรับงานที่คุณทำและอนุญาตให้คุณบันทึก คำตอบของคุณ (defacto KB) .. ทั้งหมดในขณะที่แจ้งให้ผู้ใช้ทราบถึงความคืบหน้า มั่นใจได้ว่าผู้ใช้แบบสอบถาม / ปัญหาไม่ได้หายไปในน้ำท่วม .. (Spiceworks ฟรีมีอื่น ๆ อีกมากมาย)

  • ฉันซื้อสำเนาของ: The Practice of System Administrationโดย Limoncelli ฉันขอแนะนำเป็นอย่างยิ่ง


1

ผู้ดูแลระบบ Linux จำเป็นต้องเข้าใจสิทธิ์การใช้ไฟล์อย่างละเอียดรวมถึงการใช้เครื่องมือเช่นsuและsudo , chmodและchownเป็นต้นวิธีเพิ่มผู้ใช้ในกลุ่มหรือสร้างผู้ใช้ใหม่วิธีการมอบสิทธิ์ SSH ให้กับผู้ใช้บางคนหรือ กลุ่ม



0

เรียนรู้sed, grepและawk: จำนวนมากของสิ่งที่ฉันทำในชีวิตประจำวันเป็นดูแลระบบลินุกซ์คือดึงลงรายการใหญ่ของไฟล์ / คอมพิวเตอร์ / ผู้ใช้ / etc และแปลงอินพุตเป็นชุดเอาต์พุตอื่นเพื่อให้โปรแกรมอื่นใช้

ตัวอย่างที่ชัดเจนของเรื่องนี้คือการจับรายการคอมพิวเตอร์ที่จับจากการพูดบักซิลลาหรือ RT กำจัดข้อมูลที่ไม่เกี่ยวข้องทั้งหมดที่ฉันได้คัดลอกและวางลงในเอกสารข้อความอย่างรวดเร็วโดยใช้หนึ่งในสามเครื่องมือด้านบนแล้วส่งออก รายการที่คั่นด้วยช่องว่างของกลุ่มของโหนดที่ฉันต้อง SSH เข้าไป

นอกจากนี้คุณต้องทราบถึงขีด จำกัด สูงสุดของเชลล์ที่คุณใช้ด้วย บ่อยกว่านั้นถ้าคุณต้องกำจัดไฟล์เก่า ๆ ออกไปคุณจะพบกับโฟลเดอร์ที่มีไฟล์ขนาด 30k + อยู่ rm *จะไม่ทำงานเนื่องจากเครื่องหมายดอกจันจะขยายไปยังรายการที่มีมากกว่า 30k รายการและเชลล์ที่คุณใช้อาจไม่สามารถเก็บรายการขนาดนั้นได้ วิธีที่คุณแก้ปัญหานี้คือxargs: แทนที่จะเป็นrm *คุณต้องการใช้ls | xargs -i{} rm {}ซึ่งจะทำงาน


0

ในฐานะผู้ดูแลระบบฉันคิดว่าตัวเองเป็นหมอดิจิทัล (หรือขึ้นอยู่กับวันบางครั้งศัลยแพทย์สมองระดับโลก)

เมื่อทุกอย่างทำงานคุณจะมีเวลาอีกมากในการพัฒนาทักษะและระบบที่คุณจัดการ

เมื่อสิ่งที่ล้มเหลวคุณจะต้องสามารถวินิจฉัยปัญหาได้ทันทีและตระหนักถึงวิธีการแก้ไข

ดังนั้นคุณต้องเรียนรู้ / จดจำพื้นฐาน (รวมถึงจุดภายใน) ของเซิร์ฟเวอร์และแอปพลิเคชันที่คุณดูแล สมมติว่า บริษัท ของคุณโฮสต์เว็บไซต์ที่มีรูทเว็บที่ให้บริการผ่าน NFS ทันใดนั้นโหน www ทั้งหมดเริ่มตื่นตระหนกและไซต์หยุดตอบสนอง ต้องสงสัยอะไร อ๋อ! เซิร์ฟเวอร์ NFS หยุดทำงานและการคลัสเตอร์ล้มเหลวไม่ทำงานด้วยเหตุผลบางประการ

สิ่งสำคัญอีกประการหนึ่งในการเรียนรู้คือโหลดพื้นฐานของเซิร์ฟเวอร์ที่คุณดูแล เรียนรู้วิธีจดจำการโหลดเฉลี่ยการใช้งาน cpu การใช้หน่วยความจำและสิ่งต่างๆ ตกลงคุณไม่จำเป็นต้องจดจำทุกสิ่งจริง ๆ- กราฟที่สร้างด้วย Cacti หรือ net-snmp + mrtg สามารถช่วยได้มาก แต่ถ้าเพจเจอร์ของคุณส่งสัญญาณเตือนเกี่ยวกับเซิร์ฟเวอร์ X ที่ทำงานผิดปกติและในขณะเดียวกันฝ่ายช่วยเหลือโทรหาคุณเล่าเรื่องอื่น เซิร์ฟเวอร์หรือบริการที่ไม่น่าสนใจคุณอาจรวมสองสิ่งนี้เข้าด้วยกันและไปแก้ไขสิ่งนั้นก่อนที่จะดูบันทึกประวัติเตือนภัยหรือกราฟ

เตรียมตัวให้พร้อมสำหรับสิ่งที่เลวร้ายที่สุด: คิดว่าคุณจะทำอย่างไรถ้าดาต้าเซ็นเตอร์ทั้งหมดดับเนื่องจากไฟดับ คุณจะบู๊ตทุกอย่างหลังจากกระแสไฟฟ้าพร้อมใช้งานอีกครั้งได้อย่างไร คุณจะทำอย่างไรถ้ามีบางอย่างไม่ยอมเริ่ม? คุณจะคืนค่าการสำรองข้อมูลอย่างไร หรือคุณจะทำอย่างไรถ้ามีคนแจ้งเตือนคุณเกี่ยวกับแครกเกอร์ที่เพิ่งบุกเข้าไปยังเซิร์ฟเวอร์ของคุณ (สิ่งนี้ควรบันทึกไว้ในรายการตรวจสอบ แต่ควรมีสัญชาติญาณด้วยเช่นกัน)


และตามที่ผู้อื่นกล่าวถึงให้ดำเนินการและเขียนสคริปต์สิ่งที่ควรเรียกใช้ (กึ่ง) โดยอัตโนมัติ เรียนรู้และเล่นกับเชลล์ / Perl พวกเขาเป็นเพื่อนที่ดีที่สุดของคุณอย่างแท้จริงและบ่อยครั้งที่สามารถแก้ปัญหาที่ซับซ้อนได้ด้วยการใช้คำสั่งเพียงสองคำสั่งเข้าด้วยกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.