내일은 대한입니다.
sun's longitude:299 31 37.09 
· 자유게시판 · 묻고답하기 · 알파문서 · RPMS list
· 사용자문서 · 팁/FAQ모음 · 리눅스Links · 자료실
· 서버정보 · 운영자 · Books/FAQ · FreeBSD
/board/read.php:소스보기  

질문과 답변 게시판입니다.

현재 실시간으로 이곳 서버의 설정파일(몇개)를 보여주고 있습니다.
서버의 설정내용에 관한 질문은 먼저 이곳 서버의 설정내용을 참고하시길 바랍니다.

[*** 쓰기 금지단어 패턴 ***]
글 본문 중간에 업로드할 이미지를 추가하는 방법 : @@이미지이름@@
ex) @@foo.gif@@
2147 번 글의 답장글: Re: Re: Re: awk 에 대한 질문입니다만..
글쓴이: 산이 [홈페이지] 글쓴날: 2004년 08월 28일 02:01:06 토(새벽) 조회: 1314

[이현철]님이 남기신 글:

>오늘도 산이님께 한수 배웠습니다.
>님께서 가르쳐주신 방법으로 하니 제대로 되더군요..
>
>솔라리스에서 grep -E 옵션은 없었지만요..
>리눅스에는 제대로 적용되더군요..

>

혹시 스팍머신 사용하나요? 부럽군요....
제가 리눅스보다 먼저 다루었던 녀석인데... ㅋㅋ

>그런데 산이님께서 가르쳐주신
>>sed -e "s/[0-9]\{10\}/2004082701/" foobar.zone >
boobar.zone.new
>>mv -f boobar.zone.new boobar.zone
>
>방법으로는 하나씩 밖에 파일내용을 고칠수가
없는데요.
>파일수가 많을경우에는 좋은방법이 없을까요
>오늘도 여러가지 수를 생각해봤지만.결국

>수작업으로 일일이 작업해주는 무시한 방법으로해결했지만.

>앞으로 좀 심플하게 사용해보겠다고
 하루종일 생각해봤는데 
>좋은 조언 부탁드립니다.
>

헙...

모든 zone 파일이름의 패턴이 끝에 zone 이 들어갔다면(*.zone)


-------------------------------------------------
#!/bin/sh
#
serialchange()
{
  ZONEFILE=$1
  sed -e "s/[0-9]\{10\}/2004082701/" ${ZONEFILE} > ${ZONEFILE}.new
  mv -f ${ZONEFILE}.new ${ZONEFILE}
}

IFS='
'
WDIR='/var/named/'
LISTS=`find $WDIR -type f -name "*.zone" -print 2>/dev/null`

for f in $LISTS ; do
  echo "$f"
  serialchange "$f"
done

exit 0
--------------------------------------------------

이런식으로 해야겠쬬.

솔라리스 find 옵션이 다를 수 있으므로 확인해 보세요

>
>[산이]님이 남기신 글:
>
>>
>>[이현철]님이 남기신 글:
>>
>>>-----------------------------------------
>>>답변자가 기본적으로 참고할 내용입니다.
>>>- 배포판(옵션)    : 
>>>- 커널버전(옵션)
  : 
>>>- 데몬버전(예:apache
 1.3.27) : 
>>>- 데몬설치유형(RPM/컴파일/기타)
 : 
>>>-----------------------------------------
>>>오랜만에 방문합니다.
>>>어려울때만이지만....
 요즘은 여기들어와서
>>>질문이랑 답글볼시간도없네요..

>>>
>>>다름이아니라
 
>>>데이타센터를
 이사하게 생겼는데
>>>기존에 사용하던 dns서버를
>>>새로운 데이타센터에 이동할려고 합니다만.
>>>새로운 dns 서버를 만들어서 기존의 zone파일등을 
>>>복사해서 넣을려고 합니다
>>>
>>>그런데 zone파일이 몇백개가 되는 바람에
>>>zone파일의 Serial부분을 지금의 날짜로 20040826001 형태로 바꾸고
싶습니다만.
>>>
>>><예전내용>

>>>20020205001     ; Serial
>>>
>>>이것을 일일이 수정하기도 너무힘들고 awk 랑 grep 를 이용해서

>>>여러 방법을 해봤지만, 안되는데..요.. 어디 언어를 하나
배우든지해야지.

>>>어디 좋은 방법을 좀 가르쳐 주십시요..
>>>
>>>########################################
>>>
>>>                        20020205001     ; Serial
>>>                        10800           ; Refresh       3 hours
>>>                        1800            ; Retry         30 minutes
>>>                        1209600         ; Expire        2 weeks
>>>                        604800          ; Minimum       1 week
>>>                        )
>>>                        ;
>>>localhost               IN      A               127.0.0.1
>>>;
>>>######################################### 
>>
>>========================================
>>
>>serial 부분은 보통 10자리 숫자로 되어 있을 겁니다.
>>
>>따라서 먼저
>>
>>shell> grep -E "[0-9]{10}" *.zone
>>
>>이와 같이 serial 패턴을 반드시 확인해 보세요.
>>
>>그리고 awk 보다는 sed 로
>>
>>sed -e "s/[0-9]\{10\}/2004082701/" foobar.zone >
boobar.zone.new
>>mv -f boobar.zone.new boobar.zone
>>
>>이런식으로 하면 됩니다.
>>
>>반드시 백업해 놓고 하세요 
>
>======================================== 

========================================

 
이전글 : Re: Re: awk 에 대한 질문입니다만..
다음글 : 메일문의  
 from 61.254.75.29
JS(Redhands)Board 0.4 +@

Re: Re: awk 에 대한 질문입니다만.. 메일문의
인쇄용 


apache lighttpd linuxchannel.net 
Copyright 1997-2026. linuxchannel.net. All rights reserved.

Page loading: 0.01(server) + (network) + (browser) seconds