tail 명령어는 파일의 마지막 행을 기준으로 지정한 행까지의 파일 내용 일부를 출력해주는 명령어입니다.

기본적으로 마지막 10줄을 출력하며, 주로 리눅스에서 파일 로그를 실시간으로 확인할 때 사용합니다.

 

1. tail 명령어 사용방법

tail [옵션] [파일명]

#tail -f test.txt

test.txt 파일을 종료하지않고 파일의 내용을 실시간으로 출력합니다.

 

#tail -n 2 test.txt

test.txt 파일의 마지막 행에서 2번째행까지 출력합니다.

 

tail [옵션] [파일명] | grep '검색문자열'

#tail -f test.txt | grep 'testlog'

test.txt 파일을 종료하지 않고 파일의 내용을 실시간으로 출력하되 'testlog' 가 들어간 로그만 출력합니다.

 

 

 

 

2. tail 명령어 옵션

옵션 설명
-f 파일을 종료하지 않고 파일의 업데이트 내용을 실시간으로 출력합니다.
-n [라인수] 파일의 마지막 줄부터 지정한 라인 수 까지 출력합니다.
-c [바이트 수] 파일의 마지막 줄부터 지정한 바이트 수까지 출력합니다.
-q 파일의 헤더와 상단 파일의 이름을 출력하지 않고 내용만 출력합니다.
-v 파일의 헤더와 상단 파일의 이름을 먼저 출력하고 내용을 출력합니다.

 

 

#출처

https://grandma-coding.tistory.com/entry/Linux-tail-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%82%AC%EC%9A%A9%EB%B2%95%EC%8B%A4%EC%8B%9C%EA%B0%84-%EB%A1%9C%EA%B7%B8-%EB%B3%B4%EA%B8%B0

 

[Linux] tail 명령어 사용법(실시간 로그 보기)

1. tail 명령어란? 리눅스 계열 유틸리티로, 파일의 마지막 부분을 출력하는 명령어입니다. tail 명령어는 시간에 따라 변화하는 파일을 grep과 같은 명령어와 조합시켜 실시간으로 업데이트 되는

grandma-coding.tistory.com

 

 

du 명령어는 Disk Usage의 약자로 파일, 디렉토리 용량을 확인할때 사용하는 명령어입니다.

디스크 사용량을 파악하기 위해 자주 사용되며 특정 파일이나 디렉토리 단위로 용량을 파악할수도 있습니다.

 

1. du 명령어 사용법

#du 

별다른 옵션 없이 사용가능하며 경로를 지정하지 않을 경우 현재경로의 하위 디렉토리의 용량, 전체용량을 표시하게 됩니다.

 

#du -sh [디렉토리 경로]

지정한 디렉토리 내에 존재하는 모든 파일 및 하위 디렉토리의 용량을 합친 총 디렉토리의 용량을 관리자가 보기 쉬운단위로 출력할때 사용하는 옵션입니다.

 

#du -sh * | sort -rh

현재 디렉토리내 디렉토리별 총 용량을 관리자가 보기 쉬운 단위로 출력하되 용량이 큰 순서대로 출력해서 확인할때 사용합니다.

 

2. du 명령어 옵션

옵션 설명
-a 모든 파일의 정보를 출력하는 옵션
-b 바이트 단위를 출력하는 옵션
-c 모든 파일의 디스크 사용 정보와 합계를 출력하는 옵션
-k 1KB 단위로 출력하는 옵션
-h 관리자가 보기 쉬운 단위(Byte, Kbyte, Mbyte, Gbyte)로 출력하는 옵션
-s 지정된 디렉토리 내에 존재하는 모든 파일과 하위 디렉토리의 용량을 합친 전체용량을 출력하는 옵션

 

 

 

 

#출처

https://server-talk.tistory.com/396

 

Linux 명령어 - du 명령어 사용법 알아보기(파일 및 디렉토리 용량 확인)

Linux 명령어 - du 명령어 사용법 알아보기(파일 및 디렉토리 용량 확인) 이번 포스팅에서는 du 명령어에 대해서 알아보도록 하겠습니다. Linux du 명령어란? du 명령어는 Disk Usage의 약자로 파일, 디렉

server-talk.tistory.com

 

1. 경고배너 설정하기

1) CentOS, Ubuntu..

- vi 편집기를 사용해서 설정파일을 열고 기존내용 제거 후 설정하려는 메시지 작성

- 세션을 다시 열어서 적용된 메시지 확인

$sudo vi /etc/issue.net

########################################
#                                                                            #
#                             Warnning!!                              #  
#                                                                            #
########################################

 

$sudo vi /etc/motd

########################################
#                                                                            #
#                             Warnning!!                              #  
#                                                                            #
########################################

 

2) Amazon linux

- vi 편집기를 사용해서 설정파일을 열고 기존내용 제거 후 설정하려는 메시지 작성

- 세션을 다시 열어서 적용된 메시지 확인

- Amazon linux의 경우 "systemctl restart update-motd.service" 명령어를 cron 으로 자동실행되어 배너 업데이트를 진행하고 있음

- /etc/update-motd.d 하위의 30-banner 파일도 수정해줘야 배너설정이 초기화되지 않음(Amazon linux 2023의 경우 /usr/lib/motd.d/ 경로에 있음)

$sudo vi /etc/issue.net

########################################
#                                                                            #
#                             Warnning!!                              #  
#                                                                            #
########################################

 

$sudo vi /etc/motd

########################################
#                                                                            #
#                             Warnning!!                              #  
#                                                                            #
########################################

 

$sudo vi /etc/update-motd.d/30-banner

#!/bin/sh
cat << EOF

########################################
#                                                                            #
#                             Warnning!!                              #  
#                                                                            #
########################################

EOF

RHEL7

root 계정 원격 접속 제한

1) ssh 설정값 변경

#sed -i 's/^#PermitRootLogin yes/PermitRootLogin no/g' /etc/ssh/sshd_config

 

2) ssh 재시작

#systemctl restart sshd

 

3) root 접속 확인

 

RHEL7

su - 권한 제한하기

1) su 파일 백업

#cp -avf /etc/pam.d/su /etc/pam.d/su_bak

 

2) su 파일에서 설정값 변경

#sed -i '/pam_wheel.so use_uid/ {s/^#auth/auth/;}' /etc/pam.d/su

 

3) 기존 su 파일과 비교하여 변경된 값 확인

 

4) 일반 사용자 su 권한 제한 확인

RHEL7

Session timeout 설정(5분)

#vi /etc/profile

하단에 아래 내용 추가 후 저장

###### TMOUT ######
TMOUT=300
export TMOUT

 새로운 터미널 세션 접속 후 적용된 값 확인

 

ssh-keygen 명령으로 공개키를 생성한 후 패스워드 없이 접속하려는 서버에 공개키를 복사한 후 파일이름을 authorized_keys 로 변경하고 ssh 접속을 시도했지만 여전히 패스워드를 물어보는 경우가 있음

 

공개키를 공유한 서버에서 다시한번 접속을 시도하려는 계정이랑 패스워드를 확인하고 공개키를 복사해놓은 경로(/home/사용자계정/.ssh/)와 sshd 서비스 상태, /etc/ssh/sshd_config 설정도 확인해봤지만 아무런 문제가 없다면 허공에 삽질만 계속하는 상황이 발생하게 될 수 있다. (분명히 이전에도 이렇게 해서 잘됐는데...)

 

이런 경우에는 공개키를 복사해둔 경로인 /home/사용자계정/.ssh의 권한을 확인해보고 .ssh 디렉토리의 권한이 700이 아닌 다른 권한(600, 777, 775...)으로 설정되어있다면 .ssh 디렉토리의 권한을 700으로 변경해주면 문제가 해결된다. 그리고 권한 변경 후 ssh 접속을 시도하면 패스워드 없이 ssh 접속에 성공한 것을 확인할 수 있다.

 

① 공개키를 복사해둔 경로인 /home/사용자계정/.ssh 디렉토리의 권한확인(700)

② ssh 접속 시도(패스워드 없이 접속 성공)

 

 

 

 

 

비교 연산자

 

정수 비교

연산자 의미 표현
-eq 같음 if [ $a -eq $b ]
-ne 같지 않음 if [ $a -ne $b ]
-gt 보다 큼 if [ $a -qt $b ]
-ge 크거나 같음 if [ $a -ge $b ]
-lt 보다 작음 if [ $a -lt $b ]
-le 작거나 같음 if [ $a -le $b ]
> 보다 큼 (($a > $b))
>= 크거나 같음 (($a >= $b))
< 보다 작음 (($a < $b))
<= 작거나 같음 (($a <= $b))

 

문자열 비교

연산자 의미 표현
= 같음 if [ "$a" = "$b" ]
== 같음 if [ "$a" == "$b" ]
!= 같지않음 if [ "$a" != "$b" ]
-z 문자열이 null, 길이가 0 if [ -z "$a" ]
! -z 문자열이 null이 아님 if [ ! -z "$a" ]
-n 문자열이 null이 아님 if [ -n "$a" ]
> ASCII 값이 보다 큼 if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
< ASCII 값이 보다 작음 if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]

참고

[[ "$a" == a* ]] -> $a가 "a"로 시작하면 참

[[ "$a" == "a*" ]] -> $a가 "a*" 와 같다면 참

[ "$a" == a* ] -> 잘못된 표현

[ "$a" == "a*" ] -> $a가 "a*"와 같다면 참

 

복합비교

연산자 의미 표현
-a 논리 and if [ $a -qa 0 -a $b -eq 1 ]
-o 논리 or if [ $a -qa 0 -o $b -eq 1 ]
&& 논리 and if [ $a -eq 0 ] && [ $b -eq 1 ]
if [[ $a -eq 0 && $b -eq 1]]
|| 논리 or if [ $a -eq 0 ] || [ $b -eq 1 ]
if [[ $a -eq 0 || $b -eq 1 ]]

 

파일 비교

연산자 의미 표현
-d Directory if [ -d FILE ]
-f File if [ -f FILE ]
-e Exist if [ -e FILE ]
-r Readable if [ -r FILE ]
-w Writable if [ -w FILE ]
-x Execuable if [ -x FILE ]
-s   if [ -s FILE ]
-O Same Owner if [ -O FILE ]
-G Same Group if [ -G FILE ]
-nt Newer Than if [ FILE1 -nt FILE2 ]
-ot Older Than if [ FILE1 -ot FILE2 ]

 

출처 : m.blog.naver.com/PostView.nhn?blogId=mmarine&logNo=70094622832&proxyReferer=https:%2F%2Fwww.google.com%2F

 

1. Tomcat 설치

설치순서

- java 설치 - tomcat 다운로드 - Linux 서버로 파일복사 - tar파일 압축풀기 -  tomcat 디렉토리로 이동해서 tomcat 서비스 실행

java 디렉토리 생성

#mkdir /usr/local/java

 

② java 다운로드 후 서버로 파일복사, 압축해제

- www.oracle.com/java/technologies/javase-downloads.html  사이트 접속 후 linux용 jdk 파일 다운

or wget https://download.oracle.com/java/19/latest/jdk-19_linux-x64_bin.tar.gz

- 다운받은 jdk 파일을 apachetomcat서버의 /usr/local/java 디렉토리로 이동

#tar -xvzf jdk-19_linux-x64_bin.tar.gz

 

③ java 환경변수 등록 

#vi /etc/profile

## java export ##
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

 

④ java를 기본 명령어로 등록, java 적용 및 버전확인

#update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk-19.0.1/bin/java" 1;
#update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk-19.0.1/bin/javac" 1;
#update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk-19.0.1/bin/javaws" 1;

#update-alternatives --set java /usr/local/java/jdk-19.0.1/bin/java;
#update-alternatives --set javac /usr/local/java/jdk-19.0.1/bin/javac;
#update-alternatives --set javaws /usr/local/java/jdk-19.0.1/bin/javaws;

 

#source /etc/profile

#java -version

tomcat 다운로드

- tomcat.apache.org/ 사이트 접속 후 linux용 tomcat 파일 다운

or wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.70/bin/apache-tomcat-9.0.70.tar.gz --no-check-certificate

 

 linux 서버로 파일 복사 후 압축해제

#tar -xvzf apache-tomcat-9.0.70.tar.gz

 

⑦ 압축해제한 디렉토리를 /usr/local로 이동

#mv apache-tomcat-9.0.70 /usr/local

 

⑧ tomcat 서비스 실행

#cd /usr/local/apache-tomcat-9.0.70/bin

#./startup.sh

⑨ tomcat 확인

- process 확인

#ps -ef | grep tomcat

- 웹브라우저를 통해 확인

 

 

1. USB storage 만 차단

① /lib/modules/3.10.0-327.el7.x86_64/kernel/drivers/usb/storage/ 경로에 있는 usb-storage.ko 파일을 /root 디렉토리로 이동

#mv -vf /lib/modules/3.10.0-327.el7.x86_64/kernel/drivers/usb/storage/usb-storage.ko /root/

② /root 디렉토리로 이동된 usb-storage.ko 파일 확인

#ls /root

③ 시스템 재부팅 후에 USB 장치를 연결해서 USB 차단이 제대로 되었는지 확인

'Linux' 카테고리의 다른 글

ssh공개키를 공유했는데 계속 패스워드를 물어보는 경우  (0) 2021.02.16
리눅스에서 Tomcat 설치 해보기  (0) 2020.11.29
리눅스에서 swap 사이즈 용량을 늘이는 방법  (0) 2019.12.10
FTP  (0) 2019.11.25
NFS  (0) 2019.11.22

to Top