달력

122024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

source tree에 이미 생성한 ssh key를 등록하는 방법에 대해 알아본다.

 

  1. source tree 실행
  2. 메뉴바의 '도구' -> '옵션' 실행
  3. '옵션' 창에서 '일반' 탭 선택, SSH 클라이언트는 'OpenSSH'를 선택, 파일찾기 버튼('...')을 클릭하여 ssh key를 선택 '확인' 버튼 클릭

'karma( 업 )' 카테고리의 다른 글

HMI & SCADA란 무엇인가?  (0) 2023.07.07
git command 정리  (0) 2020.09.01
제대로, 꾸준히  (0) 2019.12.01
훌륭한 개발자란?  (0) 2019.11.27
GIT 특정 Branch Clone  (0) 2019.11.13
Posted by 생짜
|

특정 프로세스의 메모리 사용량과 CPU 사용량을 체크할 경우가 있다. 스크립트로 며칠 테스트 한 결과를 파일로 저장해서 엑셀파일로 그래프를 그리면 편하다.

 

아래는 메모리와 CPU 사용량을 체크하여 파일로 저장하는 스크립트이다.

 

 

#!/bin/bash
#memTest.txt파일을 만들어 출력한다.
echo "Process Name Memory Test Start!!!" | tee memTest.txt 
#memTest.txt 파일에 Append한다.
date | tee -a memTest.txt 

#-e 옵션은 특수 키 출력을 위해서 해준다.
echo -e "\n"
# Tap을 주고 echo에서 줄바꿈을 공백으로 치환한다. 
#echo -e "\t" | tr '\n' ' ' 

#ps에서 [processor name]를 찾아서 pid, mem, cpu 사용량을 표시한다.
ps -C [processor name] -o pid,pmem,pcpu | tee -a memTest.txt

#while loop
while :
do
    #날짜를 출력하고 줄바꿈을 공백으로 변경한다.
    date | tr '\n' ' '
    #헤더없이 ps 정보를 출력한다.
    ps -C [processor name] --no-headers -o pid,pmem,pcpu 
    sleep 60 #초단위, 1분동안 슬립
done

 

 

스크립트를 실행 시키며 아래와 같은 결과를 얻을 수 있다.

 

Posted by 생짜
|

Linux의 Bash Shell 스크립트에서 파일 생성 및 생성된 파일에 스크립트 내용 추가 대해 기술합니다.

 

  • 파일생성 및 생성된 파일에 내용 추가
    • touch( 파일 생성 )
      • 파일의 날짜와 시간을 수정하는 명령어, 0 바이트 파일을 생성하기 위해 사용되기도 한다.
        아무런 옵션없이 사용하면 서버의 현재 시간으로 새로운 파일을 생성한다. 
        $touch [파일명]
      • 옵션
        • -a : 현 시간으로 파일의 접근 시간, 변경 시간을 수정한다.
          $touch -a [파일명]
        • -c : 기존 파일이 없으면 파일이 생성되지 않는다.
          $touch -c [파일명]
          [파일명] 파일이 없으면 생성되지 않으며 'ls : cannot access [파일명]: no such file or directory' 메시지가 출력
        • -d : 지정한 시간으로 접근 시간, 수정 시간이 수정되고, 변경시간은 현재 시간으로 수정된다.
          $touch -d date [파일명]
          $touch -d '년-월-일 시간' [파일명]
        • -m : 현 시간으로 파일의 수정, 변경 시간을 수정한다.
          $touch -m [파일명]
        • -r : 지정한 파일의 지정, 수정 시간을 선택한 파일의 지정, 수정 시간으로 변경하고 변경 시간은 현재 시간으로 수정된다.
          $touch -r [선택파일명] [지정파일명]
        • -t : 지정한 시간으로 접근 시간, 수정 시간을 수정하고 변경 시간은 현재 시간으로 수정된다.
          $touch -t 202202281036.30 [파일명]
          지정 시간은 YYYYMMDDhhmm.ss(년월일시간분.초) 형태로 입력한다.
      • Tip
        • 리눅스에는 세 종류의 타입스탬프가 있다.
          atime : 최종 접근 시간( access time )
          ctime : 최종 상태 변경 시간(change time)
          mtime : 최종 수정 시간(modify time)
          별다른 옵션이 없다면 atime, ctime, mtime 모두 변경된다.
        • stat [파일명] : 해당 파일의 타임 스탬프를 확인할 수 있다.
          $stat [파일명]
        • 여려파일 만들기
          $touch [파일명] [파일명] [파일명] ...
    • tee( 파일 생성과 내용추가)
      • 표준 입력(standard input)에서 읽어서 표준 출력(standard output)과 파일에 동시에 쓰는 명령어입니다.
        출력할 파일이 없을 경우 파일을 새로 만듭니다. ( 기존에 파일이 있다고 해도 옵션이 apped가 아니라면 새로 파일을 생성합니다.)
        $echo "hello wold" | tee [파일명] #echo로 출려과 tee로 파일 입력을 동시에 함
        $date | tee -a [파일명] #tee를 사용해서 명령어 내용을 표준 출력으로 파일로 동시에 함
        표준 출력에는 쓰지 않으려면 마지막에 '/dev/null' 디바이를 연결해 주면 표준 출력장치인 터미널에는 출력하지 않습니다.
        $echo "hello world" | tee -a [파일명] > /dev/null
        $date | tee -a [파일명] > /dev/null
      • 옵션
        • -a : 파일을 덮어쓰지 않고 파일 끝에 추가합니다.
          $[command] | tee -a [파일명]
        • -l : 인터럽트 신호를 무시합니다.
          $[command] | tee -l [파일명]
        • 여러파일 쓰기
          $[command] | tee [파일명] [파일명] [파일명] ...
      • tee 사용 이유
        shell에서 출력을 redirection할 경우 sudo를 사용해도 사용자로 전환 되므로 root권한으로 파일에 쓰거나 내용 추가가 필요한 경우 제대로 동작하지 않습니다. 
        tee는 shell script에서 root권한으로 특정 파일을 쓰거나 append 할때 주로 활용합니다. 다시 말해 다른 사용자가 소유한 파일에 쓸 수 있다.
        $echo "test' | sudo tee -a /etc/***/***.cnf
    • redirection('>' , '>>')(파일 생성과 내용추가)
      • >, >>은 데이타의 흐름방향을 나타냅니다. command 실행 후 출력 결과를 계속해서 파일에 로그 처럼 남기고 싶을 경우 사용합니다. 표준 출력에는 출력되지 않습니다. 표준 출력에 함께 출력하고 싶을 때는 'tee' 명령어를 사용합니다.
        redirection 명령어를 기준으로 왼편에는 실행하고 싶은 command를 오른편에는 다른 스트림, 파일 등 출력될 장치를 선택합니다. 출력할 형태가 파일이고 출력할 파일이 존재하지 않을 경우 새로 만듭니다.(기존에 파일이 있다고 해도 '>(overwrite)' 명령일 경우 파일을 새로 생성합니다.)
      • 사용예
        • '>(overwrite)'
          [command] > [파일명 or 스트림]
          $echo "hello wold" > [파일명]
          $date > [파일명]
          $list * > [파일명] 
        • '>>(append)'
          $echo "hello wold" >> [파일명]
      • 특정 스크립트 실행 결과 에러를 파일에 남기기
        $test.sh > [파일명] 2 > &1
      • 특정 스크립의 실행 결과와 에러를 분리해서 저장하기
        $test.sh > [실행결과 저장 파일명] 2 >> [에러 저장 파일명] 
      • 파일 디스크립터
        0 : 표준 입력( standard input )
        1 : 표준 출력( standard outpu )
        2 : 표준 에러( standard error )
        $test.sh 1 > [파일명] or test.sh > [파일명} #표준 출력을 파일로 저장
        $test.sh 2 > [파일명] #표준에러를 파일로 저장
        $test.sh 1 > [파일명] 2 > [파일명] #표준 출력과 표준 에러를 각자 다른 파일에 출력
        $test.sh 2 > &1 #표준 에러를 표준 출력으로 출력, redirction의 오른쪽을 표준 파일로 쓰고 싶을 때는 '&' 기호를 붙여 줘야 한다.

 

 

 

 

 

 

 

 

Posted by 생짜
|