Linux는 시스템 관리 작업을 빠르고 효율적으로 수행하는 데 도움이 되는 수많은 명령과 유틸리티를 제공합니다.
시스템 관리자로서의 작업에는 소프트웨어 설치 및 실행, 액세스 제어, 모니터링, 가용성 보장, 백업, 백업 복원, 물론 소방이 포함됩니다. 😜
이 기사에서는 Linux 시스템 관리자가 일상 업무에서 자주 사용하는 몇 가지 명령을 검토합니다.
목차
우나메
시스템 정보를 인쇄하려면 -a 플래그와 함께 uname 명령을 사용하십시오. 이 명령은 커널 이름, 커널 릴리스, 커널 버전, 호스트 이름, 프로세서 유형 및 하드웨어 플랫폼 정보를 표시합니다.
[email protected]:~$ uname -a Linux ubuntu18 5.3.0-1028-azure #29~18.04.1-Ubuntu SMP Fri Jun 5 14:32:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
이것이 의미하는 바는 다음과 같습니다.
kernel name:Linux hostname: ubuntu18 kernel release: 5.3.0-1028-azure kernel version: #29~18.04.1-Ubuntu SMP Fri Jun 5 14:32:34 UTC 2020 machine hardware name: x86_64 processor: x86_64 hardware-platform: x86_64 operating system: GNU/Linux
DF
df 명령을 사용하여 파일 시스템의 크기와 사용 가능한 공간을 확인합니다. 단독으로 사용되는 이 명령은 출력을 1K 블록으로 표시합니다.
[email protected]:~$ df Filesystem 1K-blocks Used Available Use% Mounted on udev 437208 0 437208 0% /dev tmpfs 91100 692 90408 1% /run /dev/sda1 30309264 2383952 27908928 8% / ....
옵션 -h는 사람이 읽을 수 있는 형식(MB 및 GB)으로 출력을 표시합니다.
[email protected]:~$ df -h Filesystem Size Used Avail Use% Mounted on udev 427M 0 427M 0% /dev tmpfs 89M 692K 89M 1% /run /dev/sda1 29G 2.3G 27G 8% / tmpfs 445M 0 445M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 445M 0 445M 0% /sys/fs/cgroup /dev/sda15 105M 3.6M 101M 4% /boot/efi /dev/sdb1 3.9G 16M 3.7G 1% /mnt tmpfs 89M 0 89M 0% /run/user/1001
더 깨끗한 출력을 위한 파일 시스템(예: tmpfs)을 무시하려면 플래그 -x를 사용하십시오.
[email protected]:~$ df -h -x tmpfs Filesystem Size Used Avail Use% Mounted on udev 427M 0 427M 0% /dev /dev/sda1 29G 2.3G 27G 8% / /dev/sda15 105M 3.6M 101M 4% /boot/efi /dev/sdb1 3.9G 16M 3.7G 1% /mnt
특정 파일 시스템 유형만 나열하려면 -t 플래그를 사용하십시오. 예를 들어, ext4 파일 시스템만 보려면:
[email protected]:~$ df -h -t ext4 Filesystem Size Used Avail Use% Mounted on /dev/sda1 29G 2.3G 27G 8% / /dev/sdb1 3.9G 16M 3.7G 1% /mnt
total 플래그를 사용하면 총합계를 표시하는 줄이 추가됩니다.
[email protected]:~$ df -h -t ext4 --total Filesystem Size Used Avail Use% Mounted on /dev/sda1 29G 2.3G 27G 8% / /dev/sdb1 3.9G 16M 3.7G 1% /mnt <b>total 33G 2.3G 31G 8% -</b>
뒤
디렉토리의 디스크 공간 사용량을 확인하려면 du 명령을 사용하십시오. 예를 들어 /var/log 디렉토리의 디스크 공간 사용량을 확인합니다. 사람이 읽을 수 있는 형식에는 -h 플래그를 사용하십시오.
[email protected]:~$ sudo du -h /var/log 24K /var/log/Microsoft/Azure/NetworkWatcherAgent/Logs 28K /var/log/Microsoft/Azure/NetworkWatcherAgent 32K /var/log/Microsoft/Azure 36K /var/log/Microsoft 60K /var/log/apt 4.0K /var/log/samba 177M /var/log/journal/0f4f926f583b4691af7de11025b19ff6 177M /var/log/journal ... 204M /var/log
총 사용량만 보려면 -s(요약) 플래그를 사용하십시오.
[email protected]:~$ sudo du -hs /var/log 204M /var/log
무료
free 명령을 사용하여 총, 사용 및 사용 가능한 시스템 메모리를 확인합니다. 사람이 읽을 수 있는 형식에는 -h 플래그를 사용하십시오.
[email protected]:~$ free -h total used free shared buff/cache available Mem: 889M 272M 100M 712K 517M 443M Swap: 0B 0B 0B
total - Total installed memory (memtotal + swaptotal) used - used memory free - unused memory (memfree + swapfree) buffers - memory used by kernel buffers cache - memory used by page caches buff/cache - sum of buffers and cache available - Estimated memory available for starting new applications, without swapping
추신
ps를 사용하여 시스템에서 실행 중인 프로세스에 대한 상태 정보를 표시합니다. 사용자 우분투가 소유한 모든 프로세스를 보려면 사용자 이름과 함께 -u 플래그를 사용하십시오.
[email protected]:~$ ps -u ubuntu PID TTY TIME CMD 7804 ? 00:00:00 systemd 7805 ? 00:00:00 (sd-pam) 7940 ? 00:00:00 sshd 7941 pts/0 00:00:00 bash 8111 ? 00:00:00 sshd 8112 pts/1 00:00:00 bash 13868 ? 00:00:00 sshd 13869 pts/2 00:00:00 bash 13885 pts/0 00:00:00 man 13895 pts/0 00:00:00 pager 18111 pts/2 00:00:00 man 18121 pts/2 00:00:00 pager 18485 pts/1 00:00:00 ps
모든 프로세스를 보려면 aux 플래그와 함께 ps를 실행하십시오.
[email protected]:~$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.7 160076 7020 ? Ss Jun29 0:34 /sbin/init root 2 0.0 0.0 0 0 ? S Jun29 0:00 [kthreadd] root 3 0.0 0.0 0 0 ? I< Jun29 0:00 [rcu_gp] root 4 0.0 0.0 0 0 ? I< Jun29 0:00 [rcu_par_gp] root 6 0.0 0.0 0 0 ? I< Jun29 0:00 [kworker/0:0H-kb] ....
어디
표제
의미
PID
프로세스 식별 번호
CPU %
프로세스가 사용하는 CPU 시간의 백분율
%MEM
RAM 프로세스가 사용 중인 비율
VSZ
사용 중인 가상 메모리(KB)
RSS
프로세스가 사용 중인 물리적 메모리(KB)
티티
프로세스와 관련된 터미널
통계
R – 실행 중 또는 실행할 준비가 됨, S – 대기 중, I – 유휴, T – 중지됨, Z – 좀비, D – 디스크 I/O 대기 중, X – 작동 불능, W – 교체됨, N – 낮은 우선 순위 프로세스, < – 우선순위가 높은 프로세스
맨 위
ps 명령은 어떤 순간의 프로세스 상태에 대한 스냅샷을 표시하지만 top은 프로세스 활동 순서대로 지속적으로 업데이트되는 시스템 프로세스 목록(기본적으로 3초마다)을 표시합니다.
top 명령 출력은 두 가지 주요 부분으로 구성됩니다. 상단의 시스템 요약과 CPU 활동별로 정렬된 프로세스 테이블입니다.
top - 14:25:32 up 44 days, 11:37, 1 user, load average: 0.00, 0.00, 0.00 Tasks: 114 total, 1 running, 59 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.0 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 910992 total, 101208 free, 274712 used, 535072 buff/cache KiB Swap: 0 total, 0 free, 0 used. 458492 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 50497 ubuntu 20 0 44528 3944 3368 R 0.7 0.4 0:00.15 top 1 root 20 0 160076 7020 4400 S 0.0 0.8 0:34.85 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.08 kthreadd 3 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_gp 4 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp 6 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:+ 9 root 0 -20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_+
시스템 요약의 일부 필드는 다음과 같습니다.
위로
가동 시간. 시스템이 마지막으로 부팅된 이후의 시간입니다.
평균 부하
로드 평균은 실행 대기 중인 프로세스의 수를 나타내며 1.0보다 작은 값은 시스템이 사용 중이 아님을 의미합니다. 3개의 값이 있습니다. 첫 번째는 최근 60초 평균, 두 번째는 최근 5분 평균, 세 번째는 최근 15분 평균입니다.
%Cpu
이 행은 CPU의 활동을 설명합니다.
0.3 us, 사용자
0.3% CPU가 사용자 프로세스에 사용되고 있습니다.
0.0 sy, 시스템
0.0% CPU가 시스템 프로세스에 사용되고 있습니다.
0.0 ni, 좋은
0.0% CPU가 낮은 우선 순위(좋은) 프로세스에서 사용 중입니다.
99.7 ID, 유휴
99.7% CPU가 유휴 상태입니다.
0.0wa, IO 대기
0.0% CPU가 I/O를 기다리고 있습니다.
0.0 안녕
하드웨어 인터럽트에 소요된 시간
0.0시
소프트웨어 인터럽트에 소요된 시간
0.0st
하이퍼바이저에 의한 이 VM의 타임 스톤
프로세스 테이블 필드는 다음과 같습니다.
PID
프로세스 식별 번호
사용자
프로세스 소유자
홍보
우선 사항
NI
좋은 가치
가상
프로세스에서 사용하는 가상 메모리(KB)
해상도
프로세스에서 사용하는 물리적 메모리
SHR
프로세스에서 사용하는 공유 메모리
에스
프로세스 상태. R – 실행 중, S – 절전 모드, I – 유휴 상태, T – 중지됨, Z – 좀비, D – 디스크 I/O 대기 중, W- 스왑 아웃, X – 데드
CPU %
CPU 시간 프로세스가 백분율로 사용 중입니다.
%MEM
물리적 메모리 프로세스가 사용 중인
시각[+]
프로세스에서 사용한 총 CPU 시간
명령
프로그램 이름
top이 실행되는 동안 여러 명령을 실행할 수 있습니다. h 또는 ? top이 실행되는 동안 실행할 수 있는 명령을 확인합니다. k를 눌러 프로세스를 종료합니다. 상단을 종료하려면 q를 누르십시오.
파기
dig는 DNS 쿼리를 위한 훌륭한 도구입니다. 다음과 같이 사용됩니다.
dig <DNS server> <domain> <query-type>
어디
는 쿼리하려는 DNS 서버 이름입니다. 은 쿼리하려는 도메인 이름입니다. 은 A, MX, NS SOA 등 알고자 하는 레코드의 이름입니다.
자세한 출력을 억제하려면 +short 플래그를 사용하십시오.
google.com에 대한 A 레코드를 보려면 다음을 사용하세요.
[email protected]:~$ dig google.com +short 172.217.164.174
google.com용 MX 레코드를 보려면 다음을 사용하세요.
[email protected]:~$ dig google.com MX +short 50 alt4.aspmx.l.google.com. 10 aspmx.l.google.com. 20 alt1.aspmx.l.google.com. 40 alt3.aspmx.l.google.com. 30 alt2.aspmx.l.google.com.
인터넷에서 DNS 레코드를 쿼리해야 하는 경우 DNS 조회 도구를 사용할 수 있습니다.
누구와 w
누가 로그온한 사용자를 표시합니다.
[email protected]:~$ who ubuntu pts/0 2020-08-14 17:28 (183.83.211.129) ubuntu pts/1 2020-08-14 17:58 (183.83.211.129)
w는 현재 로그온한 사용자와 해당 프로세스를 보여줍니다. 헤더는 현재 시간, 시스템 가동 시간, 로그온한 사용자 수 및 시스템 로드 평균을 보여줍니다.
[email protected]:~$ w 18:07:33 up 46 days, 15:19, 2 users, load average: 0.00, 0.00, 0.00 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT ubuntu pts/0 183.83.211.129 17:28 2.00s 0.10s 0.00s w ubuntu pts/1 183.83.211.129 17:58 9:07 0.05s 0.01s vi
다음 부분은 사용자 이름, 터미널 및 로그온한 원격 IP, 로그인 시간, 유휴 시간, JCPU, PCPU 및 실행 중인 프로그램을 보여줍니다. JCPU는 tty에 연결된 모든 프로세스가 사용하는 시간이고 PCPU는 현재 프로세스에서 사용하는 시간입니다.
타르
GNU tar를 사용하면 여러 파일을 단일 파일로 보관할 수 있습니다.
예를 들어 myfiles 디렉토리에 myfiles 디렉토리와 세 개의 파일 a.txt, b.txt, c.txt를 만듭니다.
[email protected]:~$ mkdir myfiles ; touch myfiles/{a.txt,b.txt,c.txt}
이제 myfiles 디렉토리의 모든 파일을 포함하는 allfiles.tar라는 아카이브를 생성하려면:
[email protected]:~$ tar -cvf allfiles.tar myfiles myfiles/ myfiles/c.txt myfiles/a.txt myfiles/b.txt
현재 디렉토리의 모든 파일을 나열합니다. myfiles 디렉토리와 allfiles.tar 아카이브를 볼 수 있습니다.
[email protected]:~$ ls allfiles.tar myfiles
-x 플래그를 사용하여 아카이브의 압축을 풀 수 있습니다. 따라서 allfiles.tar의 압축을 풀려면:
[email protected]:~$ tar -xvf allfiles.tar myfiles/ myfiles/c.txt myfiles/a.txt myfiles/b.txt
-z 플래그를 사용하여 이 아카이브를 압축할 수도 있습니다. 이렇게 하면 gzip으로 압축된 아카이브가 생성됩니다.
[email protected]:~$ tar -zcvf allfiles.tar.gz myfiles myfiles/ myfiles/c.txt myfiles/a.txt myfiles/b.txt [email protected]:~$ ls allfiles.tar.gz myfiles
압축된 아카이브의 압축을 풀려면 -x 플래그와 함께 -z를 사용하십시오.
[email protected]:~$ tar -zxvf allfiles.tar.gz myfiles/ myfiles/c.txt myfiles/a.txt myfiles/b.txt
그렙
grep은 파일 또는 파일 집합에서 패턴을 검색하는 데 사용됩니다. 해당 패턴과 일치하는 모든 라인을 인쇄합니다. 예를 들어 /etc/apache2/apache2.conf에서 “ServerRoot”가 포함된 줄을 검색하려면 다음을 수행합니다.
[email protected]:~$ grep ServerRoot /etc/apache2/apache2.conf # ServerRoot: The top of the directory tree under which the server's #ServerRoot "/etc/apache2"
디렉토리의 모든 파일을 검색하려면 *를 사용하십시오. 하위 디렉토리에 검색을 포함하려면 -r(재귀) 플래그를 사용하십시오. 따라서 /etc/apache2의 모든 파일에서 “VirtualHost” 패턴을 포함하는 모든 라인을 검색하려면:
[email protected]:~$ cd /etc/apache2 [email protected]:/etc/apache2$ grep -r VirtualHost * apache2.conf:# If you do not specify an ErrorLog directive within a <VirtualHost> apache2.conf:# logged here. If you *do* define an error logfile for a <VirtualHost> conf-available/localized-error-pages.conf:# even on a per-VirtualHost basis. If you include the Alias in the global server conf-available/other-vhosts-access-log.conf:# Define an access log for VirtualHosts that don't define their own logfile ports.conf:# have to change the VirtualHost statement in sites-available/000-default.conf:<VirtualHost *:80> ...
재동기화
rsync는 두 위치 간에 파일과 디렉토리를 동기화하기 위한 빠른 명령줄 도구입니다. 로컬 및 원격 복사 모두에 사용할 수 있으며 원본 파일과 대상에 있는 기존 파일 간의 차이점만 보내기 때문에 빠릅니다.
백업 및 일상적인 사용을 위한 향상된 복사 명령으로 널리 사용됩니다.
다음은 예입니다.
myfiles 디렉토리에서 backups 디렉토리로 모든 파일을 복사/재동기화하려면:
[email protected]:~$ rsync -avh myfiles/ /backups sending incremental file list ./ a.txt b.txt c.txt sent 218 bytes received 76 bytes 588.00 bytes/sec total size is 0 speedup is 0.00
myfiles 디렉토리의 모든 파일을 원격 호스트의 backups 디렉토리로 재동기화하려면 대상 이름에 remote_user @remote_host를 포함하십시오. 따라서 myfiles 폴더를 IP 10.0.0.50의 원격 호스트에 다시 동기화하려면:
[email protected]:~$ rsync -avh myfiles/ [email protected]:/home/vagrant [email protected]'s password: sending incremental file list ./ a.txt b.txt c.txt sent 230 bytes received 76 bytes 47.08 bytes/sec total size is 0 speedup is 0.00
봄 여름 시즌
ss 명령은 레거시 netstat 유틸리티와 유사하게 소켓 통계를 덤프하는 데 사용됩니다. TCP 소켓을 표시하려면 -t 플래그를 사용하십시오.
[email protected]:~$ ss -t State Recv-Q Send-Q Local Address:Port Peer Address:Port ESTAB 0 0 10.0.0.4:53852 168.63.129.16:8037 ESTAB 0 0 10.0.0.4:ssh 183.83.211.129:64118 ESTAB 0 0 10.0.0.4:33256 169.254.169.254:http ESTAB 0 1080 10.0.0.4:ssh 222.186.30.35:11527 ESTAB 0 0 10.0.0.4:ssh 183.83.211.129:63049
이것은 수신 대기 중인 소켓을 표시하지 않습니다. 수신 및 비 수신 소켓을 모두 포함하려면 -t 및 -a 플래그를 사용하십시오.
[email protected]:~$ ss -t -a State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:ssh 0.0.0.0:* LISTEN 0 80 127.0.0.1:mysql 0.0.0.0:* LISTEN 0 128 127.0.0.53%lo:domain 0.0.0.0:* ESTAB 0 0 10.0.0.4:53852 168.63.129.16:8037 ESTAB 0 0 10.0.0.4:ssh 183.83.211.129:64118 ESTAB 0 0 10.0.0.4:33256 169.254.169.254:http ESTAB 0 1080 10.0.0.4:ssh 222.186.30.35:11527 ESTAB 0 120 10.0.0.4:ssh 183.83.211.129:63049 LISTEN 0 128 [::]:ssh [::]:* LISTEN 0 128 *:http *:*
위치하고 있다
위치 찾기 명령은 데이터베이스를 사용하여 파일을 검색하며 실제로는 찾기 명령보다 훨씬 빠를 수 있습니다. apache2.conf와 같이 파일을 검색하는 데 사용하기가 매우 간단합니다.
[email protected]:~$ locate apache2.conf /etc/apache2/apache2.conf /var/lib/dpkg/info/apache2.conffiles
검색 패턴과 일치하는 파일 수만 원하는 경우 -c 플래그를 사용할 수 있습니다.
[email protected]:~$ locate -c apache2.conf 2
때때로, mlocate인 위치 찾기에서 사용하는 데이터베이스를 새로 고쳐야 할 수도 있습니다. 데이터베이스를 업데이트하려면 updatedb 명령을 사용하십시오. 이를 위해서는 수퍼유저 권한이 필요합니다.
[email protected]:~$ sudo updatedb
찾기
Linux에서 가장 자주 사용되는 명령 중 하나입니다. 다른 기준 외에 파일 이름, 권한, 사용자 ID, 그룹 ID, 크기, 파일 유형을 기반으로 파일을 검색하는 데 사용합니다.
현재 디렉토리에서 이름으로 파일을 검색하려면 -name 플래그 다음에 검색할 파일 이름을 사용하십시오.:
[email protected]:~$ find . -name a.txt ./myfiles/a.txt
디렉토리를 검색하려면 -type d 플래그를 사용하십시오.
[email protected]:~$ find . -type d . ./.ssh ./myfiles ./.cache ./.gnupg ./.gnupg/private-keys-v1.d ./docker
20MB보다 큰 파일을 크기별로 검색하려면 -size 플래그를 사용하십시오.
[email protected]:~$ find . -size +20M ./docker/docker-ce-cli_5%3a19.03.12~3-0~ubuntu-bionic_amd64.deb ./docker/docker-ce_5%3a19.03.12~3-0~ubuntu-bionic_amd64.deb
시스템 컨트롤
이제 대부분의 Linux 배포판에서 systemd가 SysV init 프로세스를 대체했으므로 systemctl 명령을 사용하여 systemd 서비스 및 장치를 관리하십시오.
서비스를 시작하려면(예: apache2):
[email protected]:~$ sudo systemctl start apache2.service
서비스 접미사를 남길 수 있습니다.
서비스를 중지하려면:
[email protected]:~$ sudo systemctl stop apache2
서비스 상태를 보려면 systemctl status 명령을 사용하십시오. 다음 예제는 실행 중인 apache2 상태를 보여줍니다.
[email protected]:~$ sudo systemctl status apache2 ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Wed 2020-08-19 11:34:04 UTC; 2s ago Process: 25346 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS) Process: 18202 ExecReload=/usr/sbin/apachectl graceful (code=exited, status=0/SUCCESS) Process: 25536 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 25555 (apache2) Tasks: 55 (limit: 1024) CGroup: /system.slice/apache2.service ├─25555 /usr/sbin/apache2 -k start ├─25558 /usr/sbin/apache2 -k start └─25559 /usr/sbin/apache2 -k start Aug 19 11:34:04 ubuntu18 systemd[1]: Starting The Apache HTTP Server... Aug 19 11:34:04 ubuntu18 systemd[1]: Started The Apache HTTP Server.
ufw 명령
UFW – 복잡하지 않은 방화벽은 iptables용 프론트엔드를 사용하기 쉽습니다. Ubuntu 기반 배포판에서 기본적으로 사용할 수 있습니다. CentOS에서는 EPEL 저장소에서 ufw를 설치할 수 있습니다.
ufw를 활성화하려면:
$ sudo ufw enable
ufw 상태로 방화벽 상태 확인:
$ sudo ufw status Status: active
기본 UFW 정책은 모든 나가는 트래픽을 허용하고 들어오는 모든 트래픽을 차단합니다.
다음 명령은 HTTP 포트에서 들어오는 트래픽을 허용합니다.
$ sudo ufw allow http Rule added Rule added (v6)
모든 포트에서 트래픽을 거부할 수 있습니다. 다음은 포트 21에서 트래픽을 차단하는 예입니다.
$ sudo ufw deny 21 Rule added Rule added (v6)
저널 컨트롤
journalctl을 사용하여 systemd에서 수집한 로그를 봅니다. systemd는 바이너리 형식으로 중앙 위치에서 로그를 수집합니다. 이러한 로그를 보려면 다음 단계를 따르세요.
[email protected]:~$ sudo journalctl -- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:07:59 UTC. -- Jun 29 02:48:31 ubuntu kernel: Linux version 5.3.0-1028-azure ([email protected]) (gcc version 7.5.0 (Ubuntu Jun 29 02:48:31 ubuntu kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-5.3.0-1028-azure root=UUID=b0dd9d06-536e-41 Jun 29 02:48:31 ubuntu kernel: KERNEL supported cpus: Jun 29 02:48:31 ubuntu kernel: Intel GenuineIntel ...
대부분의 경우 로그를 역순으로 표시하는 것을 선호합니다. 즉, 최신 로그가 먼저 표시됩니다.
[email protected]:~$ sudo journalctl -r -- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:10:16 UTC. -- Aug 19 15:10:16 ubuntu18 sudo[31263]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0) Aug 19 15:10:16 ubuntu18 sudo[31263]: ubuntu : TTY=pts/1 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/bin/journalc Aug 19 15:10:11 ubuntu18 sudo[31213]: pam_unix(sudo:session): session closed for user root Aug 19 15:07:59 ubuntu18 sudo[31213]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0) Aug 19 15:07:59 ubuntu18 sudo[31213]: ubuntu : TTY=pts/1 ; PWD=/home/ubuntu ; USER=root ; COMMAND=/bin/journalc Aug 19 15:07:56 ubuntu18 sudo[31183]: pam_unix(sudo:session): session closed for user root Aug 19 15:06:47 ubuntu18 sudo[31183]: pam_unix(sudo:session): session opened for user root by ubuntu(uid=0) ...
예를 들어 mysql은 -u 플래그를 사용하여 특정 서비스의 로그를 보려면 다음을 수행합니다.
[email protected]:~$ sudo journalctl -u mysql -- Logs begin at Mon 2020-06-29 02:48:31 UTC, end at Wed 2020-08-19 15:11:34 UTC. -- Aug 16 12:30:02 ubuntu18 systemd[1]: Starting MySQL Community Server... Aug 16 12:30:03 ubuntu18 systemd[1]: Started MySQL Community Server. Aug 19 15:03:27 ubuntu18 systemd[1]: Stopping MySQL Community Server... Aug 19 15:03:29 ubuntu18 systemd[1]: Stopped MySQL Community Server.
죽이고 죽이고
런어웨이 프로세스를 종료하거나 일부 시스템 리소스를 해제해야 할 때 필요할 수 있습니다. kill with -l 플래그는 프로세스에 보낼 수 있는 모든 신호를 보여줍니다.
[email protected]:~$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP ....
가장 일반적으로 사용되는 두 가지 신호는 SIGTERM 및 SIGKILL입니다. SIGKILL에는 -9를, SIGTERM에는 -15를 사용할 수도 있습니다. SIGTERM은 프로세스가 종료되기 전에 완료되도록 허용하므로 소프트 킬(soft kill)이라고 합니다. SIGKILL은 프로세스를 즉시 종료합니다. 다음은 예입니다.
모든 apache2 프로세스 나열
[email protected]:~$ ps aux|grep apache2 root 45521 0.0 0.5 78188 4688 ? Ss Aug08 0:03 /usr/sbin/apache2 -k start www-data 45524 0.0 0.5 830480 4816 ? Sl Aug08 0:00 /usr/sbin/apache2 -k start www-data 45525 0.0 0.7 830480 6856 ? Sl Aug08 0:00 /usr/sbin/apache2 -k start ubuntu 70374 0.0 0.1 14852 1040 pts/0 S+ 07:45 0:00 grep --color=auto apache2
프로세스 ID가 45525인 apache2 프로세스를 종료하려면:
[email protected]:~$ sudo kill -9 45525
다시 apache2 프로세스 목록을 봅니다.
[email protected]:~$ ps aux|grep apache2 root 45521 0.0 0.5 78188 4688 ? Ss Aug08 0:03 /usr/sbin/apache2 -k start www-data 45524 0.0 0.5 830480 4816 ? Sl Aug08 0:00 /usr/sbin/apache2 -k start ubuntu 70525 0.0 0.1 14852 1052 pts/0 S+ 07:52 0:00 grep --color=auto apache2
killall을 사용하여 이름으로 프로그램을 종료하십시오. 즉, killall은 제어(상위) 프로세스와 모든 하위 프로세스를 종료합니다. 위의 예에서 apache2 프로세스의 모든 인스턴스를 종료하려면:
[email protected]:~$ sudo killall apache2
kill 및 killall을 주의해서 사용하십시오. 이러한 명령은 시스템을 불안정한 상태로 만들 수 있습니다.
IP
ip 명령은 최신 Linux 배포판에서 ifconfig를 대체합니다. 이를 사용하여 네트워크 인터페이스를 구성하고 표시합니다. 또한 IP 주소, 경로 및 인접 개체를 표시하고 수정하는 데 사용됩니다.
모든 네트워크 인터페이스에 대한 정보 표시:
[email protected]:~$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 00:0d:3a:9b:88:d6 brd ff:ff:ff:ff:ff:ff inet 10.0.0.4/24 brd 10.0.0.255 scope global eth0 valid_lft forever preferred_lft forever inet6 fe80::20d:3aff:fe9b:88d6/64 scope link valid_lft forever preferred_lft forever
인터페이스를 올리거나 내리려면 ip link set dev 다음에 장치 이름을 사용하십시오. 예를 들어, eth0 인터페이스를 온라인으로 가져오려면:
[email protected]:~$ ip link set eth0 up
그리고 그것을 낮추려면:
[email protected]:~$ ip link set eth0 down
데이트
매우 일반적으로 사용되는 명령입니다. 여기에서 이 명령을 사용하는 몇 가지 흥미로운 방법을 살펴보겠습니다.
[email protected]:~$ date Tue Aug 11 07:42:49 UTC 2020
다음 일요일 날짜를 보려면:
[email protected]:~$ date -d 'next sunday' Sun Aug 16 00:00:00 UTC 2020
지난 일요일 날짜를 보려면:
[email protected]:~$ date -d 'last sunday' Sun Aug 9 00:00:00 UTC 2020
-d 플래그 대신 –date를 사용할 수도 있습니다.
[email protected]:~$ date --date="last sunday" Sun Aug 9 00:00:00 UTC 2020
6일 전 날짜를 보려면:
[email protected]ntu18:~$ date --date="6 days ago" Wed Aug 5 08:06:37 UTC 2020
지금부터 6일 후 날짜:
[email protected]:~$ date --date="6 days" Mon Aug 17 08:08:37 UTC 2020
날짜 출력 형식을 쉽게 제어할 수 있습니다. 다음은 예입니다.
[email protected]:~$ date '+%d-%B-%Y' 11-August-2020
요약
시스템 관리자로서 전 세계의 컴퓨팅 인프라를 계속 실행하십시오. 보안을 유지하면서 문제를 해결하고 시스템을 최적의 상태로 유지 및 유지해야 합니다.
이 명령이 유용하고 작업을 더 잘 수행하는 데 도움이 되기를 바랍니다.
다음은 일부 FTP/SFTP 클라이언트와 개발자 및 시스템 관리자를 위한 최고의 Vim 치트 시트입니다.