Tutoriel Linux

Linux에서 감시하기: 명령어를 수동으로 다시 실행하지 않고도 명령어를 따라갈 수 있습니다.

Débutant2 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

당신은 다시 시작 df -h, ss -s 또는 systemctl --실패 값이 변하는지 확인하기 위해 몇 초마다 명령을 실행합니다. 보다 터미널에서 이러한 관찰 과정을 자동화합니다. 일정한 간격으로 동일한 명령을 실행하고 이전 표시를 대체하며 변경 사항을 강조 표시할 수 있습니다.

저는 짧은 시간 동안 프로세스, 디스크 공간 사용량 또는 서비스 상태를 모니터링하기 위해 이 도구를 사용합니다. 하지만 한 가지 유의해야 할 점이 있습니다. 보다 실제로는 명령을 반복하는 것입니다. 따라서 느리거나 비용이 많이 들거나 파괴적인 명령은 사용자가 멈출 때까지 반복됩니다.

Tux는 정기적으로 Linux 서버의 변경 사항을 모니터링합니다.
Watch는 일정한 간격으로 명령을 반복 실행하고 관찰된 변화를 강조 표시합니다.

시계가 있는지 확인하세요

보다 패키지의 일부 소품 또는 procps-ng 배포판에 따라 다릅니다. 먼저, 해당 파일의 존재 여부와 버전을 확인하십시오.

명령 -v 시계
시계 --버전
시계 --도움말

해당 명령어가 없는 경우, 상응하는 패키지를 설치하세요.

sudo apt install procps
sudo dnf install procps-ng
sudo pacman -S procps-ng

사용 가능한 옵션은 procps-ng 버전에 따라 약간씩 다를 수 있습니다. 자세한 내용은 man 페이지를 참조하십시오. 보다 해당 항목은 사용자의 컴퓨터에 설치된 동작을 확인하는 기준으로 남아 있습니다.

선택한 간격으로 명령을 새로 고칩니다.

옵션이 없으면, 보다 해당 명령은 2초마다 다시 실행됩니다. 이 예제는 마운트 포인트 공간을 모니터링합니다. /srv/데이터 :

watch 'df -h /srv/data'

헤더에는 간격, 명령 및 마지막 새로 고침 시간이 표시됩니다. 출력은 매 실행마다 덮어쓰기되며, 로그 파일처럼 화면에 추가되지 않습니다.

사용 -N 간격을 초 단위로 선택하세요. 여기서는 명령이 5초마다 반복됩니다.

watch -n 5 'df -h /srv/data'

명령 실행 시간에 맞춰 빈도를 조정하세요. 간단한 로컬 카운터의 경우 1초가 적당합니다. 네트워크 요청, API 호출, 저장 속도가 느린 작업 또는 여러 파일을 순회하는 명령의 경우 5초, 10초 또는 30초를 선택하세요. 먼저, 실행 시간 동안 아무 작업도 수행하지 않고도 빈도를 확인해 보세요. 보다 :

time df -h /srv/data

옵션 -피 더 정확한 타이밍이 필요합니다. 간격보다 느린 명령과 함께 사용하지 마십시오. 일부 버전은 실행 시간을 단축하기 위해 빠르게 연속 실행을 할 수 있습니다.

시각적으로 비교하는 대신 변경 사항을 강조 표시하세요.

옵션 -디 연속된 두 화면 표시 간의 차이점을 강조합니다. 연결 상태, 프로세스 대기열 또는 시스템 카운터를 추적하는 데 유용합니다.

watch -d -n 1 'ss -s'
watch -d -n 2 'ps -eo pid,pcpu,pmem,comm --sort=-pcpu | head -n 12'
watch -d -n 5 'systemctl --failed --no-legend'

CPU 또는 메모리 부하의 경우, 보다 집중된 보기를 제공하지만 대화형 탐색 기능은 없습니다. 가이드는 Linux의 htop 프로세스를 정렬하고, 열을 변경하고, 담당 부서를 추적해야 하는 경우에 더 적합합니다.

-g 사용법을 다시 변경합니다. 보다 출력값이 달라지는 즉시 멈춥니다. 이를 통해 터미널 앞에 계속 서 있지 않아도 상태 변화를 기다릴 수 있습니다.

watch -g -n 2 'systemctl is-active nginx'

반환된 텍스트가 변경되면 이 명령은 종료됩니다. 그런 다음 모든 작업을 다시 시작하기 전에 전체 상태 및 로그를 검토하십시오.

systemctl status nginx --no-pager
journalctl -u nginx -n 50 --no-pager

조치를 취하기 전에 유닛 목록을 확인해야 하는 경우, 관련 튜토리얼도 참조하십시오. systemctl 및 Linux 서비스.

따옴표, 파이프(|) 및 -x 옵션 이해하기

기본적으로, 보다 주문을 보냅니다 sh -c이는 파이프, 리디렉션 또는 여러 명령을 사용할 때 유용합니다. 전체 명령을 작은따옴표로 묶으면 각 반복마다 실행되는 셸이 전체 문자열을 해석합니다.

watch -n 2 'ps -eo pid,pcpu,pmem,comm --sort=-pmem | head -n 10'
watch -n 5 'date; df -h /srv/data'

이 작은따옴표들이 없으면 현재 사용 중인 셸에서 해당 튜브를 처리할 수 있습니다. 보다 명령의 일부만 수신하여 결과가 원하는 결과와 일치하지 않게 됩니다.

튜브나 방향 전환이 필요하지 않을 때, -엑스 인수를 사용하여 프로그램을 직접 실행합니다. 이 형식은 이스케이프 문제(이스케이프 오류)를 줄여줍니다.

watch -n 2 -x df -h /srv/data

모든 옵션 유지 보다 명령 이름 앞에 옵션 처리가 시작됩니다. 옵션이 아닌 첫 번째 인수에서 옵션 처리가 중단됩니다.

시계를 파괴적인 반복 작동 상태로 만들지 마세요.

보다 재생 제어에 적합함: df, 무료, 봄 여름 시즌, 추신., systemctl 상태 또는 상태 조회에 사용해야 합니다. 시스템을 수정하는 작업과 관련하여 사용해서는 안 됩니다.

  • 반복하지 마세요 RM, chmod, chown 또는 파티셔닝 명령입니다.
  • 두지 마십시오 systemctl 재시작 ~ 안에 보다 일정 간격마다 서비스를 재시작해야 합니다.
  • 그것에 대해 생각하지 마십시오. 적절한 업데이트데이터베이스에 기록하는 백업 파일 또는 스크립트입니다.
  • 원격 API의 경우, 스로틀링이나 불필요한 부하를 유발하지 않는 간격을 선택하세요.

읽기 전용 HTTP 테스트의 경우, 이러한 목적을 위해 설계된 상태 확인 경로를 사용하고 오류 발생 시 종료하십시오. -이자형 사용 중인 버전에서 해당 기능을 제공하는 경우:

watch -e -n 10 'curl -fsS http://127.0.0.1:8080/health'

다음과 같은 유형의 셸 루프 사실이지만 같은 반복 작업을 수행할 수 있지만, 지우기, 지연, 오류 및 중지를 관리해야 합니다. 보다 일시적인 관찰에는 이 방법이 더 깔끔합니다. 지속적인 모니터링을 위해서는 모니터링 도구, systemd 타이머 또는 결과를 기록하는 스크립트를 사용하십시오.

모니터링을 중단하고 로그 관리에 적합한 도구를 선택하세요.

누르다 Ctrl + C 멈추다 보다관찰 대상 프로세스는 다음 새로 고침 전에 완료되어야 합니다. 명령이 계속 멈춰 있는 경우, 신호를 보내기 전에 두 번째 터미널을 열어 해당 프로세스를 확인하십시오.

pgrep -af 시계
ps -o pid,ppid,stat,etime,cmd -p PID

새로운 기사가 ​​올라오는 신문을 구독하려면, 보다 방문할 때마다 기록을 삭제하세요. journalctl -f systemd 유닛의 경우 또는 꼬리 -F 로그 순환을 통해 다시 생성할 수 있는 파일의 경우:

journalctl -u nginx -f
tail -F /var/log/nginx/error.log

가이드 테일 로그 및 실시간 로그 모니터링 이 차이점은 자세히 설명되어 있습니다. 따라서 사용하세요. 보다 짧은 순간의 상황을 비교하다가, 사건의 순서가 중요해지면 바로 이력을 보존하는 도구로 전환하세요.

sudo apt update && sudo apt upgrade