시스템관리자의 쉼터 커피닉스 커피향이 나는 *NIX
커피닉스
시스템/네트웍/보안을 다루는 곳
 FAQFAQ   검색검색   멤버리스트멤버리스트   사용자 그룹사용자 그룹   사용자 등록하기사용자 등록하기 
 개인 정보개인 정보   비공개 메시지를 확인하려면 로그인하십시오비공개 메시지를 확인하려면 로그인하십시오   로그인로그인 

가입없이 누구나 글을 쓸 수 있습니다. 공지사항에 대한 댓글까지도..




BBS >> 설치, 운영 Q&A | 네트웍, 보안 Q&A | 일반 Q&A || 정보마당 | AWS || 자유게시판 | 구인구직 || 공지사항 | 의견제시
쉘 스크립트 프로그래밍 부탁합니다.

 
글 쓰기   답변 달기    커피닉스, 시스템 엔지니어의 쉼터 게시판 인덱스 -> *NIX 일반
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
이종협
손님





올리기올려짐: 2007.5.24 목, 12:26 pm    주제: 쉘 스크립트 프로그래밍 부탁합니다. 인용과 함께 답변

리눅스에 대해 초보입니다. 쉘 스크립트 공부하려 하니 너무 어렵습니다. 그러나 꼭 공부하렵니다.

문제는 너무 급한 일이라 이렇게 고수분들께 도움 청합니다. 연습 문제 삼아 풀어주세요.

쉘 스크립트 프로그래밍 부탁합니다.

http://www.abc.com/200705091300.png 형태로 00분, 10분, 20분 식으로 매 10분 간격으로 웹 페이지에 새로운 파일이 올라오는 사이트가 있습니다. 자세히 설명하면 13시 30분에 작성된 파일이 20분 후인 13시 50분에 서버에 올라옵니다.

이미지 파일 이름은 200705091300.png, 200705091310.png, 200705091320.png, 200705091330.png, 200705091340.png 형태로 10분마다 파일 이름이 바뀌며 이미지 파일의 해상도는 646 X 576 픽셀입니다.

이 파일을 상대방 서버에서 업데이트가 이루어진 후 2분 후 즉 매 02분, 12분, 22분 32분, 42분, 52분에 cron 과 wget 을 이용 다운로드 받고 싶은데 계속 파일 이름이 바뀌어 할 수 없습니다.

즉 현재 시간 2007년 5월 9일 13시 32분이면 해당 서버에 wget 을 이용 22분전인 2007년 5월 9일 13시 10분에 만들어진 파일이 13시 30분에 서버에 업데이트된 파일을 받아 오는 스크립트입니다.

그 다음 이름이 계속 바뀌는 다운로드 받은 이미지 파일을 한가지 이름의 파일로 이름을 변경해야 합니다. 즉 aaa.png 식으로...

그리고 해상도가 646 X 576 인 aaa.png 파일의 해상도를 254 X 226 로 줄인 bbb.png 파일을 하나 더 만듭니다.

이 파일을 다운로드 받고 이미지 크기를 줄이는 쉘 스크립트를 짜서 올려 주시면 정말 감사하겠습니다.

조건은 다음과 같습니다.

1) 다운로드 받기 전, 기존의 aaa.png 파일과 bbb.png 파일을 먼저 지운다.
2) 이름이 계속 바뀌는 파일을 리눅스 서버에 다운로드 받는다. (즉 다운로드 받을 때 받는 서버의 시각을 기준으로 22분 전에 업데이트된 파일을 다시 말해 현재 시간이 13시 32분이면 200705091310.png 파일을 상대방 서버에서 다운로드 받는다)
3) 다운로드 받은 후 받은 파일의 이름을 한가지 이름인 aaa.png 로 바꾼다. (즉 다운로드 받은 파일의 이름이 계속 바뀌어도 aaa.png 의 한가지 이름으로 바꾼다)
4) 해상도가 646 X 576 인 aaa.png 파일을 이용 해상도가 254 X 226 인 bbb.png 파일을 하나 만든다. (즉 결과물로 aaa.png 파일과 bbb.png 파일 두개가 있어야 함)

참고로 파일을 제공하는 서버나 받는 서버 모두 NTP 를 이용 대한민국 표준시에 정확히 동기되어 있습니다. 또한 받는 서버는 리눅스 레드헷 9 이 설치되어 있습니다.

고수님들의 도움 간절히 바랍니다.
위로
truefeel
카페 관리자


가입: 2003년 7월 24일
올린 글: 1277
위치: 대한민국

올리기올려짐: 2007.5.26 토, 2:35 am    주제: Re: 쉘 스크립트 프로그래밍 부탁합니다. 인용과 함께 답변

왜 저 스크립트를 짜야하는지 목적이 쓰여있지 않습니다.
그래서 꼭 방식대로 해야하는지, 더 나은 방법이 있다면 그렇게 해도 되는지 궁금해집니다.
(간혹 숙제인데, 해달라고 올리는 분들이 있어요.)

스크립트는 짜지 않고 방법만 제시하겠습니다.

- 한 서버에서 다른 서버로 파일을 복사해도 되는 형태로면 wget대신에 rsync 를 이용해서 싱크를 맞추는 방법도 있습니다.
즉, 파일하나 하나를 정확한 시간대에 갖어와야한다는 것은 시간착오로 인해 오류를 발생할 수 있는 문제가 생길 수 있습니다.
- date에는 현재시간보다 몇 분 전, 몇시간, 며칠전의 시간을 뽑아낼 수가 있습니다.
- image file의 resize는 ImageMagick의 convert 명령으로 할 수 있습니다.

- bash, csh shell스크립트보다는 php스크립트가 더 편할 수 있습니다.
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문
이종협
손님





올리기올려짐: 2007.5.26 토, 4:08 am    주제: winxplanet 운영자입니다. 인용과 함께 답변

저는 http://user.chol.com/~winxplanet 운영자입니다. 바탕화면에 지구의 모습과 시간마다 변하는 구름 이미지를 표현하는 것으로 많은 분들이 알고 계십니다.

여러 사용자들이 이 winxplanet 를 응용해 구름 이미지 뿐만 아니라 기상청에서 제공하는 레이더 이미지(레이더 에코)를 표현해 왔습니다.

의외로 winxplanet 사용자들이 새로운 레이더 이미지를 다운로드 하는 횟수가 많습니다. 즉 모든 사용자들이 기상청에서 10분마다 갱신되는 레이더 이미지를 직접 다운로드 받으면 기상청 서버는 엄청난 부하가 걸립니다. (사용자들의 다운로드 횟수는 상상을 초월합니다)

이러다가 기상청에서 뭐라 말 들을 것 같아 제가 사용할 수 있는 서버에서 대표로 wget 을 이용 10분 마다 레이더 이미지를 다운로드 받은 후 이 이미지를 KT 와 하나로에 있는 여러 개인 홈페이지들에 파일을 전송해 이들 홈페이지를 레이더 이미지 미러링 서버로 사용해 왔습니다.

문제는 작년 하반기부터 기상청의 레이더 이미지 파일 이름이 일정한 이름에서 갱신된 시간을 포함하는 이름으로 바뀌었습니다. 예를 들면 200705260120.png 이런 식으로...

제 실력이 미천한지라 이렇게 파일 이름이 바뀌고 난 후 레이더 이미지를 다운로드하지 못하고 있습니다. 그래서 고수님들의 도움을 청한 것입니다.
위로
로봇브이
손님





올리기올려짐: 2007.7.26 목, 11:50 am    주제: Re: winxplanet 운영자입니다. 인용과 함께 답변

이종협 씀:
저는 http://user.chol.com/~winxplanet 운영자입니다. 바탕화면에 지구의 모습과 시간마다 변하는 구름 이미지를 표현하는 것으로 많은 분들이 알고 계십니다.

여러 사용자들이 이 winxplanet 를 응용해 구름 이미지 뿐만 아니라 기상청에서 제공하는 레이더 이미지(레이더 에코)를 표현해 왔습니다.

의외로 winxplanet 사용자들이 새로운 레이더 이미지를 다운로드 하는 횟수가 많습니다. 즉 모든 사용자들이 기상청에서 10분마다 갱신되는 레이더 이미지를 직접 다운로드 받으면 기상청 서버는 엄청난 부하가 걸립니다. (사용자들의 다운로드 횟수는 상상을 초월합니다)

이러다가 기상청에서 뭐라 말 들을 것 같아 제가 사용할 수 있는 서버에서 대표로 wget 을 이용 10분 마다 레이더 이미지를 다운로드 받은 후 이 이미지를 KT 와 하나로에 있는 여러 개인 홈페이지들에 파일을 전송해 이들 홈페이지를 레이더 이미지 미러링 서버로 사용해 왔습니다.

문제는 작년 하반기부터 기상청의 레이더 이미지 파일 이름이 일정한 이름에서 갱신된 시간을 포함하는 이름으로 바뀌었습니다. 예를 들면 200705260120.png 이런 식으로...

제 실력이 미천한지라 이렇게 파일 이름이 바뀌고 난 후 레이더 이미지를 다운로드하지 못하고 있습니다. 그래서 고수님들의 도움을 청한 것입니다.


날짜형태의 파일은 단순히
date +'%Y%m%d%k%M'.png
형태이므로 서버의 날짜 정보가 정확하다면 이와 같은 방법을 사용하시거나
혹은 날짜 정보만 매치시키고 긁어 오는 방식을 쓰시던가 하시는게 좋지 않을까 싶네요.

스크립트는 요즘 놀아서 해볼라 했는데 리눅스에 제대로 붙일 수 있는 환경이 못되네요...

지나가다가 심심 풀이로 - -;;

아무튼 winxplanet 운영자 시킨요...
요즘도 사용자가 많다니 약간 의외이긴하지만 내우 쓸만한 toy였는데 계속 운영하다니 정말 수고하십니다.
위로
이전 글 표시:   
글 쓰기   답변 달기    커피닉스, 시스템 엔지니어의 쉼터 게시판 인덱스 -> *NIX 일반 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 있습니다
답글을 올릴 수 있습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB © 2001, 2005 phpBB Group