웹사이트 검색

psacct 또는 acct 도구를 사용하여 Linux 사용자 활동 모니터링


psacct 또는 acct는 모두 Linux 시스템에서 사용자 활동을 모니터링하기 위한 오픈 소스 유틸리티입니다. 이러한 유틸리티는 백그라운드에서 실행되며 시스템에서 각 사용자의 활동은 물론 소비되는 리소스도 추적합니다.

저는 개인적으로 우리 회사에서 이러한 도구를 사용했으며 개발자가 지속적으로 서버에서 작업하는 개발 팀이 있습니다. 따라서 이것들은 계속 지켜볼 수 있는 최고의 유틸리티입니다.

이러한 프로그램은 사용자가 무엇을 하고 있는지, 어떤 명령을 실행하고 있는지, 얼마나 많은 리소스를 사용하고 있는지, 사용자가 시스템에서 얼마나 오랫동안 활동하는지 모니터링하는 훌륭한 방법을 제공합니다. 또 다른 유용한 기능은 Apache, MySQL, FTP, SSH 등과 같은 서비스에서 소비하는 총 리소스를 제공한다는 것입니다.

나는 이것이 서버/시스템에서 사용자 활동을 추적하기를 원하는 모든 Linux/Unix 시스템 관리자에게 가장 훌륭하고 필요한 유틸리티 중 하나라고 생각합니다.

psacct 또는 acct 패키지는 프로세스 활동을 모니터링하기 위한 여러 기능을 제공합니다.

  • ac 명령은 사용자 로그인/로그아웃(연결 시간) 통계를 시간 단위로 인쇄합니다.
  • lastcomm 명령은 사용자가 이전에 실행한 명령의 정보를 인쇄합니다.
  • acton 명령은 회계 프로세스를 켜거나 끄는 데 사용됩니다.
  • sa 명령은 이전에 실행된 명령의 정보를 요약합니다.
  • lastlastb 명령은 마지막으로 로그인한 사용자 목록을 표시합니다.

Linux에 psacct 또는 acct 패키지 설치

psacctacct는 둘 다 비슷한 패키지이고 둘 사이에 큰 차이가 없지만 psacct 패키지는 다음과 같은 rpm 기반 배포판에만 사용할 수 있습니다. RHEL, CentOSFedora와 같은 반면, acct 패키지는 Ubuntu<와 같은 배포판에 사용할 수 있습니다., Debian,Linux Mint.

rpm 기반 배포판에 psacct 패키지를 설치하려면 다음 yum 명령을 실행하세요.

yum install psacct

Ubuntu/Debian/Linux Mint에서 apt 명령을 사용하여 acct 패키지를 설치합니다.

sudo apt install acct

다른 Linux 배포판에서는 표시된 대로 설치할 수 있습니다.

sudo apk add psacct          [On Alpine Linux]
sudo pacman -S acct          [On Arch Linux]
sudo zypper install acct     [On OpenSUSE]    
psacct 또는 acct 서비스 시작

기본적으로 psacct 서비스는 비활성화 모드이며 RHEL 기반 배포에서 수동으로 시작해야 합니다. 서비스 상태를 확인하려면 다음 명령을 사용하십시오.

sudo systemctl status psacct

상태가 비활성화됨으로 표시되므로 다음 명령을 사용하여 수동으로 시작하면 /var/account/pacct 파일이 생성됩니다.

sudo systemctl start psacct
sudo systemctl enable psacct
sudo systemctl status psacct

Ubuntu, DebianMint 서비스에서는 자동으로 시작되므로 다시 시작할 필요가 없습니다.

사용자 접속 시간 통계 표시

인수를 지정하지 않은 ac 명령은 현재 wtmp 파일의 사용자 로그인/로그아웃을 기반으로 연결 시간의 총 통계를 시간 단위로 표시합니다.

ac

total     11299.15

Linux 사용자의 일별 통계 표시

"ac -d" 명령을 사용하면 일별 총 로그인 시간이 시간 단위로 출력됩니다.

ac -d

Jun 25	total        0.19
Oct 13	total       14.45
Oct 27	total      672.00
Oct 28	total       15.82
Nov  3	total        4.29
Nov  5	total       10.13
Dec  7	total       14.04
Dec 10	total       23.60
Dec 27	total      808.93
Jan  3	total       12.31
Mar  3	total     1438.67
Jul 22	total     6767.81
Today	total     1517.09

모든 Linux 사용자의 총 로그인 시간 표시

"ac -p" 명령을 사용하면 각 Linux 사용자의 총 로그인 시간이 시간 단위로 인쇄됩니다.

ac -p

	rockylinux                         425.61
	tecmint                            702.29
	root                             10171.54
	total    11299.44

Linux 사용자 로그인 시간 표시

사용자 “tecmint”의 총 로그인 통계 시간을 시간 단위로 얻으려면 as 명령을 사용하십시오.

ac tecmint
 total      702.29

사용자의 요일별 로그인 시간 표시

다음 명령은 사용자 "tecmint"의 일별 총 로그인 시간을 시간 단위로 인쇄합니다.

ac -d tecmint
Oct 11  total        8.01
Oct 12  total       24.00
Oct 15  total       70.50
Oct 16  total       23.57
Oct 17  total       24.00
Oct 18  total       18.70
Nov 20  total        0.18

사용자가 실행한 모든 Linux 명령 인쇄

"sa" 명령은 사용자가 실행한 명령 요약을 인쇄하는 데 사용됩니다.

sa
       2       9.86re       0.00cp     2466k   sshd*
       8       1.05re       0.00cp     1064k   man
       2      10.08re       0.00cp     2562k   sshd
      12       0.00re       0.00cp     1298k   psacct
       2       0.00re       0.00cp     1575k   troff
      14       0.00re       0.00cp      503k   ac
      10       0.00re       0.00cp     1264k   psacct*
      10       0.00re       0.00cp      466k   consoletype
       9       0.00re       0.00cp      509k   sa
       8       0.02re       0.00cp      769k   udisks-helper-a
       6       0.00re       0.00cp     1057k   touch
       6       0.00re       0.00cp      592k   gzip
       6       0.00re       0.00cp      465k   accton
       4       1.05re       0.00cp     1264k   sh*
       4       0.00re       0.00cp     1264k   nroff*
       2       1.05re       0.00cp     1264k   sh
       2       1.05re       0.00cp     1120k   less
       2       0.00re       0.00cp     1346k   groff
       2       0.00re       0.00cp     1383k   grotty
       2       0.00re       0.00cp     1053k   mktemp
       2       0.00re       0.00cp     1030k   iconv
       2       0.00re       0.00cp     1023k   rm
       2       0.00re       0.00cp     1020k   cat
       2       0.00re       0.00cp     1018k   locale
       2       0.00re       0.00cp      802k   gtbl

위 명령 출력에 대한 설명:

  • 9.86re는 벽시계 분 기준의 '실시간'입니다.
  • 0.01cp는 CPU 분 단위의 시스템/사용자 시간 합계입니다.
  • 2466k는 CPU 시간 평균 코어 사용량입니다(예: 1k 단위).
  • sshd 명령 이름

Linux 사용자 정보 인쇄

개별 사용자의 정보를 얻으려면 -u 옵션을 사용하세요.

sa -u
root       0.00 cpu      465k mem accton
root       0.00 cpu     1057k mem touch
root       0.00 cpu     1298k mem psacct
root       0.00 cpu      466k mem consoletype
root       0.00 cpu     1264k mem psacct           *
root       0.00 cpu     1298k mem psacct
root       0.00 cpu      466k mem consoletype
root       0.00 cpu     1264k mem psacct           *
root       0.00 cpu     1298k mem psacct
root       0.00 cpu      466k mem consoletype
root       0.00 cpu     1264k mem psacct           *
root       0.00 cpu      465k mem accton
root       0.00 cpu     1057k mem touch

Linux 프로세스 수 인쇄

이 명령은 총 프로세스 수와 CPU 시간(분)을 인쇄합니다. 이 숫자가 지속적으로 증가하는 경우 시스템에서 무슨 일이 일어나고 있는지 조사해야 할 때입니다.

sa -m
sshd                                    2       9.86re       0.00cp     2466k
root                                  127      14.29re       0.00cp      909k

백분율로 사용량 인쇄 및 정렬

"sa -c" 명령은 가장 높은 사용자 비율을 표시합니다.

sa -c
 132  100.00%      24.16re  100.00%       0.01cp  100.00%      923k
       2    1.52%       9.86re   40.83%       0.00cp   53.33%     2466k   sshd*
       8    6.06%       1.05re    4.34%       0.00cp   20.00%     1064k   man
       2    1.52%      10.08re   41.73%       0.00cp   13.33%     2562k   sshd
      12    9.09%       0.00re    0.01%       0.00cp    6.67%     1298k   psacct
       2    1.52%       0.00re    0.00%       0.00cp    6.67%     1575k   troff
      18   13.64%       0.00re    0.00%       0.00cp    0.00%      509k   sa
      14   10.61%       0.00re    0.00%       0.00cp    0.00%      503k   ac
      10    7.58%       0.00re    0.00%       0.00cp    0.00%     1264k   psacct*
      10    7.58%       0.00re    0.00%       0.00cp    0.00%      466k   consoletype
       8    6.06%       0.02re    0.07%       0.00cp    0.00%      769k   udisks-helper-a
       6    4.55%       0.00re    0.00%       0.00cp    0.00%     1057k   touch
       6    4.55%       0.00re    0.00%       0.00cp    0.00%      592k   gzip
       6    4.55%       0.00re    0.00%       0.00cp    0.00%      465k   accton
       4    3.03%       1.05re    4.34%       0.00cp    0.00%     1264k   sh*
       4    3.03%       0.00re    0.00%       0.00cp    0.00%     1264k   nroff*
       2    1.52%       1.05re    4.34%       0.00cp    0.00%     1264k   sh
       2    1.52%       1.05re    4.34%       0.00cp    0.00%     1120k   less
       2    1.52%       0.00re    0.00%       0.00cp    0.00%     1346k   groff
       2    1.52%       0.00re    0.00%       0.00cp    0.00%     1383k   grotty
       2    1.52%       0.00re    0.00%       0.00cp    0.00%     1053k   mktemp

사용자가 마지막으로 실행한 명령 나열

'latcomm' 명령은 이전에 실행한 사용자 명령 정보를 검색하고 표시하는 데 사용됩니다. 개별 사용자 이름의 명령을 검색할 수도 있습니다. 예를 들어 사용자(tecmint)의 명령이 표시됩니다.

lastcomm tecmint
su                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
id                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
grep                    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
grep                    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
dircolors               tecmint  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
tput                    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
tty                     tecmint  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
id                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
bash               F    tecmint  pts/0      0.00 secs Wed Feb 13 15:56
id                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56

명령에 대한 로그 검색

lastcomm 명령을 사용하면 각 명령의 개별 사용을 볼 수 있습니다.

lastcomm ls
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56
ls                      tecmint  pts/0      0.00 secs Wed Feb 13 15:56

자세한 내용과 사용법은 해당 도구의 매뉴얼 페이지를 확인하세요.