เครื่องมือผู้ดูแลระบบ Unix ไม่สามารถใช้งานได้หากไม่มี [ปิด]


33

หลังจากจัดการเซิร์ฟเวอร์ Unix หรือ Unix แล้วคุณรู้สึกว่าคุณไม่สามารถใช้เครื่องมือใด (บรรทัดคำสั่งพิเศษ)

คำตอบ:



34

บางฉันรู้ว่าฉันไม่สามารถอยู่ได้โดยปราศจาก ...

  • tee - อนุญาตให้เขียนพร้อมกันไปยัง STDOUT (เอาต์พุตมาตรฐาน) และไฟล์ เหมาะสำหรับการดูข้อมูลและบันทึกไว้ในภายหลัง

  • ด้านบน - ตัวจัดการงานของ UNIX ให้ภาพรวมที่ดีของระบบ

  • tail -f - ช่วยให้คุณดูข้อมูลที่ต่อท้ายเมื่อไฟล์โตขึ้นเหมาะสำหรับการตรวจสอบไฟล์บันทึกบนเซิร์ฟเวอร์

  • grep - Global Regular Expression Print เหมาะสำหรับการค้นหาข้อมูลในไฟล์

  • df - รายงานการใช้งานดิสก์ของระบบไฟล์ปัจจุบัน

  • du - รายงานการใช้งานดิสก์ของไฟล์ / ไดเรกทอรีที่แน่นอน

  • น้อยกว่า - จำเป็นเพื่อดูหน้าคน! ยังมีประโยชน์สำหรับการดูเอาต์พุตของคำสั่งในลักษณะที่ค้นหาได้ง่าย

  • vim / Emacs / nano / pico / ed - ไม่ว่าตัวแก้ไขข้อความที่คุณเลือกจะเป็นอะไรอธิบายได้ด้วยตนเองว่าทำไมถึงต้องการ


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

8
คุณสมบัติที่มีประโยชน์ แต่ไม่ค่อยมีคนรู้จักน้อยก็คือคุณสามารถใช้คำสั่ง 'v' เพื่อเริ่มแก้ไขไฟล์ที่คุณกำลังดูอยู่ ตัวช่วยจำคือ 'v' สำหรับ 'vi'
dr-jan

และถ้าคุณไม่ชอบmoreหรือคุณสามารถลองless most
drybjed

PAGER ที่ฉันต้องการตอนนี้คือจริง ๆ แล้ว w3m มันมีคุณสมบัติทั้งหมดที่น้อยกว่าและสามารถเพิ่มเป็นสองเท่าเป็นเว็บเบราว์เซอร์โหมดข้อความ :-) ฉันยังใช้ฟังก์ชั่นทุบตีเพื่อใช้เสียงเรียกเข้าในโหมดอ่านอย่างเดียว (ด้วยวิธีนี้ ฟังก์ชั่นทุบตีใช้เพื่อตัดสินใจว่าจะให้ '-' (สำหรับการอ่าน stdin) หรือไม่ (ในกรณีที่เราทำการเพจไฟล์) ธิเช่นเสน่ห์ยกเว้นหน้าคนที่ nroff ไม่ทับ ...
njsf

1
htopเป็นรุ่นที่ "ดี" topของ
Alexander Bird

26

lsofเพื่อพิจารณาว่าโปรเซสใดกำลังใช้ไฟล์หรือไดเรกทอรี (มีประโยชน์เมื่อพยายามที่จะคิดออกว่าอะไรที่ป้องกันไม่ให้อุปกรณ์ umount'd)

netstatเพื่อพิจารณาว่ากระบวนการใดกำลังใช้การเชื่อมต่อเครือข่าย (โดยเฉพาะอย่างยิ่งมีประโยชน์เมื่อพยายามคิดว่า daemon ใดที่ถูกผูกไว้กับพอร์ตที่แน่นอน)


1
หากคุณมี lsof คุณไม่ต้องการ netstat เพียงใช้ lsof -i
vartec

lsof -n คือคำร้องที่ฉันโปรดปราน ฉันไปที่ grep เพื่อตัดมันลง
Matt Simmons

19

เรียนรู้เครื่องมือพื้นฐานทั้งหมด แต่เรียนรู้ Perl

Perl เหมาะอย่างยิ่งสำหรับการจัดการข้อความและเนื่องจากตัวดำเนินการ un * x อาศัยอยู่ในไฟล์ข้อความ, ท่อ, อินพุตและเอาต์พุต, Perl จึงเหมาะสมอย่างยิ่ง

โบนัสเพิ่มเติมคือ Perl เป็นแพลตฟอร์มข้ามและหากคุณต้องทำงานบางอย่างบนกล่องหน้าต่างคุณมีภาษาที่ติดตั้งได้ง่าย (เพียงแค่วางไดเรกทอรี Perl บนเซิร์ฟเวอร์) ภาษาที่คุณรู้อยู่แล้ว

และบนรถไฟแห่งความคิดรับ Cygwin เช่นกัน หากคุณเป็นผู้ดูแลระบบ un * x และต้องทำงานบนกล่องหน้าต่าง (แม้แต่เดสก์ท็อปของคุณ) ที่มี ls, rm, grep, sed, tail และอื่น ๆ ช่วยให้คุณประหยัดเวลาได้มากเมื่อเปลี่ยน OS


18
  • sed
  • awk

ปู่ที่ถูกลืมของการเขียนสคริปต์ระบบที่ทันสมัย ฉันรู้ว่า Perl ได้รับความรักส่วนใหญ่ (พร้อมกับ Bash scripting, Python, Ruby และ [ใส่ภาษาสคริปต์ที่คุณชื่นชอบที่นี่]) และอย่าเข้าใจฉันผิดฉันรัก Perl ฉันใช้มันเกือบทุกวัน

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


13

rsync โดยเฉพาะอย่างยิ่งในคอนเสิร์ตด้วย ssh ช่วยให้การคัดลอกไฟล์จากโฮสต์ไปยังโฮสต์ทำได้ง่าย เราไม่เคยรับมือโดยไม่ใช้ ssh และ rsync ได้อย่างไร? :-)


12

netcat

  • ทดสอบว่าบริการ TCP กำลังฟังอยู่หรือไม่
  • ทำธุรกรรมกับโพรโทคอลธรรมดาเช่น SMTP
  • การถ่ายโอนข้อมูลที่ไม่ปลอดภัยอย่างรวดเร็วระหว่างเครื่อง
  • การจำลองไคลเอ็นต์ Telnet

เครือข่ายมีดสวิสกองทัพอย่างที่พวกเขาพูด


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

12

เผชิญหน้ากับมันไม่ช้าก็เร็วคุณจะต้องรับมือกับเครือข่ายเช่นกัน mtr , tcpdumpและtsharkมีประโยชน์มากสำหรับการดูว่าเกิดอะไรขึ้น


9

สำหรับสคริปต์แบบอัตโนมัติแบบอัตโนมัติ ฯลฯ :

  • ทุบตี
  • Perl

วิธีเชื่อมต่อกับเซิร์ฟเวอร์ * NIX ของคุณ:

  • เปิด SSH (ไคลเอ็นต์ Linux)
  • ผงสำหรับอุดรู (ไคลเอนต์ Windows)

+1 สำหรับ ... ก็จริงทั้งหมด แต่ Perl โดยเฉพาะอย่างยิ่ง * ระวัง, Windows หรือ Mac ฉันไม่สามารถจินตนาการสิ่งที่ฉันจะทำโดยไม่ได้
John Gardeniers

9

ฉันใช้เครื่องมือส่วนใหญ่ที่ระบุไว้แล้ว แต่นี่ยังไม่มีใครแตะต้อง:

Puppet - ระบบสำหรับทำภารกิจการบริหารระบบอัตโนมัติ



6

คำตอบมาตรฐานส่วนใหญ่จะรวมอยู่ในคำตอบอื่น ๆ ดังนั้นฉันจะเลือกคำตอบที่ไม่ได้มาตรฐาน:

  • htop - ยอดเยี่ยมสำหรับการจัดการกระบวนการ
  • pinfo - คมเช่นเบราว์เซอร์สำหรับข้อมูลและหน้าคน

6

เครื่องมือที่มีประโยชน์สองสามอย่างที่ฉันยังไม่ได้กล่าวถึง:

  • dstat --nocolor (ภาพรวมของ cpu-, disk-, net-use)
  • iftop (ภาพรวมแบบไดนามิกที่ดีของการรับส่งข้อมูลเครือข่าย)
  • ccze (ไฟล์บันทึกสีเป็นอย่างดี)
  • ssh tunnels (อาจมีประโยชน์นาน ๆ ครั้ง; ดูคู่มือ; -R)
  • คาดหวัง (อินเทอร์เฟซการสนทนาแบบโต้ตอบโดยอัตโนมัติแบบโต้ตอบดีถ้าคุณอยู่ในการบีบ)

+1 "tail -f <file> | ccze" = วิธีที่น่าทึ่งในการอ่านไฟล์บันทึก
Lin

+1 สำหรับexpect
Alexander Bird

+1 สำหรับ dstat ทดแทนที่ดีที่สุดสำหรับ vmstat, iostat ฯลฯ ออกมี
Christopher Cashell

5

clusterssh

ClusterSSH ควบคุมจำนวน xterm windows ผ่านหน้าต่างคอนโซลกราฟิกเดียวเพื่อให้คำสั่งสามารถทำงานแบบโต้ตอบบนเซิร์ฟเวอร์หลายเครื่องผ่านการเชื่อมต่อ ssh


... และเนื่องจาก ClusterSSH เขียนด้วย Perl บางทีคุณควรเรียนรู้ Perl
แบรดกิลเบิร์

หน้าจอ ClusterSSH และ GNU ต่างกันอย่างไร หรือพวกเขาใช้งานที่แตกต่างกันของแนวคิดเดียวกันหรือไม่
Alexander Bird


4

pv: แสดงความคืบหน้าของการดำเนินงานที่ยาวนานซึ่งสามารถเปลี่ยนเส้นทางได้ http://www.ivarch.com/programs/pv.shtml

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

นอกจากนี้: ฉันจะให้คะแนนรองสำหรับ ssh, rsync, screen, htop และ netcat ตามที่ได้รับการกล่าวถึงโดยผู้คนข้างต้น - ทั้งหมดนี้มีความสำคัญมากกว่า pv แต่ pv ยังไม่ได้กล่าวถึง ในความเป็นจริง pv มักจะเป็นประโยชน์นอกจากนี้เมื่อมีการวางท่อไปยังหรือจากไปยัง netcat


pvอาจเป็นเครื่องมือที่มีประโยชน์ แต่ระวังอย่าใช้มากเกินไป การส่งผ่านข้อมูลนั้นมีผลกระทบต่อประสิทธิภาพอย่างแน่นอน (ข้อมูลทั้งหมดต้องผ่านโปรแกรมอื่น ) ในงานสุดท้ายของฉันเราทำการบันทึกจำนวนมาก หนึ่งในคนตัดสินใจที่จะเริ่มวาง pv ในสคริปต์การประมวลผลบันทึกจนกระทั่งเราค้นพบว่ามันเพิ่มเวลาในการประมวลผลให้กับพวกเขาประมาณ 15% ตอนนี้ใช้สำหรับงานที่ใช้เวลาน้อยกว่าไม่กี่นาทีหรือมีข้อ จำกัด ของทรัพยากรที่มีอยู่ (เช่นการข้ามการเชื่อมต่อเครือข่ายที่ช้า)
Christopher Cashell

ข้อดีก็คือคริสโตเฟอร์แม้ว่าฉันจะไม่เคยเห็นมันทำให้เกิดการเปลี่ยนแปลงของประสิทธิภาพมากถึง 15% (จากนั้นอีกครั้งสิ่งที่ฉันใช้pvเพื่อเป็นดิสก์หรือ I / O เครือข่ายที่ถูกผูกไว้แทนที่จะเป็น CPU / หน่วยความจำที่ผูกไว้) ข้อโต้แย้งเดียวกันคือกุญแจสำคัญต่อการใช้catเกิน (บางครั้งฉันใช้ cat เมื่อไม่จำเป็นต้องทำสิ่งที่อ่านจากซ้ายไปขวา แต่การคัดลอกข้อมูลในหน่วยความจำพิเศษผ่านทางท่อและการสลับบริบทสามารถมี ผลกระทบต่อประสิทธิภาพที่วัดได้)
David Spillett

ใช่ฉันทำสิ่งเดียวกัน การcatใช้งานที่มากเกินไปของฉันส่วนใหญ่มาจากการเริ่มต้นcat fooตามด้วยการกดปุ่มลูกศร "ขึ้น" แล้วเพิ่ม| [command]ลงในบรรทัดก่อนหน้าของฉัน ฉันรู้ว่าฉันกำลังใช้งาน (เล็ก) ที่ได้รับผลกระทบโดยเก็บแมวไว้ในนั้น แต่การปล่อยให้มันต้องใช้ความพยายามน้อยกว่าการเขียน / พิมพ์คำสั่ง[command] < fooซ้ำ ไม่ต้องกังวลสำหรับ (ส่วนใหญ่) ad hoc command line ทำงาน แต่ไม่เหมาะสำหรับสคริปต์ (เช่นเดียวกับที่ฉันรู้สึกต่อpvฉันเดา)
Christopher Cashell



3

บางอย่างที่ไม่ได้รับการกล่าวถึงก่อนหน้านี้:

  • หัว / ที่หาง
  • diff
  • pstree
  • น้ำมันดิน
  • gzip / bzip
  • ดู

+1 pstree ค่อนข้างหวาน
หลิน

3

ท่อน้ำมันดิน!

piping output ของ tar ไปยังยูทิลิตี้อื่น, tar ทำงานบนกล่องเดียวกัน, หรือ tar ทำงานผ่าน SSH คือยูนิกซ์โรงเรียนเก่าที่ฉันโปรดปรานสำหรับการย้ายไฟล์จากที่หนึ่งไปยังอีกที่หนึ่ง

สิ่งนี้ยังช่วยให้คุณมีตัวเลือกสไตล์ Windows ในการคัดลอกโฟลเดอร์หนึ่งไปยังอีกโฟลเดอร์หนึ่งและลงท้ายด้วยไฟล์ทั้งหมดในไดเรกทอรีต้นทางและปลายทาง



3

iotop เป็นโปรแกรมยอดนิยมในการตรวจสอบการเข้าถึง I / O ไปยังดิสก์ของคุณ


มีเฉพาะในเมล็ดที่ใหม่กว่าเท่านั้น แต่ดีมาก ๆ
Sean Reifschneider

3

เครื่องมือเหล่านี้ส่วนใหญ่มีประสิทธิภาพมากขึ้นโดยใช้ Bash "ความสมบูรณ์ของโปรแกรม" - ดังนั้นคุณสามารถทำสิ่งต่างๆในแท็บให้สมบูรณ์เช่นตัวเลือกบรรทัดคำสั่งหรือพูดชื่อของแพ็คเกจด้วย "apt-get install" นอกจากนี้ยังจะ จำกัด สิ่งที่คุณแท็บกรอกสำหรับไฟล์ที่เกี่ยวข้องตัวอย่างเช่น "unzip" จะทำเฉพาะไฟล์เก็บถาวรที่รองรับเท่านั้น

มันคือ mutts จริงๆ - ถ้าคุณไม่เคยลองเลยคุณอาจแค่ต้องทำ. bashrc ของคุณ:

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
 fi

แน่นอนว่านี่เป็นจริงบน Ubuntu และ Debian คุณอาจจำเป็นต้องได้รับแพ็กเกจในการกระจาย Linux บางอย่าง



2

บางสิ่งที่ถูกมองข้ามฉันต้องการพูดถึง

  • vim -d split screen console ที่ทำให้มองเห็นความแตกต่างในไฟล์ได้ง่ายมาก
  • pdsh ช่วยให้คุณสามารถเรียกใช้คำสั่งผ่านระบบได้มากเท่าที่คุณต้องการทั้งแบบอนุกรมหรือแบบขนาน (ฉันเป็นผู้ดูแลระบบคลัสเตอร์ฉันไม่สามารถทำงานได้หากไม่มี)
  • nmonนั้นเหมือนรอยแตกบน มันช่วยให้คุณมีความคิดที่ดีว่าเกิดอะไรขึ้นกับระบบบนหน้าจอเดียว คุณสามารถดูดิสก์ I / O การใช้งาน CPU I / O เครือข่ายและการใช้งานหน่วยความจำแบบเรียลไทม์ อย่างน้อยสิ่งที่สนุกจริงที่จะเล่นด้วยเมื่อโปรไฟล์ระบบ

โอ้และฉันลืมพูดถึงเมื่อสคริปต์ฉันเชื่อว่าคุณควรใช้ Korn ฉันเกลียด Korn (ไม่ใช่วงดนตรีฉันชอบวงดนตรี :-P) แต่มันมีอยู่ทุกที่ คุณสามารถใช้สคริปต์และย้ายไปมาระหว่าง Solaris, AIX และ Linux และไม่ต้องกังวลว่าผู้ดูแลระบบจะติดตั้ง Bash หรือไม่


2

เครื่องมือหนึ่งในบางครั้งมีประโยชน์มากคือ nohup ฉันใช้เพื่อเรียกใช้สคริปต์ที่ใช้เวลานานโดยใช้ไคลเอนต์ SSH ระยะไกล


2

man - อ่านหน้า man

elinks - เพื่อตรวจสอบ google เพราะฉันแน่ใจว่านรกจำไม่ได้ทุกอย่าง

และใส่ใจในรายละเอียดและความดื้อรั้นเพราะไม่มีพวกเขาฉันแค่เสียเวลา


+1 สำหรับการใส่ใจในรายละเอียด & ความดื้อรั้น
cop1152

2

หน้าจอเป็นสิ่งจำเป็นโดยเฉพาะอย่างยิ่งกับไฟล์. screenrc ที่ดี ฉันได้กำหนดค่าให้แสดงภาพหน้าต่างที่ฉันเข้าและสามารถย้ายระหว่างหน้าต่างเหล่านั้นด้วย Ctrl + Arrow สำหรับเซสชัน ssh เดี่ยวและหลายเชลล์มันเป็นตัวช่วยชีวิต



2

ฉันรัก AWK และ "for" ในบรรทัดคำสั่ง

โดยเฉพาะอย่างยิ่งการสร้างรายการคำสั่งที่ฉันต้องการเรียกใช้แล้วเรียกใช้งานทั้งหมดในครั้งเดียว

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