쉘에서 date 명령어를 많이 사용하는데 여러가지 사용방법입니다. (yyyyMMdd 포맷)

 

1. 현재일자 표현 (당일)

`date +%Y%m%d`

2. 이전 날짜, 이후 날짜 표현 (과거,미래 등)

   - 아래 표현식에서 선호하는 방식 사용하면 됩니다. 

## 현재 일자에서 하루 전
`date -d '1 day ago' '+%Y%m%d'`
`date +%Y%m%d -d -1day`

## 현재 일자에서 하루 후
`date -d '1 day' '+%Y%m%d'`
`date +%Y%m%d -d +1day`

## 현재 일시에서 한시간 전
`date +%Y%m%d%H -d -1hour`

## 현재 일시에서 한시간 후
`date +%Y%m%d%H -d +1hour`

3. 입력받은 변수 날짜의 이전,이후 표현 

## 입력 받은 날짜 변수에 일 더하기
`date "--date=$dt -d +${i}day" +%Y%m%d`

## 입력 받은 날짜,시간 변수에 시간 빼기
`date -d "$dt $hh -2hour" +%Y%m%d%H`

 

 

댓글을 달아 주세요

 

파일 인코딩 변환할 때 일일이 파일 이름 변경하지 않고 아래 명령어로 쉽게 일괄 변경 가능하네요.

find . -type f -execdir iconv -f euckr -t utf-8 {} -o {}.tmp \; -execdir mv -f {}.tmp {} \;

출처: https://wookmania.tistory.com/22 [코드의추억]

 

 

*파일 하나만 인코딩 변환할 때는 아래 방법 이용하시면 됩니다.

 

-리눅스에서 파일 인코딩 확인
file -bi 파일명
ex) file -bi tmp.txt
결과 : text/x-c++; charset=utf-8

-인코딩 변환
EUC-KR -> UTF-8 파일 인코딩 변경
iconv -c -f euc-kr -t utf-8 mergefile > mergefile

 

댓글을 달아 주세요

 

shell 스크립트에서 제일 많이 사용되는 for문의 3가지 사용법입니다.

상황에 맞게 사용하시면 됩니다.

 

1. 배열로 저장한 값 읽어오는 방식

HH_ARR=("00" "01" "02" "03" "04" "05" "06" "07" "08" "09" "10" "11" "12" "13" "14" "15" "16" "17" "18" "19" "20" "21" "22" "23")
for hh in "${HH_ARR[@]}"; do
	echo $hh
done

 

2. 파일을 읽어서 처리하는 방식 (text 파일을 cat명령어로 실행하여 1줄씩 읽어옴)

for list in `cat text`
do
	echo "$list"
done

 

3. index 값 증가시키며 처리하는 방식

for (( i=0; i<10; i++ )) do
       echo "$i"
done

 

 

댓글을 달아 주세요

 

리눅스에서 vi 또는 데몬 등 실행 스크립트를 수행해서 한글을 다뤄야 하는 경우가 있는데 별도로 설정을 해주지 않으면 한글깨짐 문제로 파일을 제대로 사용할 수가 없습니다.

그럴 경우 간단하게 아래 설정 추가하면 됩니다.

 

/etc/profile에 아래 export 추가하거나

실행하고자 하는 데몬, 스크립트에 추가해도 됩니다.

 

export LANG="ko_KR.UTF-8"

 

 

 

댓글을 달아 주세요

 

CREATE DATABASE IF NOT EXISTS db_nm;

DROP TABLE IF EXISTS db_nm.table_nm;

CREATE EXTERNAL TABLE IF NOT EXISTS db_nm.table_nm ( 
a string comment 'a',
b string comment 'b',
c string comment 'c'
) 
comment 'table comment'
PARTITIONED BY (DT STRING) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
NULL DEFINED AS '' 
STORED AS TEXTFILE 
LOCATION 'hdfs://' 
;

 

'Programming > Hive' 카테고리의 다른 글

[Hive] 쿼리로 파일 추출  (0) 2019.05.29
[Hive] udf 함수 등록 및 사용 방법  (0) 2019.05.23
[Hive] 스키마 샘플  (0) 2019.05.16
[Hive] header 제거 옵션  (0) 2019.05.16
[Hive] Delimiter 변경하는 방법  (0) 2017.04.11
[Hive] 테이블 이름 변경하는 방법  (0) 2017.02.15

댓글을 달아 주세요

 

리눅스 서버 운영중 서비스 작동에 문제가 생기거나 에러가 발생하여 찾아보면 잦은 경우로

disk I/O Error 발생한다. 해당 디스크 접속해서 ls 명령어로 일일이 조회 해보지 않고 아래 dmesg 명령어로

한번에 disk i/o error 확인 할 수 있다.

 

dmesg | grep 'I/O error'

 

댓글을 달아 주세요

hive에서 데이터 조회 시 파일에 헤더가 있는경우 파일에서 직접 헤더를 제거하지 않고

아래 옵션으로 대체 가능합니다.

 

스키마 마지막 줄에 아래 옵션 추가 합니다.

 

tblproperties("skip.header.line.count"="1");

1번째 라인 제거하고 데이터 조회 됩니다.

댓글을 달아 주세요

리눅스 서버 관리할 때 해당 경로에 데이터를 주기적으로 삭제하고 싶을때

아래 명령어 crontab에 등록하여 사용하시면 좋습니다.

 

find /data1/data/log/* -type f -mtime +7 -exec rm -rf {} \; (7일 전 파일 삭제)
find /data1/data/log/* -type d -mtime +7 -exec rm -rf {} \; (7일 전 디렉토리 삭제)

 

댓글을 달아 주세요

 

sh test.sh &>/dev/null &

 

실행 명령어에 &>/dev/null 붙여 주시면 로그 출력 없이 스크립트 실행됩니다.

 

댓글을 달아 주세요

Mysql Workbench 작업 시 탭을 닫고 재시작 했을 때 계속해서 이전에 작업한 탭이 열리는 경우가 있는데요 아래 설정 적용하시면 됩니다.


Edit -> Preferences -> SQL Editor -> Save snapshot of open editors on close (체크 해제)



댓글을 달아 주세요