hdfs 로그 업로드 스 크 립 트 (2)
서버 에서 로 그 를 끌 어 당 기 는 스 크 립 트 를 썼 습 니 다.
여러 서버 에서 로 그 를 끌 어 올 리 면 로그 이름 이 같 고 매일 두 개의 로그 파일 이 생 성 됩 니 다. 예 를 들 어 서버 마다 다음 과 같은 두 개의 파일 이 있 습 니 다: ok2011-04-24_24H.rar,ok_2011-04-24_12H.rar.분명히 모든 로 그 를 같은 디 렉 터 리 에 넣 어 처리 할 수 없 을 뿐만 아니 라, 두 파일 의 압축 을 동시에 풀 어야 다음 처리 가 가능 하 다. 나 는 awk 를 사용 하여 해당 명령 을 인쇄 한 다음 에 실행 할 생각 을 했다.
- #!/bin/bash
- #2011-04-25 by qinshan.li
- #download the track log
- #
- DIR="22 33 45 46 47 135 136 137"
- DAY=$(/bin/date +%F)
- #DAY=$(echo $1)
-
- for P in $DIR; do
- [[ -d "/lzo/jiaxing/track/$P" ]] || /bin/mkdir -p /lzo/jiaxing/track/$P
- MULU=/lzo/jiaxing/track/$P
-
- #Download the rar files.
- /usr/bin/wget -nc -r --exclude-directories=tmplog -nd -np -A "ok_${DAY}_*.rar" -P $MULU http://10.10.17.66:8003/"$P"/track/
-
- #Create directory to save the decompressed rar files.
- n=$(/bin/ls $MULU/*.rar 2>/dev/null |/usr/bin/wc -l)
- if [[ "$n" != "0" ]]
- then
- [[ -d $MULU/$DAY ]] || /bin/mkdir -p $MULU/$DAY
-
- /usr/bin/find $MULU -name "*${DAY}*.rar" |/bin/awk '{printf "/usr/local/bin/rar e %s %s/%s
",$1,"'$MULU'","'$DAY'"}' |/bin/sh >/dev/null
- if [[ "$?" = "0" ]]
- then
- if /bin/cat $MULU/$DAY/*.* >>$MULU/66_icast_"$P"_"$DAY".txt
- then
- if /usr/local/bin/lzop -U -9 $MULU/66_icast_"$P"_"$DAY".txt
- then
- if /usr/local/bin/lzop -t $MULU/66_icast_"$P"_"$DAY".txt.lzo
- then
- ~/hadoop-0.20.2-CDH3B4/bin/hadoop fs -moveFromLocal $MULU/66_icast_"$P"_"$DAY".txt.lzo /log/source/iCast_iFocus_track
- if [[ "$?" = "0" ]]
- then
- rm -rf $MULU/* >/dev/null 2>&1
- fi
- fi
- fi
- fi
- fi
- fi
- done
이 스 크 립 트 는 wget 의 - N 인 자 를 더 이상 사용 하지 않 았 습 니 다. 동료 가 알려 주 었 기 때문에 이 로 그 는 HTTP 방식 으로 제공 되 지만 타임 스탬프 표 시 는 닫 혀 있 기 때문에 - N 인 자 는 쓸모 가 없습니다.
- nc 인 자 를 추가 하면 wget 은 다운로드 한 파일 을 무시 합 니 다. 물론 이 파일 은 지난번 다운로드 후 업데이트 되 었 지만 wget 은 무시 할 수 있 습 니 다. 그러나 이러한 경 우 는 매우 드 물 습 니 다.
이번에 도 awk 의 substr 함 수 를 사용 하여 필드 를 추출 하지 않 았 습 니 다. 이번 R 디 렉 터 리 길이 가 다 르 기 때문에 $MULU 와 $DAY 를 직접 사용 하 는 것 이 편리 합 니 다.설명 하고 자 하 는 것 은 $MULU 라 는 변수 입 니 다. 원래 $PATH 라 고 썼 는데 나중에 hadop 의 fs 명령 을 실행 하여 업로드 작업 을 할 때 오류 가 발생 했 습 니 다. $PATH 변 수 를 환경 변수의 $PATH 로 해 석 했 습 니 다!사용자 정의 변 수 를 설정 할 때 는 신중 해 야 할 것 같 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
ZSH에서 물고기까지ZSH는 수년 동안 내 기본 셸이었습니다. 이제 몇 달 동안 사용하면서 ZSH 구성에 대해 몇 가지 사항을 발견했습니다. 우리는 을 제공하는 시스템과 더 빨리 상호 작용하는 경향이 있습니다. 내.zshrc 구성에는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.