분류 기타

Linux 서버에서 처음 10분 동안 해야 할 9가지

컨텐츠 정보

  • 조회 230 (작성일 )

본문

새로 프로비저닝된 서버를 작동시키기 전에 작업 중인 항목을 확인하십시오.


Linux에서 소프트웨어를 테스트할 때(내 작업의 일반적인 부분) Linux를 실행하는 다양한 아키텍처의 여러 서버를 사용해야 합니다. 나는 머신을 프로비저닝하고, 필요한 소프트웨어 패키지를 설치하고, 테스트를 실행하고, 결과를 수집하고, 다른 사람들이 테스트에 사용할 수 있도록 머신을 풀로 반환합니다.


나는 이것을 너무 자주(하루에 여러 번) 하기 때문에 Linux 서버에서 나의 첫 10분은 매일의 의식이 되었습니다. Linux 서버에 처음 로그인할 때 필요한 정보를 수집하기 위해 명령을 사용하여 특정 항목을 찾습니다. 이 기사에서 내 프로세스를 살펴보겠지만 대부분의 경우 명령 이름만 제공하므로 필요한 정보를 얻으려면 해당 명령에 대한 특정 플래그를 식별해야 합니다. 명령에 대한 매뉴얼 페이지를 읽는 것이 좋은 출발점입니다.


1. First contact 


서버에 로그인하자마자 가장 먼저 하는 일은 실행할 테스트에 필요한 운영 체제, 커널 및 하드웨어 아키텍처가 서버에 있는지 확인하는 것입니다. 나는 종종 서버가 가동되고 실행된 시간을 확인합니다. 이것은 테스트 시스템이 여러 번 재부팅되기 때문에 그다지 중요하지 않지만 여전히 이 정보가 도움이 된다고 생각합니다.


이 정보를 얻으려면 다음 명령을 사용하십시오. 저는 주로 테스트에 Red Hat Linux를 사용하므로 다른 Linux 배포판을 사용하는 경우 파일 이름에 redhat-release 대신 *-release를 사용합니다.


cat /etc/redhat-release
uname -a
hostnamectl
uptime 


2. 배에 다른 사람이 있습니까? 


기계가 내 테스트 요구 사항을 충족한다는 것을 알게 되면 다른 사람이 자체 테스트를 실행하는 동시에 시스템에 로그인하지 않도록 해야 합니다. 가능성은 매우 낮지만 프로비저닝 시스템이 나를 대신해 처리한다는 점을 고려할 때 한 번씩 확인하는 것이 좋습니다. 특히 서버에 처음 로그인하는 경우에는 더욱 그렇습니다. 또한 시스템에 액세스할 수 있는 다른 사용자(루트 이외)가 있는지 확인합니다.


이 정보를 찾으려면 다음 명령을 사용하십시오. 마지막 명령은 /etc/passwd 파일에서 셸 액세스 권한이 있는 사용자를 찾습니다. 쉘 액세스 권한이 없거나 쉘이 nologin으로 설정된 파일의 다른 서비스를 건너뜁니다.


who
who -Hu
grep sh/etc/passwd 


3. Physical or virtual machine 


이제 나 자신에게 머신이 있다는 것을 알았으므로 물리적 머신인지 가상 머신(VM)인지 식별해야 합니다. 내가 직접 머신을 프로비저닝했다면 내가 요청한 것을 가지고 있다고 확신할 수 있었습니다. 그러나 프로비저닝하지 않은 머신을 사용하는 경우 머신이 물리적인지 가상인지 확인해야 합니다.


이 정보를 식별하려면 다음 명령을 사용하십시오. 물리적 시스템인 경우 공급업체 이름(예: HP, IBM 등)과 서버 제조업체 및 모델이 표시됩니다. 반면 가상 머신에서는 VM을 생성하는 데 사용된 가상화 소프트웨어에 따라 KVM, VirtualBox 등이 표시되어야 합니다.


dmidecode -s system-manufacturer
dmidecode -s system-product-name
lshw -c system | grep product | head -1
cat /sys/class/dmi/id/product_name
cat /sys/class/dmi/id/sys_vendor 


4. Hardware 


Linux 시스템에 연결된 하드웨어를 자주 테스트하기 때문에 일반적으로 VM이 아닌 물리적 서버로 작업합니다. 물리적 시스템에서 다음 단계는 서버의 하드웨어 기능(예: 실행 중인 CPU 종류, 코어 수, 활성화된 플래그, 테스트 실행에 사용할 수 있는 메모리 양)을 식별하는 것입니다. 네트워크 테스트를 할 때 서버에 연결된 이더넷이나 기타 네트워크 장치의 종류와 용량을 확인합니다.


다음 명령을 사용하여 Linux 서버에 연결된 하드웨어를 표시합니다. 일부 명령은 최신 운영 체제 버전에서 더 이상 사용되지 않을 수 있지만 여전히 yum repos에서 설치하거나 동등한 새 명령으로 전환할 수 있습니다.


lscpu or cat /proc/cpuinfo
lsmem or cat /proc/meminfo
ifconfig -a
ethtool <devname>
lshw
lspci
dmidecode 


5. Installed software 


테스트 소프트웨어는 항상 추가 종속 패키지, 라이브러리 등을 설치해야 합니다. 그러나 무엇이든 설치하기 전에 이미 설치된 항목(버전 포함)과 구성된 저장소를 확인하므로 소프트웨어의 출처를 알 수 있습니다. , 패키지 설치 문제를 디버깅할 수 있습니다.


다음 명령을 사용하여 설치된 소프트웨어를 식별합니다.


rpm -qa
rpm -qa | grep <pkgname>
rpm -qi <pkgname>
yum repolist
yum repoinfo
yum install <pkgname>
ls -l /etc/yum.repos.d/ 


6. 프로세스 및 서비스 실행 


설치된 소프트웨어를 확인하고 나면 시스템에서 어떤 프로세스가 실행되고 있는지 확인하는 것이 당연합니다. 이것은 시스템에서 성능 테스트를 실행할 때 매우 중요합니다. 실행 중인 프로세스, 데몬, 테스트 소프트웨어 등이 CPU/RAM의 대부분을 차지하는 경우 테스트를 실행하기 전에 해당 프로세스를 중지하는 것이 좋습니다. 또한 테스트에 필요한 프로세스나 데몬이 실행 중인지 확인합니다. 예를 들어 테스트에서 httpd를 실행해야 하는 경우 패키지가 설치되어 있어도 데몬을 시작하는 서비스가 실행되지 않았을 수 있습니다.


다음 명령을 사용하여 시스템에서 실행 중인 프로세스 및 활성화된 서비스를 식별합니다.


pstree -pa 1
ps -ef
ps auxf
systemctl 


7. Network connections 


오늘날의 기계는 네트워크가 많이 연결되어 있으며 네트워크의 다른 기계 또는 서비스와 통신해야 합니다. 나는 서버에서 어떤 포트가 열려 있는지, 네트워크에서 테스트 머신으로의 연결이 있는지, 방화벽이 활성화되어 있는지, 방화벽이 활성화되어 있으면 포트를 차단하는지, 머신이 어떤 DNS 서버와 통신하는지 식별합니다.


다음 명령을 사용하여 네트워크 서비스 관련 정보를 식별합니다. 지원 중단된 명령어를 사용할 수 없는 경우 yum 저장소에서 설치하거나 이에 상응하는 최신 명령어를 사용하세요.


netstat -tulpn
netstat -anp
lsof -i
ss
iptables -L -n
cat /etc/resolv.conf 


8. Kernel 


시스템 테스트를 수행할 때 커널 버전 및 로드된 커널 모듈과 같은 커널 관련 정보를 아는 것이 도움이 됩니다. 또한 조정 가능한 커널 매개변수와 설정 대상을 나열하고 실행 중인 커널을 부팅할 때 사용되는 옵션을 확인합니다.


이 정보를 식별하려면 다음 명령을 사용하십시오.


uname -r
cat /proc/cmdline
lsmod
modinfo <module>
sysctl -a
cat /boot/grub2/grub.cfg 


9. Logs 


지금까지 어떤 소프트웨어가 설치되어 있고 어떤 프로세스가 실행되고 있는지를 포함하여 서버에 대해 잘 알고 있습니다. 또 다른 탈출할 수 없는 것은 로그 파일입니다. 계속해서 업데이트되는 정보를 어디에서 확인해야 하는지 알아야 합니다.


시스템 로그를 보려면 다음 명령을 사용하십시오.


dmesg
tail -f /var/log/messages
journalctl 


다음 단계 


명령과 유틸리티는 변경되지만 표시되는 기본 정보는 거의 동일하게 유지됩니다. 마스터할 명령에 집중하기 전에 찾고 있는 정보와 해당 정보가 속하는 범주에 대한 높은 수준의 보기가 필요합니다.


Linux는 대부분의 정보를 파일에 저장하기 때문에 이러한 명령은 기본적으로 파일에서 정보를 읽고 이해하기 쉬운 방식으로 표시합니다. 다음 단계는 각 명령이 표시할 정보를 얻기 위해 사용하는 파일을 식별하는 것입니다. 그 정보를 찾기 위한 힌트는 strace 명령입니다.


https://opensource.com/article/20/12/linux-server