리눅스 서버의 시간을 동기화 할 때는 rdate 커맨드를 이용한다. * 영구한 시간 동기화는 ntp 를 이용한다. ** ntpd 를 이용하여 시간 동기화*** ntpq -p 명령을 이용하여 현재 서버의 동기화 상황을 확인 가능 rdate -p time.bora.net: 원격서버(ntp 서버)의 시간을 출력 rdate -s time.bora.net: 원격서버의 시간을 이용하여, 현재 서버의 시간을 설정 rdate 커맨드 설명 - http://www.tutorialspoint.com/unix_commands/rdate.htmntpq 출력내용의 의미 - http://krids.tistory.com/83
로컬PC와 서버의 파일전송을 위해서 ftp를 설치하여 이용하였는데, sz, rz 커맨드를 이용하면 ftp를 이용하지 않고 파일을 전송하는 것이 가능하다. sz, rz 커맨드를 이용하기 위해서는 lrzsz 커맨드를 설치해야 한다. yum이나 apt-get 을 이용하여 커맨드를 인스톨한다. yum -y install lrzsz rz sz [파일명] 이렇게 입력하면 파일을 업로드, 다운로드가 가능하다. * 주의할 점은 ZMODEM 프로토콜을 구현한 접속 프로그램에서만 사용가능하다. ex) XShell, SecureCRT, PuTTy
쉘 스크립트 수행시 로그 출력을 위해서 다음의 함수를 이용하면 좋다. 일자 시간을 출력하기 때문에 나중에 확인하기에도 좋다. # 로그 출력 함수 function fncPrintLog(){ vLogTime=`date '+%Y-%m-%d %H:%M:%S'`; vLogTime=${vLogTime:0:19} echo "[${vLogTime}] "${1}} fncPringLog "start."처럼 사용하면 되고 출력은 아래와 같다. [2016-11-08 05:07:01] start.
개행을 위한 제어 문자에는 몇가지 종류가 있는데 그중에서 가장 많이 사용하는 것이, LF, CR, CR+LF 이다. LF: Line Feed - \n (^M)CR: Carriage Return - \rCR+LF : \r\n 시스템에 따라 이중 하나만 사용해도 개행이 되는 시스템도 있고, 모두를 지원하는 시스템도 있다. 문제는 리눅스의 개행은 \n 이고, 자바는 \r, \n, \r\n을 모두 지원한다. 따라서 문자열 처리중 의도하지 않은 오류가 발생할 수 있다. 자바에서 문자열을 개항문자로 split 하여 처리하는 중 의도하지 않은 개행이 발생한다면 이로 인한 오류일 가능성이 높으므로 문자열 처리전 LF를 제거해주 면 된다. 제거 방법은 다음과 같다. :%s/^M$//g tr -d '\r' < inputf..
크론탭이나 다른 방법으로 정기적으로 프로그램을 실행하고 로그를 출력하고 나면 나중에는 로그파일이 많아지게 된다. 이럴때 로그파일을 한번 정리해야 할 필요가 있을때 다음과 같이 find 명령어를 이용하여 처리하면 된다. 어제자 이름으로 생성된 파일을 압축하고, 7일전 파일은 삭제한다. * find로 검색한 파일을 압축할 때도 사용가능 #!/bin/bash cd /mnt/crontab/hive_metadb_check/ vYesterDayYYYYMMDD="*`date -d "yesterday" -u +\%Y\%m\%d`*"v7DayPrevYYYYMMDD="*`date -d "-7 day" -u +\%Y\%m\%d`*" # 어제자 로그 파일 정리 find ./logs/ -name "*${vYesterDayYYY..
하둡을 이용하여 파이썬 프로그램을 실행하던중로컬에서는 실행이 되는데, MR을 이용하여 실행하면 다음과 같은 오류가 발생하는 경우가 있다. os.system("sudo apt-get -y install python-pip") sudo: no tty present and no askpass program specified 로컬에서 바로 실행을 하면 sudo 명령을 사용할 수 있는데,mr 을이용하면 사용이 불가능하다. 이는 mr을 이용하여 실행하면, 프로그램을 실행하는 노드로 ssh를 이용하여 접속을 하고해당 프로그램을 실행시키는데 이때 mr은 yarn 계정으로 접근을 하고 이 yarn 계정은 sudo 실행 권한이 없기 때문이다. 이 문제를 해결하기 위해서는 하둡시스템의 모든 노드의 yarn 계정의 권한에 s..
배쉬 스크립트의 종료코드란 프그그램 수행중exit 명령으로 프로그램을 종료시키면서 사용자에게 프로그램 종료의 이유를 알리기 위하여 반환하는 값이다. exit 함수는 정수형 값을 반환할 수 있다. 이를 $? 명령어를 이용하여 확인이 가능하다. 사용자가 임의의 정수(255 이하)를 반환하는 것도 가능하며, 예약되어 있는 반환 값은 다음과 같다 0 : 정상적인 종료1 : 일반적인 에러127 : command not found130 : Ctrl + C 에 의 한 종료 https://wiki.kldp.org/HOWTO//html/Adv-Bash-Scr-HOWTO/exitcodes.html#EXITCODESREFhttps://wiki.kldp.org/HOWTO//html/Adv-Bash-Scr-HOWTO/exit-..
리눅스를 사용하다 보면 아래의 메시지가 올 때가 있다. You have new mail in /var/spool/mail/ 이는 보통 크론탭으로 걸어놓은 프로그램에 문제가 있을때 발생한다. 처리 방법은 다음과 같다. 1. mail 이라고 치면 수신한 메일을 확인할 수 있다. 2. 메일 앞의 번호를 입력하면 해당 메일 확인이 가능하다. 3. 확인한 메일의 내용으로 오류를 처리한다. 4. 다 읽은 메일은 d [번호]-[번호] 명령으로 삭제하면 된다.
배쉬 스크립트를 사용할 때 set -e 옵션을 이용하여 스크립트 실행 중 오류가 발생하면 종료하게 설정이 가능하다. #!/bin/bash set -e 위와 같이 설정하여 사용한다. 에러가 나면 종료된다고 해서 잘쓰고 있었는데 사용에 주의해야 할 점이 하나있다. * 그리고 외국사이트를 검색해보니 사용을 추천하지 않더라. set -e의 경우 명령어를 실행한 리턴코드가 0이 아니면 프로그램을 종료하게 된다. 따라서 grep 같은 경우에 반환하는 값이 없으면 오류가 발생한 것이 되서 프로그램이 종료된다. 프로그램이 어떻게 실행되었는지 확인하기 위해서 grep 을 사용하여 단순 로그를 출력하는 프로그램을 작성했는데grep의 반환결과가 없어서 프로그램이 종료되어 버렸다. set -e 옵션을 이용하여 프로그램의 에러..
[date 함수 사용] Date 함수는 쉘에서 날짜를 입력하는데 유용하게 사용할 수 있다. -d 옵션을 이용하여 시간 지정도 가능하므로, 지정한 일자를 유용하게 사용할 수 있다. #!/bin/bash # UTC 시간 date -u # 시간 수정 date -d -1days # 1일전 date -d +1days # 1일후 # 시간 출력 포맷 date +\%Y-\%m-\%d # 포맷에 맞는 시간 출력 # 날짜 시간 지정 및 1 시간 전date "+%Y%m%d %H" -d "20161115 01:00:00 1 hour ago" # 날짜 시간 지정 및 1 시간 후date "+%Y%m%d %H" -d "20161115 01:00:00 1 hour"
gzip gzip 은 파일의 압축을 위한 명령이다. gzip 은 하나의 파일만 압축을 할 수 있다. 여러 개의 파일이나 디렉토리를 압축하기 위해서는 tar 로 먼저 묶어주어야 한다. tar –zcf test.tar.gz file1 file2 … 옵션 설명 v 압축 관련 정보를 출력 d 압축을 해제, gunzip 과 동일, decompress 명령어 # 파일 압축 gzip target gzip -v target # 압축 해제 gzip -d target.gz gzip -dv target.gz gunzip target.gz
tar tar 명령어는 여러 개의 파일을 하나의 파일로 묶기 위한 명령어 이다. 자주 사용하는 옵션은 다음과 같다. 옵션 설명 c tar 파일 압축 생성 x tar 파일 압축 해제 t tar 로 압축된 파일의 리스트 확인 v 처리과정을 출력(t 옵션과 사용하면 파일의 상세정보 확인) f 압축 파일명, 압축 해제 파일명을 지정 z gzip 압축을 tar 압축과 동시에 처리 명령어 # tar -cvf [생성할 tar 파일명] [압축대상 파일1] [압축대상 파일2] tar -cvf file.tar 1.txt 2.txt # tar -tvf [목록을 확인할 tar 파일명] tar -tvf file.tar # tar -xvf [해제할 tar 파일명] tar -xvf file.tar # tar 과 동시에 gzip 압..
crontab 크론탭은 리눅스에서 주기적으로 반복되는 작업 처리를 위해 제공하는 서비스이다. 크론탭으로 실행되는 프로그램은 환경변수(JAVA_HOME, PATH 등의 정보)를 설정해주어야 한다. 스케줄러 설정 # 크론탭에 걸려 있는 스케줄 정보 확인 crontab -l # 크론탭에 신규 스케줄 추가 # 스케줄 추가후 저장하고 종료하면(vi 편집기 종료) 자동으로 스케줄에 추가된다. crontab -e # 크론탭에 스케줄 걸기 예제 분 시 일 월 요일(0:일요일, 1: 월요일) 명령어 # 5분 마다 program.sh 실행 */5 * * * * /home/user/program.sh # 4-10 시 사이에 1시간마다 program.sh 실행 0 4-10/1 * * * /home/user/program.sh..
- Total
- Today
- Yesterday
- 오류
- bash
- Hadoop
- ubuntu
- 하이브
- build
- 정올
- airflow
- 백준
- Tez
- Linux
- nodejs
- yarn
- 파이썬
- error
- HIVE
- hbase
- 다이나믹
- SPARK
- emr
- java
- AWS
- HDFS
- mysql
- 하둡
- S3
- Python
- oozie
- 알고리즘
- SQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |