it-swarm-ko.tech

모든 시스템 관리자가 알아야 할 프로그래머는 무엇입니까?

이 질문 에서 영감을 얻어, 나는 반대로 묻습니다. 시스템 관리자는 프로그래밍에 대해 얼마나 알아야합니까? 더 구체적으로, 시스템 관리자에게 유용한 프로그래밍 도구는 무엇입니까?

20
Tim
  • 버전 관리. 패치를 생성하고 읽고 적용 할 수 있습니다. 리포지토리 전체 버전을 제공하는 버전 제어 시스템을 사용하는 방법과 원하는 이유를 알고 있어야합니다. 설명적인 변경 로그를 작성하는 방법과이를 원하는 이유를 알고 있어야합니다. 저장소의 로그에서 키워드와 시간 프레임을 검색하는 방법을 알아 봅니다.
  • 스크립팅. 한 번만 수행하고 계속 진행하십시오. 두 번 이상 수행하고 한 번 수행 한 다음 스크립트를 작성하십시오.
  • 디버깅. 스택 추적을 읽는 방법과 관련 오류를 소프트웨어 지원 담당자에게보고하는 방법을 알고 있습니다. 오류를 찾는 것은 좋고 도움이되지만 어떻게 오류를 고치는 지 알면 코드를 읽는 데 많은 투자가 필요할 수 있습니다. 당신에게 쉬운 일을하고 그들에게 쉬운 일을하도록하세요.
  • 테스트 중. 지속적으로 모니터링하고 오류를 기록합니다. 버전 제어 및 테스트와 함께 사용하면 무엇이 잘못되었을 수 있으며 그 당시에 무엇이 바뀌 었는지에 대한 강력한 아이디어를 가지고 있습니다. 프로덕션 및 사전 프로덕션을 모두 모니터링합니다.
  • 동료 검토. 프로덕션 시스템에 대한 변경을 제안하고 검토합니다. 사전 제작을 테스트하고 수행해야 할 작업을 정확히 결정하고 어떤 서비스가 얼마나 오래 영향을받을 수 있는지 기록합니다. 변경 관리가 관료적 권력의 정치적 전투로 저하되지 않도록하십시오.
  • 연구 암호화. 최신 시스템 관리자는 네트워크 리소스를 담당합니다. 마지막 단계로 보안을 추가하는 것은 불가능과 비용이 많이 드는 제안 사이에 있습니다. 공개 키 암호화, 암호 처리 방법 및 일반적으로 암호화를 이해하는 것은 매우 중요합니다.
29
jldugger

다음으로 시작하겠습니다.

  1. 언어에 관계없이 가장 기본적인 스크립트 이상을 작성하는 방법. 자동화는 당신의 친구입니다.
  2. 디버거를 실행하는 방법/어떤 종류의 크래시 보고서를 읽는 방법 : 크래시 보고서를 파악하고 누가 듀스를 훨씬 쉽게 물어볼 수 있는지 파악합니다.
  3. 버전 제어-코드뿐만 아니라 기록을 유지하거나 변경을 제어 할 가치가있는 모든 것.
9
Chealion

시스템 관리는 단지 프로그래밍입니다. 구성 관리 시스템을 사용하면 전체 인프라를 분산 된 시스템으로 볼 수 있습니다. 시스템 관리자로서 귀하의 임무는이 시스템을 프로그래밍하는 것입니다.

하나의 텍스트 편집기를 알고 있습니다. 일반적으로 sysadmins는 vi, 프로그래머는 emacs입니다.

스크립트 작성 방법을 알고 있어야합니다. 스크립팅 언어를 선택하십시오. Perl은 Shell/sed/awk 콤보와 마찬가지로 항상 좋아하는 제품입니다. Ruby 및 Python 작동 가능하지만 많은 경우 개체가 잘못된 패러다임입니다.

읽을 수있는 문서를 작성하는 방법을 알아야합니다.

버전 관리. 구성 파일 및 감사 추적을 유지하는 데 중요합니다.

프로그래밍 용어로 생각하는 법을 배우십시오. 절차 적, 객체 지향적, 기능적 프로그래밍 패러다임을 이해합니다. 결코 사용되지 않을 수 있지만이를 알면 생산성이 훨씬 높아집니다.

디버거 (또는 그 이상) 및 로깅 사용 방법을 알아 봅니다.

RDBMS 사용 방법을 배웁니다. RDBMS를 올바르게 사용하여 단순화 할 수있는 많은 데이터 처리 요구 사항이 있습니다. 필요에 따라 DBA 역할로 전환 할 수 있다는 것조차 놀라운 일을 할 수 있습니다.

배포하기 전에 테스트하십시오. 테스트 기반 개발 철학을 확인하세요.

쌍 프로그래밍이 좋습니다. 다른 사람이 당신의 어깨 너머로 지켜보고 배우도록/조언/수정하도록하십시오.

적어도 여러 언어에 익숙해지는 법을 배우십시오. 매년 새로운 언어를 배우십시오.

7
Devdas
  • 프로그래밍 방법을 알고 있습니다. 예, 중요합니다. 한 댓글 작성자가 말했듯이 한 번 이상 수행하면 스크립트를 작성하고 잘 작성하십시오.
  • 표준 운영 체제 설치에 포함 된 도구를 알고 있습니다. UNIX 관리자의 경우 이는 Korn Shell (ksh) 및 Perl 및 vi와 같은 도구를 의미합니다. Emacs 또는 Ruby 또는 Tcl 또는 C Shell이 ​​존재하는 것에 의존하지 마십시오.
  • 네트워크를 알고 있습니다. 이더넷 패킷은 어떻게 결합됩니까? 패킷은 어떻게 생겼습니까? 다른 패킷 유형은 무엇입니까? tcpdump, wireshark, snoop 등과 같은 도구에 대해 알아 봅니다.
  • Write portable code. 코드가 Linux, Tru64, Solaris 및 OpenVMS에서 실행되는 경우 이식 가능한 코드를 작성합니다. 두 가지 버전의 UNIX에서만 실행 되더라도 이식 가능하게 만드십시오. 그러나 휴대가 필요하지 않은 경우 추가 시간을 소비하지 마십시오.
  • 문서가 어디에 있는지 알고 있습니다. Perl의 경우 이것은 perldoc, Perl Mongers, Perl.org 등을 의미합니다. ksh의 경우 맨 페이지와 좋아하는 Korn Shell 책을 의미합니다.
  • 문서, 문서, 문서, 문서! 코드 문서화, 매뉴얼 페이지 작성, 인라인 Perl 문서 작성 및 기타 적절한 모든 것. 프로그램을 사용하는 방법과 그렇게 코딩 한 이유를 설명하십시오.
  • 시스템의 패키징 도구를 알고 있습니다. Red Hat, HP-UX 저장소 또는 Solaris 패키지 용 RPM을 만드는 방법을 알고 있어야합니다. 이렇게하면 시스템 용 패키지를 빌드 할 수 있습니다. 설치 과정.
5
Mei

스크립팅은 필수이지만 "실제"언어를 아는 것이 확실한 보너스라는 충고를 두 번째로하겠습니다. 예를 들어 .NET System.DirectoryServices 네임 스페이스로 매우 유용한 작업을 수행 할 수 있습니다.

3
Maximus Minimus

저는 프로그래머이자 선임 관리자/통합 자입니다. 내가하는 곳에서 일하려면 다음 사항을 알아야합니다.

  • 셸 스크립트 작성 방법 (POSIX, Bashism 없음), 약간의 Perl, 약간의 Python
  • Basic C (단일 UNIX 사양)
  • 컴파일러 도구 체인을 설치하는 방법
  • 소스에서 라이브러리 및 기타 OSS 프로젝트를 빌드하는 방법
  • Valgrind 의 정의와이를 사용하여 메모리 누수를 발견하는 방법
  • .rpm 및 .deb 패키지를 롤링하는 방법
  • 우리는 그것을 요구 하지 않지만 , 약간 PHP 약간의 LISP는 아프지 않을 것입니다.

대부분의 중학교 관리자는 우리 프로그래머 중 한 명을보고 (권한을 가지고) 이렇게 말할 수 있습니다. 예, 올바르게 설치했습니다. 여기에 방금 푸시 한 코드가 깨지는 이유가 누출됩니다. 또는 "아니요, 저희 MySQL 버전이 아닙니다 , 여기에서 쿼리를보십시오 ..."

우리가 재능있는 관리자를 고용 할 때 우리는 다소 다르다고 생각합니다. .. 우리는 그들이 작동하는 데 필요한 방식으로 작업하는 데 사용하는 무언가를 해킹하더라도 (결국) 프로그래밍 방식을 찾을 것으로 기대합니다. .

요약하면, 잘 둥글게 만드는 것은 절대 당신을 해치지 않을 것입니다.

3
Tim Post

나쁜 일이 발생하면 코드가 생각보다 길어질 것입니다. 유용한 오류 메시지와 함께 정상적으로 실패합니다. 디스크, 램, CPU, 시간 등이 부족하여 처리됩니다.

너무 낙관적이어서는 안됩니다. 백만 건 중 한 번 이상이 프로덕션에서 너무 자주 발생합니다.

1
Ronald Pottol

여기에있는 모든 설명과 함께 시스템 관리자라고 말하지는 않겠습니다. 하지만 몇 개의 윈도우/리눅스 서버를 구축하고 관리한다는 사실을 인정해야합니다.

  • linux에서 bash 스크립팅은 반드시 알아야합니다. Perl/awk/etc와 통합하는 방법을 알고 있다면 더 좋습니다. 사용하면 많은 작업이 쉬워진다는 것을 알았습니다.

  • C/C++로 프로그래밍하는 것을 아는 것은 많은 도움이됩니다. GNU 소스 코드 (사용하는 경우))를 필요에 맞게 수정해야하는 경우가 있습니다. GNU 제품이 항상 적시에 필요한 도움을 제공합니다. C/C++로 작성되는 경우가 많습니다.

1
Mario Patty Fc

수년 전에 (사실 Windows NT 3.1) 저는 서비스 작성과 가끔 장치 드라이버를 전문으로하는 프로그래머로 시작했습니다. 즉, Windows 커널에 대해 잘 알게됩니다. 시간이지나면서 프로그래밍에 지루 해졌고 네트워크 관리로 전환했습니다. 저는 프로그래밍에 대한 제 배경이 계속해서 가치가 있다는 것을 알게되었습니다.

VBScript 스크립트를 작성하는 것이 상대적으로 어렵지 않은 것은 아닙니다. Windows의 기본 작동 방식, 특히 IP 작동 방식을 알면 이상한 서버 및 네트워크 문제를 해결하는 데 크게 도움이됩니다. 또한 그것은 사고 방식입니다. 프로그래머는 문서화 및 버전 제어에 익숙하며 얼마나 많은 Windows 관리자가 작동하는지 확인하기 위해 시도하고 나중에 혼란을 풀지 않을까 걱정하는 것을 보면 무섭습니다.

모두 훌륭하지만, 10 년 동안 프로그래머로 일하고 떠나라고 말하는 것은별로 유용한 조언이 아닙니다! 그러나 대부분의 시스템 관리자가 C++ 또는 C #과 같은 "하드"언어로 프로그래밍 경험을하는 데 도움이 될 것이라고 생각합니다. 그리고 만약 당신의 조직에 길들인 프로그래머가 있다면 그들과 함께 술을 마시십시오!

존 레니

1
John Rennie
  • SQL-모든 것이 데이터베이스와 함께 작동합니다.
  • 프로그래밍-언어는 중요하지 않습니다. 논리와 프로세스를 이해하는 한 모든 언어를 배우고 적용 할 수 있습니다.
  • 코드 및 변경 사항을 문서화하는 방법-이것은 엄청납니다. 도대체 왜 누군가가 이것을했는지, 그리고 우리가 그것을 다시 바꾸면 어떤 영향을 미칠지 알아 내려고 몇 번이나 구성을 쳐다 보았습니까? 이것은 당신이 코딩하거나 스크립트하는 것을 넘어서는 것입니다. 이것은 사용자 X가 비가 오는 화요일 오후에 도메인 Y로부터 이메일을받는 경우를 처리하기 위해 방화벽 설정을 변경할 때를 다룹니다. 그리고 그것은 당신이 아닐 수도 있고, 계속해서 그것을하기로 결정하고 모든 것이 끔찍한 방식으로 망가 졌기 때문에 당신의 휴가 오전 2시에 당신을 불러야하는 PFY일지도 모릅니다.
  • 시스템 언어-Windows에서는 스크립트 언어를 매우 강력한 리소스에 연결하고 PC에서 모든 작업을 수행 할 수있는 Powershell 및 WMI와 같은 기능입니다. Unix/Linux에는 내가 말할 자격이없는 자체 도구 세트가 있습니다.
0
Shial

LDAP에 바인딩하고 선택한 스크립팅 언어로 필요한 정보를 검색하는 방법을 아는 것은 문제 해결부터 다양한 유형의 자동화 (계정 및 리소스 프로비저닝, 사용자 또는 컴퓨터 계정에 대한보다 지능적인 검사)에 이르기까지 모든 작업의 ​​핵심입니다.

기본적으로 보일지 모르지만 나는 사람들이 이런 종류의 시스템 관리가 필요하지 않다고 생각하는 많은 빵빵한 가게를 보았다. 많은 곳에서 대규모 관리 도구 세트에 막대한 비용을 지출합니다. 제가 말할 수있는 한, 누군가가이를 알고 있거나 방법을 알고 있다면 도구를 사용하는 용도의 95 %를 몇 시간의 스크립팅으로 완료 할 수있었습니다. 해.

0
damorg

Bash, dos batch 및 powershell 스크립팅을 아는 것은 시스템 관리자에게 모든 인기있는 시스템에서 거의 모든 작업을 수행 할 수있는 프레임 워크를 제공한다는 것을 발견했습니다.

0
Beep beep