Những gì một quản trị viên Linux phải biết bằng đầu?


16

Tôi không phải là quản trị viên hệ thống, nhưng tôi có kiến ​​thức tốt về Linux, Unix, Windows và phần cứng.

Các chủ đề cần thiết nhất mà Quản trị viên Linux phải biết là gì (tại thời điểm có thể sửa chữa, thiết lập, giải quyết nó mà không cần phải đọc hướng dẫn ở mức tối đa; kiểm tra các trang hướng dẫn chung với bất kỳ phân phối nào )?

Các FOCUS Tôi muốn thiết lập này sẽ là từ mạng công ty để quản lý máy chủ mà có thể có một số tính năng tương đương hầu hết thời gian sẽ có một số những người khác nhau là tốt. Ví dụ như bạn sẽ không luôn thấy máy chủ FTP cho máy chủ của công ty nhưng có thể thấy Samba hầu hết ...

Tôi không nói "cuốn sách bạn phải đọc" hoặc những thứ tương tự, nhưng ý tôi là những tính năng cần thiết nhất có lẽ sẽ cần thiết trong cuộc sống hàng ngày của bạn với tư cách là quản trị viên Linux.

Giống:

  1. Hạt nhân, iptables
  2. Sendmail, Postfix, qmail, exim
  3. Mực, Samba, NFS, LDAP
  4. Apache, ngxix, lighthttpd
  5. vsftpd, proftpd
  6. trói buộc
  7. Những vấn đề hàng ngày phải đối mặt
  8. Tính năng bạn sử dụng nhiều nhất trong ngày là gì

Đây không phải là một danh sách theo thứ tự cũng không cần thiết nhất. Nó chỉ đặt tên cho một cái gì đó đến trong đầu tôi.

Tái bút: Tôi đã có kiến ​​thức cơ bản, nhưng tôi không có kinh nghiệm hàng ngày trên sân. Tôi đã có máy chủ, tạo một số mạng, vân vân. Hơn nữa tôi thậm chí có một số kiến ​​thức sâu sắc trong một số phần của nó. Tôi chỉ muốn cập nhật điều này ở đây, như tôi đã nói đây là một DANH SÁCH HÀNG NGÀY CỦA MỘT CUỘC SỐNG LINUX SYSADMIN.

Tôi sẽ đánh giá cao nếu các bạn / các cô gái có thể liệt kê các chủ đề và ví dụ lĩnh vực nào bên trong nó được sử dụng nhiều nhất hoặc quan trọng để ghi nhớ.

Nếu bạn tin rằng câu hỏi của tôi không phù hợp, hãy cho tôi biết về nó và tôi sẽ tự xóa nó hoặc nếu bạn cảm thấy nó phù hợp nhưng cần được làm lại nhiều hơn, hãy cho tôi biết và tôi sẽ cố gắng hết sức.

Câu trả lời:


19

Bạn có thực sự chắc chắn rằng bạn quan tâm đến những điều hàng ngày? Cá nhân tôi nghĩ rằng những điều bạn nên ghi nhớ là những điều bạn sẽ cần phải làm khi một cái gì đó bị phá vỡ, và tất cả mọi người đang thở dốc để lấy lại mạng. Mọi thứ hàng ngày có xu hướng thay đổi dựa trên những gì các hộp Linux của bạn đang làm trên mạng của bạn.

Tôi nghĩ rằng có một vài kỹ năng khá quan trọng.

  • Bạn phải có thể định cấu hình mạng chỉ bằng các công cụ cli như ifconfig, route và ip.

    • Một vài lần khách hàng đã gọi rằng hộp Linux của họ đã bị lỗi. Tôi đã có họ khởi động một livecd. Nhưng máy chủ nằm trên một mạng không có DHCP (đó là DHCP). Khi hệ thống đã được khởi động, tôi cần hướng dẫn họ khởi động mạng và SSH để tôi có thể kết nối từ xa và giúp họ chẩn đoán và khắc phục những gì đã bị hỏng.
    • Bạn có thể đang ở thời điểm mà bạn không thể truy cập Internet và bạn sẽ cần biết cách truy cập trực tuyến.
  • Tôi nghĩ bạn nên biết cách sao lưu toàn bộ hệ thống bằng tar, rsync hoặc dd. Nếu bạn không biết cách thực hiện sao lưu và khôi phục những thứ bạn gần như chắc chắn không nên chạm vào hệ thống. Bạn cũng cần phải thực sự đảm bảo sao lưu được thực hiện trước khi thay đổi hệ thống.

  • Tôi nghĩ bạn nên biết cách truy cập các hệ thống tập tin từ một livecd trên máy chủ của bạn. Điều này có nghĩa là bạn nên biết cách kích hoạt các ổ đĩa dựa trên LVM và RAID, truy cập thông tin phân vùng và gắn kết các hệ thống tệp.

    • Nếu máy chủ của bạn không thể khởi động, bạn có thể cần truy cập hệ thống tệp và sửa một cái gì đó. Sẽ rất đau đớn khi cố gắng tìm ra cách thực sự gắn kết mọi thứ trong trường hợp khẩn cấp. Hãy chuẩn bị trước thời hạn.
  • Bạn nên làm quen với quá trình khởi động để có thể thay đổi mọi thứ khi khởi động. Hầu hết các hệ thống sử dụng GRUB, nhưng bạn có thể chạy vào LILO.
    • Điều quan trọng, biết cách khởi động vào các cấp độ chạy khác nhau, chẳng hạn như người dùng đơn lẻ.
  • Tôi nghĩ bạn nên có ít nhất một kiến ​​thức làm việc về cách thực hiện một số ảnh chụp cơ bản với tcpdump và có thể đọc kết quả. Tất cả các tính năng GUI đẹp trong Wireshark đều tốt, nhưng nếu có gì đó bị hỏng, bạn có thể không thực sự có thể truy cập Wireshark.
    • Có một số lượng lớn các sự cố mạng mà tôi có thể nhanh chóng xác định và giải quyết chỉ bằng cách chạy tcpdump.

Các điểm rất hay được thực hiện về vấn đề mạng và hệ thống tệp đánh giá cao câu trả lời :)
Prix

Are you really sure you care about the day-to-day things?Mmmmm nhưng vấn đề inst xảy ra một phần của cuộc sống hàng ngày của một người? Điều này sẽ dẫn bạn đến các tính năng được sử dụng cho mạng ifconfig dhcp như bạn đã nói ... gỡ lỗi ở cấp độ nào xảy ra sự cố, v.v.
Prix

10
Điểm tốt. Cũng dọc theo dòng đó: Bạn nên biết những điều cơ bản của trình soạn thảo vi. Bất kể nếu bạn sử dụng joe, pico, emacs hoặc MS Word để chỉnh sửa hàng ngày, chúng sẽ không có sẵn trong hệ thống cứu hộ và vi là khác nhau ;)
Sven

1
Cảm ơn, tôi đã tìm kiếm một cái cớ để dành thời gian tìm hiểu nhiều hơn: q! lệnh trong vi.
tovare

nano và vi / vim thường có sẵn trên toàn cầu, mặc dù tôi đã thấy các hệ thống chỉ có nano
Fahad Sadah

11

Biết những gì bạn có công cụ

Bạn sẽ không bao giờ biết mọi thứ trước thời hạn. Nhưng bạn có thể biết những gì bạn phải làm việc với. Càng biết nhiều công cụ, bạn càng có thể sử dụng. Nếu bạn biết công cụ này là gì, nó làm gì và tìm thêm thông tin về nó ở đâu, thì điều đó đủ tốt để bắt đầu.

Làm quen với các mantrang. Bạn không cần phải ghi nhớ chúng, nhưng bạn nên biết nơi để tìm thấy những gì bạn đang tìm kiếm. mancác trang tốt hơn Google để tìm kiếm chi tiết cú pháp, vì các trang được cài đặt trên một hệ thống nhất định phản ánh các thông tin cụ thể hoặc phiên bản cụ thể tương ứng với hệ thống mà bạn đang xem.

Nếu bạn sử dụng apachenhiều, thì tôi khuyên bạn nên học cú pháp cấu hình apache. Nếu bạn sử dụng nginxthay thế, sau đó tìm hiểu điều đó. Nhưng dù bằng cách nào, bạn nên biết cả hai là gì và chúng khác nhau như thế nào.

Công cụ hệ thống

Có một vài công cụ sẽ giúp bạn cho dù bạn đang làm loại sysadmin nào. Giả sử bạn biết những điều cơ bản, như chmod, mountv.v., đây là một vài công cụ rất hữu ích mà một số quản trị viên không hiểu rõ lắm:

  • rsync
  • sar / iostat (một phần của gói sysstat)
  • setfacl / getfacl (hầu hết quản trị viên nghĩ rằng chmod / chown là tất cả những gì bạn phải làm việc với)
  • cuộn tròn và / hoặc wget
  • iptables
  • ai / cuối / w

Dòng lệnh Ninja

Tôi muốn nói một sự hiểu biết vững chắc về kịch bản shell thực sự kỳ diệu để làm cho những điều khó khăn trở nên nhanh chóng và dễ dàng. Nếu bạn phải tìm kiếm cú pháp, thì rất có thể bạn sẽ không làm điều đó, vì vậy biết trước thời hạn là rất quan trọng.

Ví dụ: giả sử bạn có thư mục chứa đầy các mysqldumptệp ".sql", mỗi tệp đại diện cho một cơ sở dữ liệu cần được nhập vào máy chủ. Bạn có nhập tất cả 35 cái bằng tay không? Nếu bạn đã quen thuộc với kịch bản shell, thì thật dễ dàng chỉ cần gõ một lệnh và sau đó đi lấy một ít cà phê:

Lưu ý: Tôi chia nó thành các dòng riêng biệt để dễ đọc; nếu bạn để lại dấu chấm phẩy, bạn có thể đặt tất cả trong một dòng. Mặt khác, dấu chấm phẩy không cần thiết ở cuối mỗi dòng.

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

Ngoài ra, tôi khuyên bạn nên sử dụng sed. Hãy nghĩ về nó như một cách để áp dụng các biểu thức thông thường ở bất cứ đâu. http://www.grymoire.com/Unix/Sed.html

Giả sử bạn đã thay đổi số điện thoại của mình và cần cập nhật tất cả các trang web của bạn cho phù hợp (và lưu một bản sao lưu trong trường hợp bạn làm hỏng).

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

Biết cách xâu chuỗi đúng các công cụ hiện có để làm những điều mới cũng có thể thực sự hữu ích. Giả sử bạn cần thực hiện tương tự như trên, nhưng cũng tìm kiếm bên trong các thư mục con -

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

Nó cũng hữu ích để có một số kinh nghiệm với perl. Bạn có thể không cần phải viết bất kỳ chương trình nghiêm túc nào với nó, nhưng nó được thiết kế để làm rất nhiều việc sedawklàm, chỉ có thể linh hoạt hơn một chút.

Perl có thể được sử dụng để làm phép thuật dòng lệnh bằng cách sử dụng -etùy chọn. Sử dụng với -p, -n-i, bạn có thể nhanh chóng viết các bộ lọc đơn giản để thực hiện những việc thực sự hữu ích. Ví dụ: giả sử bạn cần tìm địa chỉ IP của tất cả những người đã truy cập "/admin.php" vào tháng 9:

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

Xem? Điều đó không tệ lắm. Là sysadmin, bạn sẽ biết cách làm công cụ này.


+1 @tylerl những điểm rất hay được thực hiện ở đây ... tôi thường sử dụng perl để hiểu rõ hầu hết những điều tôi cần làm với dòng lệnh và tôi có thể đảm bảo với bạn rằng đó là điều bắt buộc! Bạn có phiền đăng lên một số vấn đề bạn thường chạy trhu không? Tôi cũng muốn đọc về nó, sau khi đọc câu trả lời của Zoredache, tôi thấy rằng có rất nhiều điều hữu ích xuất hiện trong đó. Rất cảm kích!
Giải thưởng

9

Tôi là một quản trị viên Windows, người đã tìm hiểu một chút về Linux, vì vậy tôi không thể trả lời câu hỏi trực tiếp. Tuy nhiên, theo ý kiến ​​của tôi, một khi bạn nắm bắt được những điều cơ bản, điều quan trọng nhất mà quản trị viên cần biết, bất kể HĐH là ở đâulàm thế nào để tìm câu trả lời.


Khai thác thông tin là một trong những kỹ năng hàng đầu của tôi. Tôi sử dụng nó liên tục trong quá trình làm nhiệm vụ.
sysadmin1138

tôi cũng đã có kiến ​​thức cơ bản nhưng tôi không có kinh nghiệm hàng ngày về lĩnh vực này, tôi đã có máy chủ, tạo một số mạng và vì vậy tôi thậm chí còn có một số kiến ​​thức sâu sắc về các phần của nó ... nhưng tôi muốn để nâng cao kiến ​​thức này với những gì thực sự được sử dụng hàng ngày cho Linux SysAdm và từ đó tìm hiểu thêm ... tôi tập trung hơn vào việc lấy danh sách cuộc sống HÀNG NGÀY ra khỏi đây :)
Prix

2

Ngoài các câu trả lời khác:

Tôi nghĩ bạn cũng nên biết cách của mình xung quanh các quy trình được xử lý:

  • kiến thức cơ bản nơi tìm công cụ trong / Proc
  • ps, top, vmstat và một số spin-off tinh vi hơn của họ (ntop, htop, v.v.)
  • biết cách diễn giải đầu ra của ít nhất một công cụ giám sát tốt như nagios (có thể là quá mức cần thiết) hoặc munin.

Tôi nghĩ rằng bạn không cần phải thành thạo sed (tôi ít nhất là tôi không), tôi quản lý để có được bằng một trong những greps (grep, egrep, zgrep, v.v.) một cách dễ dàng. Bạn phải biết cú pháp biểu thức chính quy cơ bản, mặc dù.

Tôi nghĩ bạn nên biết các lệnh cơ bản để thao tác và / hoặc giám sát MTA (postfix hoặc exim) và MDA (dovecot, cyrus, chuyển phát nhanh) nếu bạn duy trì máy chủ thư. Ngay cả khi bạn không chạy, bạn sẽ phải có thể chạy các bài kiểm tra SMTP cơ bản trên MTA, nếu chỉ đối với các sự cố giao hàng cục bộ.

Bạn nên biết cách sử dụng hệ thống xác thực bằng cách sử dụng (PAM, LDAP). Mật khẩu của bạn được lưu trữ ở đâu? dùng thủ tục gì? Ứng dụng nào sử dụng cơ chế xác thực nào?


iotop :) một công cụ tuyệt vời như vậy tôi không thể sống với ps ... Vâng, đó là những lệnh hoặc ngôn ngữ như perl, python, php mà bạn có thể chạy từ dòng lệnh làm những gì bạn cần.
Giải thưởng

2

Có một vài điều bạn hoàn toàn CẦN phải biết.

Bạn cần có một sự hiểu biết tốt về trình bao của bạn (cách nó phân tích các đối số, cách nó mở rộng các ký tự đại diện, trong đó các trường hợp góc khó hiểu).

Bạn phải có thể chỉnh sửa các tệp mà không cần chạy X11.

Bạn phải có khả năng gắn kết và ngắt kết nối các hệ thống tập tin.

Bạn phải có khả năng tiếp thu thông tin mới, nhanh chóng. Bởi vì đây là những kỹ năng bạn cần khi trang trại máy chủ của toàn công ty gặp sự cố và bạn chỉ có quyền truy cập thông qua máy chủ bảng điều khiển trung thực (đó là "bàn điều khiển" như trong cổng nối tiếp) và / hoặc kết nối VPN rất chậm (cũng tạo ra mọi thứ dựa trên X11 đau đớn). Và nó sẽ xảy ra, vì vậy hãy lên kế hoạch cho nó.


2

Các ví dụ đưa ra là tất cả các câu trả lời liên quan đến Máy chủ tuyệt vời .. tuy nhiên .. Quản trị hệ thống không bao giờ là máy tính 100% .. Tôi ước rằng nó đã được!

Bạn cũng phải đối phó với mọi người, trong trường hợp của chúng tôi, điều đó có nghĩa là Manguity, Lusers, Nhà thầu và Nhà cung cấp .. arg ^ n

Kỹ năng dịch vụ khách hàng biết cách nói về những gì bạn cần / muốn / phải làm, lấy thông tin cho người khác, tài liệu, tất cả đều cần thiết trong việc duy trì công việc sysadmin của bạn.

Nếu bạn muốn tài trợ và sử dụng các dự án của mình: Không cần cố gắng để có được một máy chủ mới nếu bạn không biết cách xin tiền, nếu bạn không có số liệu / giải pháp thay thế / kế hoạch DR / báo giá / kế hoạch thực hiện vv .. Chính trị văn phòng là một B ** CH, tiền luôn luôn là: "Chặt chẽ" .. bất kể điều đó có nghĩa là gì .. nó không ảnh hưởng đến xe của công ty thực thi, nhưng nó sẽ ảnh hưởng đến bảo mật trang web của bạn và khả năng tiêu chuẩn hóa nếu bạn có thể Không ấn tượng với họ lý do của bạn.

Tôi muốn nói điều quan trọng nhất cần nhớ: ĐỪNG TIN TƯỞNG NHỮNG NGƯỜI NÀO NÓI . Hãy ghi nhớ điều đó khi trả lời điện thoại .. bất kể họ nói gì, bạn vẫn sẽ phải tự mình tìm ra, bởi vì cuối cùng thì đó là mông của bạn chứ không phải của họ và họ thường không biết gì. Chỉ vì họ có thể tập hợp một đoạn từ thông dụng để nói xấu sếp của bạn, không có nghĩa là họ thực sự biết những gì họ vừa nói.

Những suy nghĩ khác:

  • Đảm bảo rằng bạn có đủ thời gian trên UPS để tắt tất cả mọi thứ KHI mất điện

  • Theo dõi, đảm bảo rằng bạn BIẾT nó đã bị hỏng .. đừng đợi người gọi điện thoại.

  • BACKUPS BACKUPS BACKUPS .. hệ thống nhiều người dùng có xu hướng làm thêm giờ nếu bạn không có một hệ thống sao lưu tốt .. làm thêm giờ là xấu, (không phải vì túi tiền của bạn, nhưng vì ngân sách và sự chuyên nghiệp của bạn).

  • KHÔNG BAO GIỜ THAY ĐỔI BẤT CỨ THỨ NÀO, hoặc một ngày trước ngày lễ .. bạn sẽ được gọi vào cuối tuần, bạn sẽ phải sửa nó, bạn sẽ có một khoảng thời gian thực sự tồi tệ ..

  • Chuẩn hóa & Tự động hóa .. nhiều như bạn có thể freakin! Nếu bạn có thể viết kịch bản, tại sao bạn lại không?

  • Tìm hiểu cách sử dụng / cài đặt hệ thống trợ giúp, khiến người dùng đăng nhập các cuộc gọi thông qua nó, nó sẽ cho phép bạn theo dõi các hoạt động của mình, cung cấp các ưu đãi cao hơn để trả cho bạn nhiều hơn cho công việc bạn làm và cho phép bạn ghi lại câu trả lời của bạn (defacto KB) .. tất cả trong khi thông báo cho người dùng về tiến trình. Đảm bảo rằng các truy vấn / vấn đề của người dùng không bị mất trong trận lụt .. (Spiceworks là miễn phí, có nhiều vấn đề khác)

  • Tôi đã mua một bản sao của: Thực hành Quản trị Hệ thống , bởi Limoncelli, tôi đánh giá cao nó.


1

Quản trị viên Linux cần hiểu kỹ quyền truy cập tệp , cũng như việc sử dụng các công cụ như susudo , chmodchown , v.v., làm thế nào để thêm người dùng vào một nhóm hoặc tạo người dùng mới, cách cung cấp đặc quyền SSH cho một số người dùng nhất định hoặc các nhóm.



0

Tìm hiểu sed, grepawk: rất nhiều việc tôi làm hàng ngày với tư cách là một sysadmin của Linux đang kéo xuống một danh sách khổng lồ các tệp / máy tính / người dùng / v.v. và chuyển đổi đầu vào thành một bộ đầu ra khác để sử dụng chương trình khác.

Một ví dụ cụ thể về việc này là lấy một danh sách các máy tính bị lỗi từ, nói, bugzilla hoặc RT, loại bỏ tất cả các thông tin không liên quan mà tôi đã nhanh chóng sao chép và dán vào tài liệu văn bản bằng một trong ba công cụ trên, sau đó xuất ra một danh sách giới hạn không gian của một loạt các nút mà tôi cần SSH vào.

Ngoài ra, bạn chắc chắn sẽ phải biết giới hạn trên của vỏ bạn đang sử dụng. Thường xuyên hơn không, nếu bạn phải loại bỏ một loạt các tệp cũ, bạn có thể sẽ chạy vào một thư mục chứa 30k + tệp trong đó. rm *sẽ không hoạt động, vì dấu hoa thị sẽ mở rộng thành một danh sách có hơn 30k mục và trình bao bạn đang sử dụng có thể sẽ không thể giữ danh sách có kích thước đó. Cách bạn giải quyết vấn đề này là xargs: thay vì rm *, bạn sẽ sử dụngls | xargs -i{} rm {} , cách này sẽ hiệu quả.


0

Là một sysadmin, tôi coi mình là một bác sĩ kỹ thuật số (hoặc, tùy thuộc vào ngày, đôi khi là một bác sĩ phẫu thuật não đẳng cấp thế giới).

Khi mọi thứ hoạt động, bạn sẽ có nhiều thời gian để cải thiện các kỹ năng của riêng bạn và các hệ thống bạn quản lý.

Khi một cái gì đó không thành công, bạn sẽ cần có thể chẩn đoán ngay vấn đề và nhận ra cách khắc phục nó.

Vì vậy, bạn cần học / ghi nhớ những điều cơ bản (và cũng có thể đến một số điểm bên trong) của các máy chủ và ứng dụng bạn quản lý. Giả sử công ty của bạn lưu trữ một trang web với web root được phục vụ qua NFS. Đột nhiên tất cả các nút www bắt đầu báo động và trang web ngừng phản hồi. Nghi ngờ điều gì? À ha! Máy chủ NFS vừa ngừng hoạt động và phân cụm chuyển đổi dự phòng cũng không hoạt động vì một số lý do.

Một khía cạnh quan trọng khác để tìm hiểu là tải cơ sở của các máy chủ bạn quản lý. Học cách ghi nhớ tải trung bình của họ, sử dụng cpu, sử dụng bộ nhớ và những thứ tương tự. OK, bạn không cần phải thực sự ghi nhớ tất cả những điều đó - đồ thị được tạo bằng Cacti hoặc net-snmp + mrtg có thể giúp ích rất nhiều, nhưng nếu máy nhắn tin của bạn báo động về máy chủ X hành xử kỳ lạ và đồng thời trợ giúp bạn gọi cho bạn về một số khác Máy chủ hoặc dịch vụ đi bonkers, bạn có thể kết hợp hai thứ đó và đi sửa nó trước khi nhìn vào nhật ký, lịch sử báo động hoặc đồ thị.

Ngoài ra, hãy chuẩn bị cho điều tồi tệ nhất: nghĩ xem bạn sẽ làm gì nếu toàn bộ trung tâm dữ liệu bị mất điện do mất điện. Làm thế nào bạn sẽ khởi động mọi thứ lên sau khi điện trở lại có sẵn? Bạn sẽ làm gì nếu một cái gì đó không khởi động? Làm thế nào bạn sẽ khôi phục lại bản sao lưu? Hoặc bạn sẽ làm gì nếu ai đó cảnh báo bạn về một kẻ bẻ khóa vừa xâm nhập vào máy chủ của bạn? (Loại điều này nên được ghi lại dưới dạng danh sách kiểm tra, nhưng cũng tốt để có một số loại trực giác)


Và, như được đề cập bởi những người khác, hãy tiếp tục và viết kịch bản những thứ sẽ chạy (bán) tự động. Học và chơi với shell / Perl, họ thực sự là những người bạn tốt nhất của bạn và thường có thể giải quyết các vấn đề rất phức tạp chỉ bằng vài lệnh được ghép với nhau.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.