tencent cloud

Linux 일반 작업 및 명령어
마지막 업데이트 시간:2024-02-02 11:34:24
Linux 일반 작업 및 명령어
마지막 업데이트 시간: 2024-02-02 11:34:24

1. Linux 서버 부하(Load Average)란 무엇인가요?

Load는 서버 작업량의 크기를 가늠하는 것으로, 컴퓨터 CPU 작업 실행 큐의 길이가 길수록, 실행 중 및 실행 대기 중인 프로세스 수를 더 많이 포함할 수 있음을 의미합니다.

2. Linux 서버 부하를 확인하는 방법은 무엇인가요?

w, top, uptime, procinfo 명령어를 실행하거나 /proc/loadavg 파일을 액세스하여 확인할 수 있습니다. procinfo 툴을 설치하려면 Linux 환경에서 소프트웨어 설치 관련 문서를 참조 바랍니다.

3. 서버 부하가 높으면 어떻게 하나요?

서버 부하(Load/Load Average)는 프로세스 큐의 길이에 따라 표시됩니다. 서버 부하가 높은 현상은(15분 단위의 평균값 참조 권장) CPU 리소스 부족, I/O 읽기 및 쓰기 병목 현상, 메모리 리소스 부족, 집약형 CPU 계산 등의 이유로 발생할 수 있습니다. vmstat, iostat, top 명령어를 사용해 부하가 너무 높은 원인을 판단하고, 구체적으로 리소스 이용률이 높은 프로세스를 찾아 최적화할 것을 권장합니다.

4. 서버 메모리 사용률을 확인하는 방법은 무엇인가요?

free, top (실행 후 shift+m으로 메모리순 정렬), vmstat, procinfo 명령어를 실행하거나 /proc/meminfo 파일을 액세스하여 확인할 수 있습니다.

5. 개별 프로세스의 이용률을 확인하는 방법은 무엇인가요?

top -p PID, pmap -x PID, ps aux|grep PID 명령어를 실행하거나 /proc/$process_id(프로세스의 PID)/status 파일에서 /proc/7159/status 등의 파일을 액세스하여 확인할 수 있습니다.

6. 사용 중인 서비스 및 포트를 확인하는 방법은 무엇인가요?

netstat -tunlp, netstat -antup, lsof -i:PORT 명령어를 실행하여 확인할 수 있습니다.

7. 서버 프로세스 정보를 확인하는 방법은 무엇인가요?

ps auxww|grep PID, ps -ef, lsof -p PID, top -p PID 명령어를 실행하여 확인할 수 있습니다.

8. 프로세스를 중지하는 방법은 무엇인가요?

kill -9 PID(PID는 프로세스 식별자를 의미), killall 프로그램명(예: killall cron)을 실행하여 프로세스를 중지할 수 있습니다. 좀비 프로세스를 중지해야 하는 경우, 프로세스의 부모 프로세스를 종료해야 합니다. 실행 명령어는 kill -9 ppid(ppid는 부모 프로세스의 ID 번호이며, ps -o ppid PID에서 명령어를 통해 확인할 수 있습니다. 예: ps -o ppid 32535)입니다.

9. 좀비 프로세스를 확인하는 방법은 무엇인가요?

top 명령어를 통해 좀비 프로세스(zombie)의 전체 수를 확인할 수 있고, ps -ef | grep defunct | grep -v grep를 실행하여 좀비 프로세스의 구체적인 정보를 확인할 수 있습니다.

10. 서버 포트를 실행할 수 없는 이유는 무엇인가요?

서버 포트의 실행 리스너는 운영 체제 자체 및 응용 프로그램에서 확인해야 합니다. Linux 시스템에서 1024 이하의 포트는 root 사용자만 실행할 수 있습니다. 즉, 먼저 sudo su –를 실행하여 root 권한을 얻어야 서비스 포트를 활성화할 수 있습니다. 응용 프로그램 문제는 애플리케이션 프로그램 실행 로그를 사용해 포트 충돌(Tencent 서버 시스템이 사용하는 포트 36000을 사용할 수 없는 문제), 설정 문제 등 오류 원인을 진단하시기를 권장합니다.

11. 자주 사용하는 Linux 서버 성능 조회 명령어는 무엇인가요?

명령어 이름
설명
top
프로세스 모니터링 명령어로, 시스템의 전체 성능 모니터링에 사용합니다.
시스템 부하, 프로세스, CPU, 메모리, 페이징 등 정보를 표시할 수 있습니다. 일반적으로 shift + m 및 shift + p를 사용해 메모리 및 CPU 사용량을 기준으로 프로세스를 정렬합니다.
vmstat
버츄얼 메모리에 중점을 둔 시스템 모니터링 명령어로 CPU, 프로세스, 메모리 페이징 및 IO 상태 정보도 모니터링할 수 있습니다.
예시, vmstat 3 10은 3초마다 결과를 출력하며, 10회 동안 실행합니다.
iostat
CPU 상태 및 IO 상태를 출력하는 툴로, 시스템의 IO 정보를 상세히 표시합니다.예시, iostat -dxmt 10은 10초마다 IO 세부 정보를 MB 형식으로 출력합니다.
df
시스템의 디스크 용량 사용 현황을 확인하는 데 사용합니다.
예시, df -m은 디스크 사용 현황을 MB 단위로 표시합니다.
lsof
이뉴머레이션 시스템에서 오픈된 파일로, Linux가 파일 시스템을 기반으로 하기 때문에 이 명령어는 시스템 관리 시에 매우 유용합니다.
예:lsof -i:36000는 36000포트를 사용하는 프로세스를 표시합니다.
lsof -u root는 root로 실행되는 프로그램을 표시합니다.
lsof -c php-fpm는 php-fpm 프로세스에 의해 열린 파일을 표시합니다.
lsof php.ini는 php.ini를 여는 프로세스를 표시합니다.
ps
프로세스 조회 명령어를 사용해 프로세스의 세부 정보를 표시할 수 있습니다.


일반적인 명령어 매개변수 조합은 ps -ef, ps aux이며, ps -A -o를 사용해 출력 필드를 사용자 정의하시기를 권장합니다.예:ps -A -o pid,stat,uname,%cpu,%mem,rss,args,lstart,etime |sort -k6,6 -rn, 나열된 필드에 따라 출력되며 여섯 번째 필드를 기준으로 정렬합니다.ps -A -o comm |sort -k1 |uniq -c|sort -k1 -rn|head, 실행 중인 인스턴스가 가장 많은 프로세스를 나열합니다.

기타 자주 사용되는 명령어 및 파일: free -m, du, uptime, w, /proc/stat, /proc/cpuinfo, /proc/meminfo

12. Cron이 적용되지 않으면 어떻게 해야 하나요?

진단 순서는 다음과 같습니다.
1. crontab이 올바르게 실행되는지 확인합니다.
1.1 crontab -e 명령어를 실행하고 다음의 테스트 항목을 추가합니다.
\\*/1 \\* \\* \\* \\* /bin/date >> /tmp/crontest 2>&1 &
1.2 /tmp/crontest 파일을 확인합니다.
1.3 문제가 있다면, 'ps aux|grep cron'을 사용해 cron의 pid를 찾습니다. 'kill -9 PID'로 cron 프로세스를 종료하고, '/etc/init.d/cron start' 명령어를 실행하여 cron을 재시작합니다.
2. cron 항목의 스크립트 경로가 절대 경로인지 확인합니다.
3. cron을 실행하는 사용자 계정이 올바른지 확인하고, '/etc/cron.deny'에 해당 계정이 포함되어 있는지 확인합니다.
4. 스크립트의 실행 권한, 스크립트 디렉터리 및 로그의 파일 권한을 확인합니다.
5. 백그라운드 방식으로 스크립트를 실행하고, 스크립트 항목 뒤에 "&"을 추가합니다. 예: \\*/1 \\* \\* \\* \\* /bin/date >> /tmp/crontest 2>&1 &.

13. CVM 시작 작업은 어떻게 설정하나요?

Linux 커널 시작 순서는 다음과 같습니다.
1. '/sbin/init' 프로세스를 실행합니다.
2. init 초기 스크립트를 차례대로 실행합니다.
3. 런 레벨 스크립트 /etc/rc.d/rc\\*.d, * 계수값은 실행 모드와 같습니다. /etc/inittab 에서 확인할 수 있습니다.
4. /etc/rc.d/rc.local 을 실행합니다.
설명:
시작 작업을 구성해야 할 경우 /etc/rc.d/rc\\*.dS\\*\\*rclocal 파일에서 구성하거나 /etc/rc.d/rc.local 에서 구성할 수 있습니다.

14. 서버 디스크가 읽기 전용인 이유는 무엇인가요?

디스크가 읽기 전용인 이유는 다음과 같습니다.
전체 디스크 공간 가득 찬 경우 df -m 명령어를 사용해 디스크 사용량을 확인한 후, 필요 없는 파일을 삭제하여 디스크 용량을 확보할 수 있습니다(3rd party 이외의 파일은 삭제하지 않는 것이 좋습니다. 필요한 경우 확인 바랍니다).
디스크 inode 리소스를 모두 사용한 경우 df -i 명령어를 실행하여 관련 프로세스를 확인 및 확인할 수 있습니다.
하드웨어 장애인 경우
hosting 애플리케이션에서 위 방법으로 원인을 확인할 수 없으면 핫라인 또는 티켓 제출을 통해 문의 바랍니다.

15. Linux 시스템 로그를 확인하려면 어떻게 해야 하나요?

시스템 레벨의 로그 파일 저장 경로는 /var/log입니다.
자주 사용하는 시스템 로그는 '/var/log/messages'입니다.

16. 파일 시스템의 대용량 파일을 찾는 방법은 무엇인가요?

다음 순서를 실행하여 찾을 수 있습니다.
1. df 명령어를 실행하여 디스크 파티션 사용 현황을 확인합니다. 예: df -m
2. du 명령어를 실행하여 구체적인 폴더의 크기를 확인합니다. 예: du -sh ./*, du -h --max-depth=1|head -10
3. ls 명령어를 실행하여 파일과 파일 크기를 정렬합니다. 예: ls -lSh. find 명령어로도 특정 디렉터리 아래의 파일 크기를 바로 확인할 수 있습니다. 예: find / -type f -size +10M -exec ls -lrt {} \\

17. 서버 운영 체제 버전을 확인하는 방법은 무엇인가요?

다음 명령어를 실행하여 시스템의 버전을 확인할 수 있습니다.
uname -a
cat /proc/version
cat /etc/issue

18. Linux 터미널에 표시된 중국어가 깨지는 이유는 무엇인가요?

서버 자체는 표시 언어를 제한하지 않습니다. 터미널 소프트웨어가 중국어 표시에 영향을 주는 경우, [옵션]> [세션 옵션]> [모양](secureCRT 설정, 기타 버전 소프트웨어는 관련 설정을 확인)에서 변경할 수 있습니다. 단순히 Linux shell에서 깨진 글자가 나타나면, export 명령어를 사용해 사용자의 LANG, LC_CTYPE 등 환경 변수 설정을 확인 바랍니다.

19. SecureCRT를 통해 CVM에 연결 시 타임아웃 시간은 어떻게 설정하나요?

SecureCRT가 CVM에 연결되면, 다음 설정을 통해 끊김 없이 연결할 수 있습니다.
1. [SecureCRT 옵션(Options)]을 엽니다.
2. [세션 옵션(Session Options)]을 선택하고 [터미널(Terminal)]을 클릭합니다.
3. 오른쪽의 Anti-idle 상자에서 [프로토콜 발송 NO-OP(Send protocol NO-OP)]을 선택하고 시간을 120초마다(every 120 seconds)로 설정합니다.

20. Linux 서버에서 파일을 삭제해도 디스크 용량이 확보되지 않는 원인은 무엇인가요?

원인:
Linux 서버에 로그인하고 rm 명령어를 실행하여 파일을 삭제한 후에, ‘df’ 명령어를 실행하여 디스크 공간을 확인한 결과, 파일을 삭제했음에도 사용 가능한 디스크 용량이 증가하지 않을 수 있습니다. 그 이유는 rm 명령어로 파일을 삭제할 때 다른 프로세스가 해당 파일에 액세스하는 중이었다면, df 명령어를 실행하여 확인해도 삭제된 파일이 사용한 공간이 즉시 확보되지 않기 때문입니다.
해결 방법:
1. root 권한으로 lsof |grep deleted 명령어를 실행하여 삭제된 파일을 사용 중인 프로세스의 PID를 확인합니다.
2. 'kill -9 PID' 명령어를 사용해 해당 프로세스를 종료합니다.

21. Linux 서버상의 파일을 삭제하는 방법은 무엇인가요?

rm 명령어를 통해 파일을 삭제할 수 있으나, 해당 명령어로 삭제한 파일은 복구할 수 없으니 신중히 사용하시기 바랍니다. rm 명령어의 형식은 rm(옵션)(매개변수)입니다.
옵션: -d: 삭제할 디렉터리의 고정 연결 데이터를 0으로 하여 삭제한 다음 해당 디렉터리를 삭제합니다. -f: 파일 또는 디렉터리를 강제로 삭제합니다. -i: 기존 파일 또는 디렉터리를 삭제하기 전에 사용자에게 먼저 묻습니다. -r 또는 -R: 재귀적 처리로, 지정한 디렉터리 하의 모든 파일 및 서브 디렉터리를 함께 처리합니다. --preserve-root: 루트 디렉터리에 대해서는 재귀 작업을 실행하지 않습니다. -v: 명령의 상세한 실행 과정을 표시합니다.
매개변수: 파일, 삭제될 파일 목록이며, 매개변수에 디렉터리가 있으면 -r 또는 -R 옵션을 추가해야 합니다.
예:
test.txt 파일을 삭제하려면 rm test.txt를 실행합니다.
test 디렉터리를 삭제하려면 rm -r test를 실행합니다.
현재 디렉터리 하의 모든 파일 및 서브 디렉터리를 삭제하려면 rm -r *를 실행합니다.
문제 해결에 도움이 되었나요?
더 자세한 내용은 문의하기 또는 티켓 제출 을 통해 문의할 수 있습니다.
아니오

피드백