새로 프로비저닝 된 서버를 작동 시키기 전에 작업 중인 항목을 알고 있는지 확인하십시오.
Linux에서 소프트웨어를 테스트 할 때 (내 업무의 일반적인 부분) Linux를 실행하는 다양한 아키텍처의 여러 서버를 사용해야 합니다. 머신을 프로비저닝하고, 필요한 소프트웨어 패키지를 설치하고, 테스트를 실행하고, 결과를 수집하고, 다른 사람들이 테스트에 사용할 수 있도록 머신을 풀로 반환합니다.
이 작업을 자주 (하루에도 여러 번) 수행하기 때문에 Linux 서버에서 처음 10 분을 사용하는 것은 매일의 의식이 되었습니다. Linux 서버에 처음 로그인 할 때 필요한 정보를 수집하기 위해 명령을 사용하여 특정 항목을 찾습니다. 이 기사에서 내 프로세스를 살펴 보겠지만, 대부분의 경우 명령 이름 만 제공 할 것이므로 필요한 정보를 얻으려면 해당 명령에 대한 특정 플래그를 식별해야 합니다. 명령에 대한 매뉴얼 페이지를 읽는 것이 좋은 시작점입니다.
1. 첫 번째 접촉
서버에 로그인하자마자 먼저 실행할 테스트에 필요한 운영 체제, 커널 및 하드웨어 아키텍처가 있는지 확인합니다. 나는 종종 서버가 얼마나 오래 가동되고 실행되었는지 확인합니다. 테스트 시스템에서는 여러 번 재부팅 되므로 이 정보는 그다지 중요하지 않지만 이 정보는 여전히 유용합니다.
이 정보를 얻으려면 다음 명령을 사용하십시오. 나는 주로 테스트를 위해 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. 물리적 또는 가상 머신
이제 컴퓨터를 가지고 있다는 것을 알았으므로 실제 컴퓨터인지 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. 설치된 소프트웨어
소프트웨어를 테스트하려면 항상 추가 종속 패키지, 라이브러리 등을 설치해야 합니다. 그러나 설치하기 전에 이미 설치된 항목 (버전 포함)과 구성되어있는 저장소를 확인하므로 소프트웨어의 출처를 알 수 있습니다. , 패키지 설치 문제를 디버깅 할 수 있습니다.
다음 명령을 사용하여 설치된 소프트웨어를 식별하십시오.
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. 네트워크 연결
오늘날의 컴퓨터는 네트워크가 많이 연결되어 있으며 네트워크의 다른 컴퓨터 또는 서비스와 통신해야 합니다. 나는 서버에서 어떤 포트가 열려 있는지, 네트워크에서 테스트 머신으로의 연결이 있는지, 방화벽이 활성화되어 있는지, 방화벽이 활성화되어 있다면 어떤 포트를 차단하는지, 머신이 어떤 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
등록된 댓글이 없습니다.