Linux 130

[Linux] rsyslog을 이용한 history 내역 남기기

개요 bash shell은 명령어 히스토리 기능을 이용해 사용했던 명령어 이력을 보여준다. 이 기능은 사용자 홈 디렉터리의 .bash_history 파일에 기록되기 때문에, 여러 사람이 사용하는 서버인 경우에는 중앙에서 관리하기가 쉽지 않다. 따라서 syslog에 명령어를 남김으로써 명령어 이력을 중앙에 저장해두는 것이 서버를 관리하기에 좋을 수 있다. logger를 이용해 history를 syslog에 남겨보도록 하자. rsyslog IP 네트워크에서 로그 메시지를 전달하기 위해 UNIX 및 Unix 계열 컴퓨터에서 사용하는 오픈 소스 기본적인 syslog 프로토콜을 구현하고, 필터링 기능, 오프라인 출력 대기 작업, TCP를 사용한 전송 등의 기능이 추가되었다. rsyslog 관련 설정 파일은 다음과..

Linux 2022.12.01

[Linux] wait - 프로세스 종료 대기

wait 실행한 프로세스가 종료할 때까지 대기하는 명령어이다. 여러 작업을 동시에 실행할 때 모든 작업이 종료되기를 기다리거나, 특정 작업이 종료되는 것을 기다릴 때 사용한다. 백그라운드 작업 종료 대기 아래의 경우 command1, command2, command3이 모두 종료될 때까지 기다린 후, 모든 명령어가 실행이 종료되면 command4를 실행한다. command1 & command2 & command3 & wait command4 특정 프로세스 종료 대기 특정 프로세스가 종료되기를 기다리고 싶다면 프로세스 ID(pid)를 전달하면 된다. wait pid # 예시 wait 100 내 경우에는, 특정 스크립트를 크론탭으로 주기적으로 실행하되 스크립트가 실행 중임을 나타내는 doing 파일이 있으면..

Linux 2022.11.17

[awk] 사용 예시

개요 2022.09.10 - [awk] 개념에서 awk 명령어에 대한 내용을 정리했다. 이 글에서는 사용했던 예시를 정리한다. 연산 결과 출력 mpstat | tail -1 | awk '{print 100-$NF}' 참고 : 2021.05.17 - 리소스(CPU/MEM) 확인 필드 값과 문자열을 붙여 출력 free | grep ^Mem | awk '{printf "actual_usage=%s, total=%s, actual_usage_ratio=%.2f%% \n", $3, $2, $3*100/$2}' 참고 : 2021.06.12 - [CentOS 7] 메모리 사용률 계산 특정 필드의 합 연산 find ./* -type f | xargs ls -l | awk '{ result += $5 } END { pr..

Linux 2022.11.16

[Linux] dummyfile 생성

dummyfile 내용 없이 공간만 차지하는 파일. 프로그램이나 디스크의 성능 등을 테스트하기 위해 생성하는 경우가 많다. 이 글에서는 Linux에서 dd 명령으로 dummyfile을 생성해본다. dd 파일을 복사하고 변환하는 명령어 dd [OPERAND]... # if=FILE : 표준 입력 대신 읽을 FILE # of=FILE : 표준 출력 대신 쓸 FILE # bs=BYTES : 한 번에 읽고 쓰는 바이트 수 # count=N : 복사할 입력 블록 수 💡 BYTES 지정 시 다음과 같은 기호가 올 수 있다. c=1, w=2, b=512, kB=1000, K=1024, MB=1000*1000, M=1024*1024, xM=M, GB=1000*1000*1000, G=1024*1024*1024 등 dum..

Linux 2022.11.03

[Ubuntu] You () are not allowed to use this program (crontab) - 2

현상 Ubuntu에서 일반 사용자로 crontab 설정을 등록하려고 했더니 권한 문제로 설정이 되지 않았다. cron.allow 설정이 존재하는지, 내용은 어떤지 확인해보았더니 아래와 같이 이미 crontab을 설정할 사용자가 등록되어 있었다. 정확하게 아는 건 아니지만 파일의 읽기 권한이 충분하지 않아서 발생하는 현상인 것 같다. 아래의 두 가지 방법 중 원하는 방법으로 설정하면 될 것 같다. 해결 방법 1. 다른 계정이 /etc/cron.allow 파일을 읽을 수 있도록 설정한다. chmod 644 /etc/cron.allow # 또는 chmod o+r /etc/cron.allow 2. /etc/cron.allow 파일의 그룹 소유자를 crontab으로 설정한다. chown root:crontab /..

Linux 2022.10.29

[Vim] 붙여넣기 시 자동 들여쓰기(계단) 현상 방지

개요 Vim(vi) 편집기로 소스 코드 등을 복사하여 붙여 넣을 때 들여 쓰기로 인해 개행, code format이 엉망이 되는 경우가 존재한다. 예시 ) release repository Release Repository http://myhost/content/repositories/releases/ true 들여쓰기가 블록을 결정하는 언어인 경우에는 포맷을 맞추기 골치 아픈데, 간단하게 해결할 수 있는 방법을 적어둔다. 현재 모드 확인 :set 명령을 통해 현재 vim의 모드를 확인할 수 있다. :set 붙여넣기 모드 활성화 계단 현상이 발생할 때, set paste 명령으로 붙여 넣기 모드를 활성화한 후 코드를 붙여 넣으면 들여 쓰기 원본 형식을 유지하면서 소스를 붙여 넣을 수 있다. :set pa..

Linux 2022.10.18

[Vim] 변경 내역 확인

개요Vim 편집기에서 편집한 내용을 실행 취소(undo)할 때는 :u를 입력하면 된다.그리고 실행 취소한 내용을 다시 실행(redo)할 때는 CTRL + R을 입력하면 된다. 그렇다면 변경 내역 자체는 어떻게 확인할 수 있을까?   :changesVim은 변경 사항이 발생한 위치(열 번호, 줄 번호)를 변경 목록에 기록하고, 각 버퍼에는 실행 취소할 수 있는 최근 100개의 변경을 기억한다. 한 줄에 수정이 여러 번 이루어졌다면 나중에 변경된 위치만 기록된다. 변경 목록은 :changes를 입력하여 확인할 수 있다.  예시예로 들어 위의 내용을 가진 파일이 있다고 하자.# test fileimport osimport refrom flask import request@app.route('/method', ..

Linux 2022.10.02

[Linux] ~<username> - 사용자 홈 디렉터리

~ 쉘 스크립트를 보다 아래와 같은 구문을 보았다. BASE_DIR=~ # 예시 BASE_DIR=~ubuntu 특정 디렉터리 정보를 담은 변수를 선언한 것 같긴 한데, 정확히 어느 경로인지 확인해보려고 한다. 확인 쉘에서 변수를 직접 선언한 뒤, echo 명령으로 확인해봤다. BASE_DIR=~ubuntu echo $BASE_DIR ubuntu 계정의 홈 디렉터리였다. 사용자 이름 앞에 ~ 기호를 붙이면 해당 사용자의 홈 디렉터리를 의미한다. ~root인 경우 root 사용자의 홈 디렉터리를 의미한다.

Linux 2022.09.30

[HTTPie] http 요청 도구

HTTPie 명령줄 HTTP 클라이언트. '에이치티티파이'라고 읽는다고 소개한다. CLI와 웹 서비스 간의 인간친화적인 상호작용을 목표로 하는 프로젝트로, API와 HTTP 서버의 테스트, 디버깅, 전반적인 상호작용을 위해 설계되었다. https도 지원하는 것으로 보인다. 설치 apt install httpie 공식 문서에서 여러 환경에서의 설치 방법을 확인할 수 있다. 요청 http 메소드, URI을 지정하여 요청을 보낸다. 메소드는 생략 가능하다. http [flags] [METHOD] URL [ITEM [ITEM]] -v : 요청과 응답 둘 다 확인. # 예시 http -v GET http://localhost:5000 요청 URI에 매개변수 추가 ==를 사용하여 요청 URI에 매개변수를 추가할 수..

Linux 2022.09.21

[read] 사용자 입력 / 파일 입력

read 파일 디스크립터에서 값을 읽는 명령어다. 사용자로부터 값을 입력받아 변수에 저장하거나, 파일의 내용을 입력받을 때 사용한다. 사용자 입력 read 명령어로 사용자의 키보드 입력을 변수에 저장하여 사용한다. #! /bin/bash echo "name: " read NAME echo "Your name is" $NAME 파일 입력 파일 디스크립터를 이용하여 파일의 한 행을 변수에 저장한다. #! /bin/bash # 내용을 읽을 파일 FILE=user.sh # 파일 디스크립터로 입력 읽기 read line < $FILE echo $line 파일 내용 전체를 읽을 때는 while 문을 사용할 수 있다. #! /bin/bash FILE=user.sh while read line do echo $line..

Linux/Shell Script 2022.09.19
1 2 3 4 5 6 7 ··· 13