리눅스에서 일정 주기나 특정시간에 명령을 실행할 때 사용하는 것이 크론탭 이다. 간단히 말해서 스케쥴러 라고 생각을 하면 된다. 사용 하는 방법은 아래와 같다. 크론탭 명령어 $ crontab -e # crontab 작성 $ crontab -l # crontab 작업 리스트 보기 $ crontab -r # crontab 모든 작업 삭제크론탭 작성 # * * * * * command * * * * * /home/user/test.sh: 위와 같이 먼저, 5개의 실행 주기에 대한 정의를 해준다. 분 시 일 월 요일 의 순서이다. 사용 가능한 값은 아래와 같다. 분 : 0 - 59 시 : 0 - 23 일 : 1 - 31 월 : 1 - 12 요일 : 0 - 7 ( 0,7 : 일요일 / 1 : 월요일 / 2 : ..
데이터 작업을 하다 보면, csv 파일 용량이 너무 커서 엑셀에서 열수가 없는 경우가 있다. 그런데 데이터 검증을 위해서 각 컬럼의 합을 확인해야되는 경우가 있는데 이떄는 리눅스 커맨드 창에서, csv 파일의 column 값의 합계를 구할 수 있다. $ awk -F"," '{print;total+=$2}END{print "Total " total}' ./test.csv x,y,z 1,2,3 4,5,6 Total 7: print 로 모든 줄을 출력하며 계산을 해준다. 일반적으로 파일이 너무 크면 print를 하게 되면 너무 오래 걸리므로 print; 부분을 제외하고 계산하는 부분만 두면 된다. : 첫 줄이 header이건 아니건 알아서 계산은 잘 되니 신경을 쓰지 않아도 된다. awk -F"..
du - 사이즈 Usage: hdfs dfs -du [-s] [-h] URI [URI ...] $ hdfs dfs -du -h -s /path/to/dir 11.7 G 35.1 G /path/to/dir-s : 사이즈의 sum 을 보여줌 -h : 읽기 쉽게 단위와 함께 사이즈를 보여줌 Output : 파일/폴더의 실제 용량, hdfs에서 실제로 사용하고 있는 용량( replica ), 경로 --apparent-size?( du -h --apparent-size ) ls - 리스트 Usage: hadoop fs -ls [-C] [-d] [-h] [-q] [-R] [-t] [-S] [-r] [-u] $ hdfs dfs -ls -C -r /path/to/dir /user/devapp/d /user/devapp..
#!/usr/bin/env bash 스크립트 파일이 bash shell script 인지 알려주기 위해 선언하는 부분이다. 변수, 출력, 주석 #!/usr/bin/env bash echo "hello" # this is comment str="hello" echo ${str} echo 로 문자열 출력을 할 수 있다. 주석은 # 을 선언하면 주석이 된다. 변수는 공백 없이 = 연산자를 사용하면 된다. 기본적으로 전역 변수가 되나, 현재 실행된 스크립트에서만 유효하다.( 자식 스크립트에서는 사용 불가 ) 변수 앞에 export 를 선언하면, 환경 변수로 등록이 되어 자식 스크립트에서도 사용 가능하다. local 을 선언하면, 함수 안에서 지역 변수로 사용 가능하다. 위치 매개 변수( Positional Pa..
특정 filed의 key의 value에 있는 json 값을 파싱하여, 특정 위치에 위치시키는 역활을 한다. 어디에 위치 할지 정하지 않으면, 디폴트 값으로 root에 위치를 시킨다. input { stdin { } } filter { json { source => "message" } } output { stdout { codec => rubydebug } }위의 json filter는 message 라는 키에 있는 값을 json 파싱하여, root에 위치 시킨다. 1 [WARN ] 2020-03-19 20:28:28.002 [[main]>worker7] json - Parsed JSON object/hash requires a target configuration option {:source=>"mes..
아래와 같이 config.reload.automatic 옵션을 넣어 logstash 를 실행하면, conf 파일을 변경하여 logstash를 재시작 할 필요 없이 수정된 conf파일을 reload 하여 적용해주는 좋은 옵션이다. 하지만 conf 파일을 수정하고 난 뒤에 간간히 아래와 같은 메시지를 만나는 경우가 있다. [ERROR] 2020-03-19 20:20:25.482 [Converge PipelineAction::Reload] agent - Failed to execute action {:id=>:main, :action_type=>LogStash::ConvergeResult::FailedAction, :message=>"Cannot reload pipeline, because the existi..
random 로그 이벤트를 생성하기 위해 사용한다. 주로 plugin들의 성능테스트를 위해 사용한다. 하지만 나는 그냥 filter 테스트를 사용을 하고 있다. logstash 에 stdin 으로 입력을 받으면 line 별로 입력을 받고 있어, 가지고 있는 json 을 복붙 해서 사용하기가 불편해서 그냥 conf 파일에 한줄짜리 json 들을 넣어놓고 반복적으로 사용을 한다. generator 에는 아래 2가지 옵션이 있다. count 기본 값은 0이고, number 타입이다. 메세지를 몇 번 만들지 설정 할 수 있는 값이다. lines 기본 값은 없고, array 타입이다. input { generator { lines => [ '{"from_ip": "10.2.3.20", "app": "foo..
logstash 에 데이터가 들어오면, input 데이터 외에 기본 logstash 데이터가 추가 되게 된다. @version, message, @timestamp, host 네 가지다. 아래의 간단한 conf 파일을 정의하고, logstash 를 실행 해보자. input { stdin { } } filter { } output { stdout { codec => rubydebug } }logstash가 실행되면, 터미널에 더 이상 아무것도 찍히지 않고, stdin 으로 입력을 기다리게 된다. 터미널에 test 라고 키보드로 입력을 하고 엔터를 눌러보면 아래와 같이 출력이 된다. test { "@version" => "1", "message" => "test", "@timestamp" => 2020-03..
- Total
- Today
- Yesterday
- Postman
- Linux
- apm
- plugin
- error
- elasticsearch
- Kibana
- Java
- tomcat
- Spark
- Container
- Git
- JSON
- spring
- Size
- AWS
- mac
- logstash
- gradle
- JPA
- Filter
- intellij
- install
- SpringBoot
- scala
- spring boot
- Log
- docker
- Index
- maven
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |