Linux 관리자가 직접 알아야 할 사항은 무엇입니까?


16

시스템 관리자는 아니지만 Linux, Unix, Windows 및 하드웨어에 대해 잘 알고 있습니다.

Linux 관리자가 알아야 할 가장 필요한 주제는 무엇입니까? (최대 값으로 매뉴얼을 읽지 않아도 수정, 설정, 작업 할 수있는 시점, 배포에 공통적 인 매뉴얼 페이지 확인) )?

FOCUS 나는이에 대한 설정을하고 싶습니다는 회사 네트워크에서 대부분의 시간이 아니라 몇 가지 다른 사람들이 몇 가지 동일한 기능을 가질 수있다 서버 관리하는 것입니다. 예를 들어 회사 서버의 FTP 서버가 항상 표시되는 것은 아니지만 대부분 Samba가 표시 될 수 있습니다.

"읽어야 할 책"이나 그와 비슷한 내용은 아니지만, 일상 생활에서 Linux 관리자로서 필요한 가장 필요한 기능을 의미했습니다.

처럼:

  1. 커널, iptables
  2. Sendmail, Postfix, qmail, exim
  3. 오징어, 삼바, NFS, LDAP
  4. 아파치, NGXIX, 라이트
  5. vsftpd, proftpd
  6. 묶다
  7. 매일 직면하는 문제
  8. 낮 동안 가장 많이 사용한 기능은 무엇입니까

이 목록은 순서가 아니거나 가장 필요한 목록이 아닙니다. 그것은 단지 내 머리에 온 무언가를 명명합니다.

추신 : 나는 이미 기본 지식을 가지고 있지만 현장에서 매일 경험이 없습니다. 서버가 있고 네트워크를 만드는 등의 작업이있었습니다. 또한 나는 그것의 일부에 대해 깊은 지식을 가지고 있습니다. 나는 이것이 LINUX SYSADMIN LIFE의 일일 목록이라고 말한 것처럼 여기에서 이것을 업데이트하고 싶었습니다.

너희들 / 갤러리가 주제를 열거 할 수 있다면, 예를 들어 그 중 어떤 필드가 가장 많이 사용되거나 암기하는 것이 중요합니까?

내 질문이 부적절하다고 생각되면 알려주십시오. 내가 직접 삭제하거나 적합하다고 생각하지만 더 많은 재 작업이 필요하면 최선을 다할 것입니다.

답변:


19

당신은 정말 당신이 일상적인 것들에 관심이 있습니까? 개인적으로 나는 당신이 기억해야 할 것은 무언가가 깨졌을 때해야 할 일이며, 모두가 네트워크를 되찾기 위해 목을 숨 쉬고 있다고 생각합니다. 일상적인 일은 Linux 상자가 네트워크에서 수행하는 작업에 따라 달라지는 경향이 있습니다.

꽤 중요한 기술이 몇 개 있다고 생각합니다.

  • ifconfig, route 및 ip와 같은 CLI 도구 만 사용하여 네트워크를 구성 할 수 있어야합니다.

    • 클라이언트가 Linux 상자가 고장 났다고 몇 번 전화했습니다. 나는 그들에게 livecd를 부팅시켰다. 그러나 서버는 DHCP가없는 네트워크에있었습니다 (DHCP). 시스템이 부팅되면 네트워크와 SSH를 시작하여 원격으로 연결하여 손상된 부분을 진단하고 수정할 수 있도록해야합니다.
    • 인터넷에 액세스 할 수없는 지점에있을 수 있으며 온라인에 접속하는 방법을 알아야합니다.
  • tar, rsync 또는 dd를 사용하여 시스템의 전체 백업을 수행하는 방법을 알아야한다고 생각합니다. 백업을 수행하고 복원하는 방법을 모르는 경우 시스템을 건드리지 않아야합니다. 또한 시스템을 변경하기 전에 실제로 백업을 수행해야합니다.

  • 서버의 livecd에서 파일 시스템에 액세스하는 방법을 알아야한다고 생각합니다. 즉, LVM 및 소프트웨어 RAID 기반 드라이브를 활성화하고 파티션 정보에 액세스하고 파일 시스템을 마운트하는 방법을 알아야합니다.

    • 서버를 부팅 할 수없는 경우 파일 시스템에 액세스하여 문제를 해결해야합니다. 비상시에 실제로 물건을 장착하는 방법을 알아 내려고 노력하는 것은 꽤 고통 스럽습니다. 미리 준비하십시오.
  • 부팅 과정을 변경할 수 있도록 부팅 프로세스에 익숙해야합니다. 대부분의 시스템은 GRUB을 사용하지만 LILO가 발생할 수 있습니다.
    • 중요한 것은 단일 사용자와 같은 다른 실행 수준으로 부팅하는 방법을 알고 있어야합니다.
  • tcpdump를 사용하여 기본 캡처를 수행하고 결과를 읽을 수있는 방법에 대한 실무 지식이 있어야한다고 생각합니다. Wireshark의 모든 멋진 GUI 기능은 훌륭하지만 문제가 발생하면 실제로 Wireshark에 액세스하지 못할 수 있습니다.
    • tcpdump를 실행하여 신속하게 식별하고 해결할 수있는 많은 네트워킹 문제가 있습니다.

네트워크 문제와 파일 시스템에 대한 아주 좋은 점은 답을 주셔서 감사합니다 :)
Prix

Are you really sure you care about the day-to-day things?mmmmm 그러나 하나의 일상 생활의 일부에서 발생하는 inst 문제? 예를 들어 당신이 말한 것처럼 네트워크 ifconfig dhcp에 사용되는 기능으로 이어질 것입니다 ... 문제가 발생하는 수준 등을 디버깅하는 등
Prix

10
좋은 지적입니다. 또한 그 줄을 따라 : vi 편집기의 기본 사항을 알아야합니다. joe, pico, emacs 또는 MS Word를 매일 편집하는 데 사용하더라도 구조 시스템에서는 사용할 수 없으며 vi는 다릅니다 .)
Sven

1
고마워, 나는 : q보다 더 많은 것을 배우는 데 시간을 할 변명을 찾고 있었다! vi의 명령.
0:51에

nano와 vi / vim은 일반적으로 보편적으로 이용 가능하지만, nano 만있는 시스템을 보았지만
Fahad Sadah

11

어떤 도구가 있는지 알고

당신은 미리 모든 것을 알 수 없습니다 . 그러나 무엇을 다루어야하는지 알 수 있습니다 . 더 많은 도구를 알수록 더 많이 사용할 수 있습니다. 도구의 기능, 기능 및 도구에 대한 자세한 정보를 찾을 수있는 위치를 알고 있다면 시작하기에 충분합니다.

man페이지에 익숙해 지십시오 . 암기 할 필요는 없지만 원하는 것을 찾을 수있는 곳을 알아야합니다. man주어진 시스템에 설치된 페이지는보고있는 시스템에 해당하는 다양한 특성 또는 버전 별 정보를 반영하므로 페이지는 구문 세부 사항을 찾는 데 Google보다 낫습니다.

apache많이 사용 하는 경우 아파치 구성 구문을 배우는 것이 좋습니다. nginx대신에 사용한다면 그 대신에 배우십시오. 그러나 어느 쪽이든, 당신은 둘 다 무엇이고 어떻게 다른지 알아야합니다.

시스템 도구

어떤 유형의 sysadmin 작업을 수행하든 도움이되는 몇 가지 도구가 있습니다. 당신이 기초를 알고 가정 등 chmod, mount등, 여기에 몇 가지 관리자가 충분히 이해하지 못하는 몇 가지 매우 유용한 도구는 다음과 같습니다 :

  • rsync
  • sar / iostat (sysstat 패키지의 일부)
  • setfacl / getfacl (대부분의 관리자는 chmod / chown 만 있으면됩니다)
  • 컬 및 / 또는 wget
  • iptables
  • 누가 / 마지막 / w

커맨드 라인 닌자

쉘 스크립팅에 대한 확실한 이해는 어려운 일을 빠르고 쉽게 해낼 수있는 놀라운 일이라고 말하고 싶습니다. 구문을 찾아야한다면, 전혀 구문을 작성하지 못할 가능성이 있으므로 미리 아는 것이 중요합니다.

예를 들어, 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신속 정말 유용한 일을하는 간단한 필터를 작성할 수 있습니다. 예를 들어, 9 월에 "/admin.php"에 액세스 한 모든 사람의 IP 주소를 찾아야한다고 가정하십시오.

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

보다? 그렇게 나쁘지 않았습니다. sysadmin은이 작업을 수행하는 방법을 알고 있어야합니다.


+1 @tylerl 아주 좋은 점은 여기에서 만들었습니다 ... 나는 종종 펄을 사용하여 명령 줄과 관련이있는 대부분의 작업을 중단하고 필연적으로 필수 요소라는 것을 알 수 있습니다! 일반적으로 trhu를 실행하는 몇 가지 문제를 게시 하시겠습니까? Zoredache 답변을 읽은 후에도 그에 대해 많은 유용한 것들이 나온다는 것을 알았습니다. 매우 감사합니다!
Prix

9

나는 리눅스에서 조금 멍청한 Windows 관리자이므로 질문에 직접 대답 할 수있는 위치에 있지 않습니다. 그러나 내 의견으로는 일단 기본 사항을 제대로 이해하면 OS와 상관없이 관리자가 알아야 할 가장 중요한 것은 대답을 찾는 방법위치 입니다.


정보 마이닝은 저의 최고의 기술 중 하나입니다. 나는 의무의 과정에서 끊임없이 그것을 사용합니다.
sysadmin1138

글쎄, 나는 이미 기본 지식을 가지고 있지만 현장에서 매일 경험이 없으며 서버를 가지고 있고 일부 네트워크를 만들었으므로 더 많은 부분에 대해 깊은 지식을 가지고 있습니다 ...하지만 싶습니다. 실제로 Linux SysAdm에 매일 사용되는 내용으로이 지식을 강화하고 더 많은 정보를 얻을 수 있습니다. 나는 이것에서 일상 생활 목록을 얻는 데 더 집중하고 있습니다 :)
Prix

2

다른 답변 외에도 :

프로세스가 처리되는 방식을 알고 있어야한다고 생각합니다.

  • / proc에서 물건을 찾을 수있는 기본 지식
  • ps, top, vmstat 및보다 정교한 분사 (ntop, htop 등)
  • nagios (과도 할 수도 있음) 또는 munin과 같은 하나 이상의 우수한 모니터링 도구의 출력을 해석하는 방법을 알고 있어야합니다.

나는 당신이 sed를 마스터 할 필요가 없다고 생각합니다 (최소한은 아닙니다.) greps (grep, egrep, zgrep 등) 중 하나를 쉽게 사용할 수 있습니다. 그래도 기본적인 정규 표현식 구문을 알아야합니다.

메일 서버를 유지 관리하는 경우 MTA (postfix 또는 exim) 및 MDA (dovecot, cyrus, courier)를 조작 및 / 또는 모니터링하는 기본 명령을 알아야한다고 생각합니다. 하나를 실행하지 않더라도 로컬 배달 문제에 대해서만 MTA에서 기본 SMTP 테스트를 실행할 수 있어야합니다.

인증 시스템을 사용하는 방법을 알고 있어야합니다 (PAM, LDAP). 비밀번호는 어디에 저장되어 있습니까? 어떤 절차를 사용합니까? 어떤 응용 프로그램에서 어떤 인증 메커니즘을 사용합니까?


iotop :) ps와 함께 살 수없는 훌륭한 도구입니다 ... 예, 명령 또는 펄, 파이썬, php와 같은 언어 중 하나입니다.
Prix

2

꼭 알아야 할 것이 몇 가지 있습니다.

쉘을 잘 이해해야합니다 (인수를 구문 분석하는 방법, 와일드 카드를 확장하는 방법, 멍청한 모서리의 경우).

X11을 실행하지 않고 파일을 편집 할 수 있어야합니다.

파일 시스템을 마운트 및 마운트 해제 할 수 있어야합니다.

새로운 정보를 빠르게 흡수 할 수 있어야합니다. 이는 전체 회사의 서버 팜이 충돌했을 때 필요한 기술이며, 직렬 콘솔과 같이 콘솔 콘솔 ( "콘솔") 및 매우 느린 VPN 연결 (X11 기반 방식도 가능)을 통해서만 액세스 할 수 있기 때문입니다. 괴로운). 그리고 일어날 것입니다, 그래서 그것을 계획하십시오.


2

주어진 예제는 모든 서버 관련 답변입니다. 그러나 시스템 관리는 절대 100 % 컴퓨터가 아닙니다.

우리의 경우 Manglement, Lusers, Contractors and Suppliers.를 의미하는 사람들과도 거래해야합니다. arg ^ n

sysadmin 작업 을 유지 하는 데 필요한 / 원하는 /해야 할 일에 대해 이야기하고, 다른 사람에게 정보를 입수하고, 문서를 얻는 방법을 아는 고객 서비스 기술이 모두 필요 합니다.

프로젝트 자금을 조달하고 사용하려는 경우 : 돈을 요구하는 방법을 모르는 경우 수치 / 대안 / DR 계획 / 견적 / 구현 계획이없는 경우 새 서버를 확보하려고 시도 할 필요가 없습니다. 사무실 정치는 B ** CH이며, 돈은 항상 : "꽉".. 무엇을 의미하든간에 execs 회사 자동차에는 영향을 미치지 않지만 가능하면 사이트 보안 및 표준화 능력에 영향을 미칩니다. 그들에게 당신의 이유를 감동시키지 마십시오.

가장 기억해야 할 것은 다음과 같습니다 . 사용자가 생각하는 것을 신뢰하지 마십시오 . 전화를받을 때이 점을 명심하십시오. 그들이 무엇을 말하든, 궁극적으로는 자신의 엉덩이가 아니라 엉덩이이며 일반적으로 전혀 모르기 때문에 스스로 알아 내야합니다. 그들이 당신의 상사를 죽일 수있는 유행어가 많은 단락을 만들 수 있다고해서 그들이 방금 말한 것을 실제로 알고있는 것은 아닙니다.

다른 생각들:

  • 당신이 종료 모든 것을 아래에 UPS에 충분한 시간이 있는지 확인 언제 전원이 실패

  • 모니터링, 확인 당신이 전화에 lusers 기다리지 말고 ..이 추락했습니다 알고있다.

  • BACKUPS BACKUPS BACKUPS .. 백업 시스템이 좋지 않으면 멀티 유저 시스템이 초과 근무를하는 경향이 있습니다. 초과 근무는 나쁘지 않습니다 (포켓이 아니라 예산과 전문성으로 인해).

  • 금요일이나 공휴일 전날에는 절대로 변경하지 마십시오. 주말 동안 전화를 받으면 문제를 해결해야합니다.

  • 표준화 및 자동화 .. 당신이 할 수있는만큼! 스크립트를 작성할 수 있다면 왜 그렇지 않은가?

  • 헬프 데스크 시스템을 사용 / 설치하는 방법을 파악하고, 사용자가이를 통해 통화를 기록하도록하고, 활동을 추적하고, 업무에 더 많은 비용을 지불 할 인센티브를 제공합니다. 귀하의 답변 (실제 KB) .. 모두 사용자에게 진행 상황을 알리는 동안. 홍수에서 사용자 쿼리 / 문제가 손실되지 않도록합니다.

  • : 나는의 복사본을 구입 한 시스템 관리의 연습을 내가 Limoncelli으로, 매우 추천.


1

Linux 관리자는 susudo , chmodchown 등과 같은 도구 사용 , 그룹에 사용자를 추가하거나 새 사용자를 작성하는 방법, 특정 사용자에게 SSH 권한을 부여하는 방법 또는 파일 권한을 철저히 이해해야 합니다. 여러 떼.


0

명령 행에서 편집기로 빠르게 작업해야합니다.


0

알아 sed, grep그리고 awk: 나는 리눅스 시스템 관리자로 매일하는 일의 많은 파일 / 컴퓨터 / 사용자 / 등의 거대한 목록을 아래로 당겨입니다. 다른 프로그램이 사용하기 위해 입력을 다른 출력 세트로 변환합니다.

구체적인 예는 bugzilla 또는 RT에서 버스 팅 된 컴퓨터 목록을 가져 와서 위의 세 가지 도구 중 하나를 사용하여 텍스트 문서에 빠르게 복사하여 붙여 넣은 모든 관련 정보를 수집 한 다음 출력하는 것입니다. SSH로 연결 해야하는 노드 묶음의 공백으로 구분 된 목록.

또한 사용중인 쉘의 상한을 알아야합니다. 오래된 파일을 여러 개 제거해야하는 경우에는 30k 개 이상의 파일이 들어있는 폴더로 들어가는 경우가 많습니다. rm *별표가 30k 개 이상의 항목이있는 목록으로 확장되므로 사용중인 쉘이 해당 크기의 목록을 보유하지 못할 수 있습니다. 당신이이 문제를 해결하는 방법은 함께 xargs: 대신 rm *, 당신은 사용하는 거라고 ls | xargs -i{} rm {}하는 것입니다 작동합니다.


0

sysadmin으로서 나는 자신을 디지털 의사 (또는 날에 따라 때로는 세계적인 뇌 외과 의사)로 생각합니다.

모든 것이 작동하면 자신의 기술과 관리 시스템을 향상시킬 충분한 시간이 있습니다.

문제가 발생하면 즉시 문제를 진단하고 해결 방법을 알아야합니다.

따라서 관리하는 서버 및 응용 프로그램의 기본 사항 (및 내부를 가리켜 야 함)을 배우고 기억해야합니다. 회사에서 웹 루트가 NFS를 통해 제공되는 웹 사이트를 호스팅한다고 가정 해 보겠습니다. 갑자기 모든 www 노드가 경보를 시작하고 사이트가 응답을 멈 춥니 다. 무엇을 의심해야합니까? 아하! NFS 서버가 다운되고 장애 조치 클러스터링이 어떤 이유로 작동하지 않았습니다.

또 다른 중요한 측면은 관리하는 서버의 기본로드입니다. 평균 부하, CPU 사용량, 메모리 사용량 등을 기억하는 방법을 배웁니다. OK, 당신은 실제로하지 않아도 기억 모든 - 선인장 또는 사용하여 만든 그래프를 그물 SNMP + MRTG 많은 도움이 될 수 있지만, 만약 이상한 행동 서버 X에 대한 당신이 다른에 대해 말하는 동시에 헬프 데스크에서 호출기 경보 서버 또는 서비스 진행중인 본커의 경우 두 가지를 결합하여 로그, 경보 기록 또는 그래프를보기 전에 문제를 해결할 수 있습니다.

또한 최악의 상황에 대비하십시오. 정전으로 인해 전체 데이터 센터가 정전 될 경우 어떻게해야할지 생각하십시오. 전기를 다시 사용할 수있게 된 후 모든 것을 어떻게 시동 하시겠습니까? 무언가가 시작되지 않으면 어떻게 하시겠습니까? 백업을 어떻게 복원 하시겠습니까? 또는 방금 서버에 침입 한 크래커에 대해 누군가가 경고 한 경우 어떻게 하시겠습니까? (이런 종류의 것들을 체크리스트로 문서화해야하지만, 직관력이있는 것도 좋습니다)


그리고 다른 사람들이 언급했듯이 (반) 자동으로 실행해야 할 것을 계속 작성하십시오. 쉘 / 펄을 배우고 놀아보십시오. 그들은 가장 친한 친구이며, 단지 몇 개의 명령을 함께 연결하여 매우 복잡한 문제를 해결할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.