Linux 154

rc.local - 부팅 시 실행 스크립트

rc.local 부팅 시 자동으로 명령어나 스크립트를 실행하는 방법 중 하나 rc는 Run Command의 약자이다. 시스템 부팅 시 가장 마지막에 실행된다. 루트 권한으로 실행되며, 정상적으로 실행되지 않는 경우에는 실행 권한이 있는지 확인해봐야 한다. PATH와 같은 환경 변수가 설정되지 않을 수 있기 때문에 환경 변수를 설정하거나, 절대 경로로 명령어를 지정하여 실행하는 것이 좋다. /etc/rc.d/rc.local 파일로 심볼릭 링크가 걸려있을 수 있다. /etc/init.d/rc.local /etc/rc.local이라는 파일이 존재하는 경우, 해당 파일을 실행시킨다. 아래는 /etc/init.d/rc.local의 정보이다. #! /bin/sh ### BEGIN INIT INFO # Provide..

Linux 2021.09.07

>/>> - 입출력 리다이렉션

표준 입력(Standard Input) 쉘에서 키보드로 명령을 입력받는 것 표준 출력(Standard Output) 키보드로 입력 받은 명령의 실행결과를 모니터로 출력하는 것 표준 에러(Standard Error) 키보드로 입력 받은 명령의 에러 메시지를 모니터로 출력하는 것 입출력 리다이렉션 표준 스트림의 흐름 변경 리다이렉션을 사용하여 출력과 입력의 방향을 지정할 수 있다. 기호 방향 의미 > 표준 출력 명령의 결과를 파일로 저장(write or overwrite) >> 표준 출력 명령의 결과를 파일에 덧붙여 저장(append) & 명령의 결과와 에러를 파일로 저장 &>> 2>&1 명령의 결과와 에러를 파일에 덧붙여 저장. &>>는 2>&1로 대체되었다. >! 파일을 생성하고 명령의 결과를 파일에 저..

Linux 2021.09.03

crontab 백업

crontab 실행 옵션 중 -r은 현재 설정된 크론탭을 삭제한다. 개발서버는 그래도 괜찮겠지만 운영서버에서 크론탭을 삭제해버리면 꽤 곤란하다. 실시간으로 계속 수행하는 작업이 있다면 장애로 이어질 수 있을 뿐만 아니라, 깐깐한 이는 책임소재를 묻기 위해 시스템 로그를 다 확인하는 지난한 작업도 개의치 않는다. 그리고 실수할 때의 손은 무조건 눈보다 빠르기 때문에 인지했을 때는 이미 늦어있을 것이다. 혹시 크론탭을 날려도 바로 복구할 수 있도록 백업을 해두는 것이 좋다. 백업 방법은 간단하다. 백업 스크립트를 생성해서 크론탭에 등록하면 된다. 방법 1. 백업 스크립트 작성 #!/bin/bash DATE=`date +%Y-%m-%d` USER="$(id -un)" crontab -l > $backup_cr..

Linux 2021.09.02

sed - 문자열 치환

개요 2021.07.26 - sed - 쉘에서 파일 내용 일부 삭제에 이어 이번 글은 명령어로 파일 내에 특정 문자열을 찾아 다른 문자열로 바꾸려고 한다. 엑셀이나 텍스트 편집기의 ctrl + f 후, 바꾸기 기능이라고 생각하면 된다. 명령어 sed -i 's///g' # -i : 편집 결과를 파일에 저장 # 예시 sed -i 's/#/=/g' text.txt s/// SERACH에 해당되는 문자열을 찾아서 REPLACE로 치환한다. 일반 텍스트 또는 정규표현식을 사용할 수 있다. g 한 행에 같은 내용이 여러 번 나타나도 모두 치환한다. 예시 결과 여러 파일 한 번에 변경 파일 지정 시 *을 사용하면 해당하는 파일을 한 번에 변경할 수 있다. 예시 sed -i 's/#/=/g' *.txt sed -i ..

Linux 2021.08.24

last reboot - 마지막 재부팅 시간 확인

last reboot 시스템 재부팅 로그 확인 사용자의 로그인 시간을 확인하는 last 명령 중 부팅 시간만을 표시하며, 시간을 기준으로 내림차순 정렬로 보여준다. 명령어 last reboot 실행 결과 재부팅 당시의 리눅스 커널 정보, 재부팅 시간, 재부팅 후 가동 시간을 표시한다. 리눅스 커널 정보 : 4.14.219-164.354 재부팅 시각 및 종료 시각 : Sun Aug 15 04:31 - 04:54 가동 시간 : (00:22) 즉, 가장 마지막으로 재부팅된 시각은 8월 15일 4시 31분으로, 13분 동안 동작하다 시스템 종료되었다. 제일 마지막으로 재부팅했을 때만 표시하고 싶다면 아래 명령어를 이용하면 된다. last reboot | head -n l

Linux 2021.08.21

uptime - 시스템 가동시간 확인

uptime 시스템이 실행되고 난 후부터 지금까지의 시간 및 로그인한 사용자 수, 시스템 부하율 등의 정보를 표시하는 명령어 명령어 uptime # -p : pretty. 활성화 후의 시간 출력 # -s : since. 활설화 시각을 yyyy-mm-dd HH:MM:SS 형식으로 출력 실행 결과 의미 12:15:03 : 현재 시각 0 min : 활성화된 시각으로부터 지난 시간 1 user : 로그인한 사용자 수 load average : 1분, 5분, 10분의 평균 부하율

Linux 2021.08.20

[Shell Script] 조건문

매번 구글링 해서 찾기 때문에 적어둔다. IF문 if [ 값1 조건식 값2 ] then 실행문 fi if [ 값1 조건식 값2 ] ; then 실행문 fi # 예시 if [ ${PATH} == "/" ] # == 은 문자열 비교 시 사용 then size=$(df -m | grep ${PATH} | awk '{ print $3 }') fi if [ ${PATH} == "/" ] ; then size=$(df -m | grep ${PATH} | awk '{ print $3 }') fi 대괄호와 값 사이에는 공백이 존재해야 한다. 변수를 참조할 때는 중괄호로 변수명을 감싸는 습관을 들이는 것이 좋다. if문은 fi로 끝낸다. IF-ELSE 문 if [ 값1 조건식 값2 ]; then 실행문 else 실행문 ..

Linux/Shell Script 2021.08.17

특정 파일들의 총 용량 구하기

특정 디렉터리 내에 특정 파일들이 차지하는 총 용량을 구하려고 한다. 방법 - du 명령 du -ch # -c : --total. 총합 계산 현재 디렉터리의 python 코드의 총 용량을 계산한다. - 특정 파일들을 찾은 후, 용량의 총합을 계산 find -type f | grep | xargs ls -l | awk '{ result += $5 } END { print result }' # 예시 find ./* -type f | grep py$ | xargs ls -l | awk '{ result += $5 } END { print result }' 계산 과정 특정 디렉터리에서 특정 파일 찾기 해당 파일의 상세 정보 확인 xargs 명령어는 파이프 이전의 명령어를 인자로 받아 지정된 명령어를 실행한다. ..

Linux 2021.08.13

일반 사용자에게 sudo 권한 부여

sudo 일반 사용자가 루트 권한을 임시로 획득하여 특정 명령을 가능하게 하는 명령어 sudo 명령은 /etc/sudoers라는 설정 파일에 사용자가 등록되어 있어야 사용할 수 있다. /etc/sudoers 파일은 보안 상 아주 아주 중요하기 때문에 root 계정에도 읽기 권한만이 주어져 있다. /etc/sudoers를 편집하는 방법은 2가지가 존재한다. visudo 명령 사용 visudo​ 명령어 사용에는 sudo 권한이 필요하며, 사용 시 /etc/sudoers 파일에 접근할 수 있게 된다. /etc/sudoers 파일에 편집 권한 부여 chmod 명령어를 이용하여 편집 권한을 부여한다. chmod u+w /etc/sudoers #또는 chomde 640 /etc/sudoers 편집을 완료했으면 부여..

Linux 2021.08.12

VIM - 여러 줄 주석 처리하기

vi Emacs와 함께 유닉스 환경에서 많이 쓰이는 문서 편집기 한 화면을 편집하는 비주얼 에디터(visual editor) VIM Vi IMproved(향상된 VI). 현재 대부분의 리눅스 시스템에 표준 모델로 들어감 보통 vi를 쳐도 vim을 사용하게끔 alias가 잡혀있을 것이다. vim으로 여러 줄을 한꺼번에 편집할 때는 다음과 같이 하면 된다. 1. VISUAL BLOCK 모드로 진입 CTRL + V를 누르면 된다. 2. 커서를 이동해 블록 지정 3. Shift + i를 누르고 내용 편집 4. ESC로 편집 모드 종료 잡았던 블록만큼 한꺼번에 주석처리 된 것을 확인할 수 있다.

Linux 2021.08.01