- 단일 문자열을 포함하는 프로세스 일괄 종료 명령어
sudo ps -ef | grep 검색할문자열1 | awk '{print $2}' | xargs kill -15
- 심볼릭 링크
https://qjadud22.tistory.com/22
- ip & domain 확인
# domain
hostname
# ip
hostname -i
- 열려있는 포트 확인
netstat -nap | grep LISTEN
- 백그라운드 실행시 nohup.out 이름 변경해서 실행
nohup python script.py > my_output.log 2>&1 &
- .txt와 .tar 확장자를 가진 파일 중에서 최종 수정일로부터 2일 이상 경과한 파일을 삭제
find . \( -name "*.txt" -o -name "*.tar" \) -mtime +2 -exec rm {} \;
- 리눅스 버전 확인
cat /etc/os-release
- xargs 사용
# xargs -i 를 붙이면 앞의 결과를 {} 안의 인자로 적용
# xargs만 붙이면 인자를 맨뒤에 붙이는것으로 판단 (xargs grep test == xargs -i grep {} )
# 디렉토리별 압축
ls | xargs -i tar -cvzf {}.tar.gz {}
# 현재 위치 포함 모든 하위 디렉토리에서 "test" 가들어간 모든 파일 찾기
find . -name "*" | xargs grep test
- 압축관련
# gz 풀기
gzip -d temp.tar.gz
# tar
# x : 압축해제
# c : 압축
# v : 명령어 실행과정 풀이 (파일 및 디렉토리 이름이 화면에 출력, 압축/압축 해제 과정 오류 표시 등)
# f : 파일 지정 (필수)
# z : tar.gz 관련
- 데몬 프로세스를 내리지 않고 수정된 config만 반영하기
ps -f -u $WORKUSER | grep test_process | awk '{print "kill -HUP " $2}' | sh
#ps -f -u $WORKUSER:
#-u $WORKUSER: 특정 사용자($WORKUSER)가 실행한 프로세스만 출력
#| sh:
파이프라인의 마지막 단계에서 이전 단계의 출력을 입력으로 받아 실행
#kill -HUP <pid> 명령어는 프로세스에 SIGHUP(Hangup) 신호를 보내는 것을 의미합니다. SIGHUP 신호는 프로세스에게 연결이 끊겼음을 알려주는 신호입니다.
#이 명령어를 사용하면 다음과 같은 효과를 볼 수 있습니다:
#셸 스크립트 재실행: 셸 스크립트가 실행 중일 때 kill -HUP <pid> 명령어를 실행하면 해당 스크립트가 다시 실행됩니다.
#데몬 프로세스 재로드: 데몬 프로세스(백그라운드에서 실행되는 프로세스)에 SIGHUP 신호를 보내면 설정 파일을 다시 읽어 들여 변경 사항을 적용할 수 있습니다.
#로그 파일 재오픈: 로그 파일을 사용하는 프로세스에 SIGHUP 신호를 보내면 로그 파일을 다시 열어 새 로그를 기록할 수 있습니다.
#따라서 kill -HUP <pid> 명령어는 실행 중인 프로세스에 대한 재시작, 재로드, 재오픈 등의 작업을 수행할 때 유용하게 사용됩니다.
- 사용중인 포트 확인
# netstat
netstat -napgu | grep udp
# list open files
lsof -i udp
# socket statitics
ss -unap
- txt 파일 200줄씩 저장하기
#!/bin/bash
read -p "INPUT : " input
input_file=$input".txt"
output_prefix="$input"_"
lines_per_file=200
# 파일의 총 줄 수 계산
total_lines=$(wc -l < "$input_file")
# 파일 분할 및 저장
i=1
while [ $((i*$lines_per_file)) -le $total_lines ]; do
start_line=$((($i-1)*$lines_per_file+1))
end_line=$((i*$lines_per_file))
output_file="${output_prefix}${i}.txt"
head -n $end_line "$input_file" | tail -n $lines_per_file > "$output_file"
i=$((i+1))
done
# 마지막 파일 생성 (나머지 줄 포함)
if [ $((i*$lines_per_file)) -gt $total_lines ]; then
start_line=$((($i-1)*$lines_per_file+1))
output_file="${output_prefix}${i}.txt"
tail -n +$start_line "$input_file" > "$output_file"
fi
- sar (모니터링)
sar 명령어
CPU 사용률을 보기 위해서는 -u 옵션을 사용할 수 있습니다. 예를 들어, 10초 간격으로 3번의 CPU 사용률을 확인하려면 다음과 같이 입력합니다.
뒤에 횟수를 지정하지 않으면 무한으로 출력
sar -u 10 3
10:20:01 AM CPU %user %nice %system %iowait %steal %idle
10:20:11 AM all 8.70 0.00 2.86 0.00 0.00 88.44
%user 8.70%: 사용자 애플리케이션(예: 웹 서버, 데이터베이스 등)이 CPU를 8.7% 사용하고 있습니다.
%nice 0.00%: nice 값이 설정된 우선순위 낮은 프로세스는 CPU를 사용하지 않고 있습니다.
%system 2.86%: 커널 모드에서 시스템 작업(예: 시스템 콜, 하드웨어 인터페이스 등)이 CPU를 2.86% 사용하고 있습니다.
%iowait 0.00%: 입출력 대기 시간은 없습니다. 즉, 시스템은 I/O 작업으로 대기하지 않고 있습니다.
%steal 0.00%: 가상화된 환경에서 CPU 자원을 도용한 시간이 없다는 의미입니다.
%idle 88.44%: CPU는 88.44%의 시간 동안 유휴 상태로, 사용되지 않은 시간입니다.
- 만약 과거에 sar데이터를 보고싶으면 아래와 같이 수행
sar -u -f /var/log/sa/sa[날짜(일)] [초단위]
ex)
sar -u -f /var/log/sa/sa19 1
위처럼 1초단위로 설정했는데 10분간격으로 나온다면
- /etc/cron.d/sysstat 아래 파일 확인
# /etc/cron.d/sysstat 예시
# 1분마다 sar 데이터를 수집
* * * * * root /usr/lib/sa/sa1 1 1
=>
여기서 sa1은 1분 간격으로 데이터를 수집하는 명령어입니다. 1 1은 sar가 1분 간격으로 한 번만 데이터를 기록하라는 의미입니다.
==========================================================================================
- linux 기본 환경 세팅 (python 가상환경 및 jupyter lab)
1. 터미널에서 필요한 패키지를 설치한다.
>> sudo apt-get update
>> sudo apt-get install python3-venv python3-pip
2. 파이썬 가상환경 디렉터리를 만든다.
>> mkdir /(가상환경 디렉토리명)
3. 파이썬 가상환경 세부 프로젝트를 만든다.
>> python3 -m venv (가상환경 디렉토리명)
4. 가상환경 세부 프로젝트를 시작한다.
>> source (가상환경 디렉토리명)/bin/activate
5. 가상 환경에서 사용되는 Python 버전을 확인한다.
>> python --version
6. 파이썬 가상 환경에 원하는 라이브러리를 설치한다.
>> pip3 install (라이브러리)
8. 파이썬 가상 환경을 중지한다.
>> deactivate
9. 주피터 설치
>> pip3 install jupyter
>> pip3 install jupyterlab
>> which jupyer-lab
10. 백그라운드 실행 및 url 확인
>> nohup jupyter lab --ip=0.0.0.0 --allow-root > jupyter.log 2>&1 &
>> jupyter lab list
'Linux' 카테고리의 다른 글
Linux shell 조작법 (0) | 2024.07.03 |
---|---|
CentOS7에 yarn 설치하기 (0) | 2023.03.27 |