Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 매일프로그래밍
- 분(minute)
- JavaScript
- 조인
- 시간더하기
- SpringBoot
- 알고리즘
- degien pattern
- 널체크
- json
- map
- 초(second)
- boot
- 시(hour)
- 자바스크립트
- 자바
- 파사드패턴
- 생년
- ThreeWayPartition
- SSL설정
- 병합정렬
- Flyweight Pattern
- oracle
- 디자인패턴
- list
- spring
- java
- 스트레티지패턴
- 곱 최대값
- jQuery
Archives
- Today
- Total
만들어가는 세상
[linux] How to use shell Script 본문
[linx]How to use shell Script
파일생성 및 권한 부여
$ touch shell_script_practice.sh // 파일 생성
$ chmod +x shell_script_practice.sh // 실행 권한 부여
$ vim shell_script_practice.sh // 쉘 스크립트 파일 편집기로 열기
스크립트 생성 시 기본 선언
#!/bin/bash
... 하단에 스크립트 작성 …
기본 비교 문법
[ -z ] : 문자열의 길이가 0이면 참
[ -n ] : 문자열의 길이가 0이 아니면 참
[ -eq ] : 값이 같으면 참
[ -ne ] : 값이 다르면 참
[ -gt ] : 값1 > 값2
[ -ge ] : 값1 >= 값2
[ -lt ] : 값1 < 값2
[ -le ] : 값1 <= 값2
[ -a ] : &&연산과 동일 and 연산
[ -o ] : ||연산과 동일 xor 연산
[ -d ] : 파일이 디렉토리면 참
[ -e ] : 파일이 있으면 참
[ -L ] : 파일이 심볼릭 링크면 참
[ -r ] : 파일이 읽기 가능하면 참
[ -s ] : 파일의 크기가 0 보다 크면 참
[ -w ] : 파일이 쓰기 가능하면 참
[ -x ] : 파일이 실행 가능하면 참
[ 파일1 -nt 파일2 ] : 파일1이 파일2보다 최신파일이면 참
[ 파일1 -ot 파일2 ] : 파일1이 파일2보다 이전파일이면 참
[ 파일1 -ef 파일2 ] : 파일1이 파일2랑 같은 파일이면 참
날짜
echo %date% 금 2007-11-16
명령어
가장 최근에 실행한 백그라운드 프로세스의 아이디는 $! 으로 알아낼 수 있다.
java -jar \$JAR_FILE_NAME.jar > /dev/null 2>&1 &
echo $! > \$PID_FILE
./bulk localhost:9200 입력 시 아래 sh call
#!/bin/sh
ES=$1
if [ -z $ES ]; then
echo "Usage : ./bulk localhost:9200"
else
while(true); do
curl -s -H 'Content-Type: application/x-ndjson' -XPOST "${ES}/bank/account/_bulk?pretty" --data-binary @accounts.json > /dev/null
python monworker.py
sleep 1
done
fi
#!/usr/bin/env python 작업 시
# -*- coding: utf-8 -*-
import urllib3
import json
from datetime import datetime
from influxdb import InfluxDBClient
influxUrl = "localhost"
esUrl = "localhost:9200"
def get_ifdb(db, host=influxUrl, port=8086, user='root', passwd='root'):
client = InfluxDBClient(host, port, user, passwd, db)
try:
client.create_database(db)
except:
pass
return client
def my_test(ifdb):
local_dt = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ')
statVal = es_mon()
point = [{
"measurement":
'docs',
"tags": {
"type": "ec2",
},
"time": local_dt,
"fields": {
"pri_doc": statVal[0],
"tot_doc": statVal[1],
"pri_idx_tot": statVal[2],
"pri_idx_mil": statVal[3],
"tot_idx_tot": statVal[4],
"tot_idx_mil": statVal[5],
"pri_squery_tot": statVal[6],
"pri_squery_mil": statVal[7],
"tot_squery_tot": statVal[8],
"tot_squery_mil": statVal[9],
"pri_sfetch_tot": statVal[10],
"pri_sfetch_mil": statVal[11],
"tot_sfetch_tot": statVal[12],
"tot_sfetch_mil": statVal[13],
"pri_sscroll_tot": statVal[14],
"pri_sscroll_mil": statVal[15],
"tot_sscroll_tot": statVal[16],
"tot_sscroll_mil": statVal[17],
"pri_ssuggest_tot": statVal[18],
"pri_ssuggest_mil": statVal[19],
"tot_ssuggest_tot": statVal[20],
"tot_ssuggest_mil": statVal[21]
}
}]
ifdb.write_points(point)
def es_mon():
http = urllib3.PoolManager()
header = { 'Content-Type': 'application/json' }
monCmd = esUrl + "/_stats"
try:
rtn = http.request("GET",monCmd,body=json.dumps(None),headers=header)
except urllib3.exceptions.HTTPError as errh:
print ("Http Error:",errh)
monData = json.loads(rtn.data)
rtnVal = []
rtnVal.append(monData['_all']['primaries']['docs']['count'])
rtnVal.append(monData['_all']['total']['docs']['count'])
rtnVal.append(monData['_all']['primaries']['indexing']['index_total'])
rtnVal.append(monData['_all']['primaries']['indexing']['index_time_in_millis'])
rtnVal.append(monData['_all']['total']['indexing']['index_total'])
rtnVal.append(monData['_all']['total']['indexing']['index_time_in_millis'])
rtnVal.append(monData['_all']['primaries']['search']['query_total'])
rtnVal.append(monData['_all']['primaries']['search']['query_time_in_millis'])
rtnVal.append(monData['_all']['total']['search']['query_total'])
rtnVal.append(monData['_all']['total']['search']['query_time_in_millis'])
rtnVal.append(monData['_all']['primaries']['search']['fetch_total'])
rtnVal.append(monData['_all']['primaries']['search']['fetch_time_in_millis'])
rtnVal.append(monData['_all']['total']['search']['fetch_total'])
rtnVal.append(monData['_all']['total']['search']['fetch_time_in_millis'])
rtnVal.append(monData['_all']['primaries']['search']['scroll_total'])
rtnVal.append(monData['_all']['primaries']['search']['scroll_time_in_millis'])
rtnVal.append(monData['_all']['total']['search']['scroll_total'])
rtnVal.append(monData['_all']['total']['search']['scroll_time_in_millis'])
rtnVal.append(monData['_all']['primaries']['search']['suggest_total'])
rtnVal.append(monData['_all']['primaries']['search']['suggest_time_in_millis'])
rtnVal.append(monData['_all']['total']['search']['suggest_total'])
rtnVal.append(monData['_all']['total']['search']['suggest_time_in_millis'])
return rtnVal
if __name__ == '__main__':
ifdb = get_ifdb(db='mdb')
my_test(ifdb)
# while(true); do ./monworker.py; done
'IT > ETC' 카테고리의 다른 글
[ORACLE] INSERT&SELECT, ROWNUM을 통한 INSERT, 정규식을 이용한 특정 태그 제거, varchar2 clob 타입변경시 등 처리 (0) | 2019.11.13 |
---|---|
[ORACLE] 유용한 쿼리들2 (0) | 2019.11.12 |
[ORACLE] 유용한 쿼리들1 (0) | 2019.11.12 |
[mybatis] thymeleaf, java,mybatis 부등호 검색조건 처리 방법 (0) | 2019.10.25 |
[ORACLE] 집합연산자, 문자함수, 숫자함수, 날짜함수, 형변환함수, 일반함수, 그룹함수, 조인등 정리 해보았습니다. (0) | 2019.10.25 |
Comments