파일전송후 자동으로 쉘 스크립트를 실행하려고 합니다.

아니면의 이미지

리눅스상에서 특정 파일을 ftp로 넘겨줍니다..
그리고 그 파일을 넘겨주신후..
해당 파일을 받은 서버에서 특정 스크립트를 실행해야 하는데..
어떻게 해야 할지를 모르겠네요..

a -> b로 test.tgz 파일 전송(ftp)
b에서 test.tgz를 압축 해제후 특정 디렉토리로 이동을 해야 합니다..(이 작업을 쉘로 해 주려고 하는데.. 파일전송후 자동으로 실행할 방법을 모르겠습니다.)

공유기 뒤에 있는 상태(유동 아이피임)라서 메일 전송은 불가능합니다..
현재 외부 접근이 가능한 것은 ssh와 ftp뿐입니다..
그리고 자동으로 실행을 해야 합니다.
데몬이나 소켓으로 주기적으로 체크하는 것보다 해당 파일이 넘어 왔을때
쉘을 실행만 해 주면 되는데..
답이 안 나오네요..
혹 좋은 방법 없을까요??

monpetit의 이미지

ssh로 접근이 가능한 경우이니 파일을 전송하는 쪽에서 전송이 끝난 후 원격으로 명령을 내리는 게 어떨까요.

bugiii의 이미지

ftp 도 scp 로 대체하실 수 있을 것 같습니다.

pleasantman의 이미지

해당 머신으로 ssh과 ftp가 실행된다고 하셨는데요..
제가 이해를 잘 못해서.. 이렇게 이해 했습니다.

관리 머신(ssh client + ftp 서버)  --->    대상 머신 ( ssh 서버 + ftp client )


관리 머신                        --->    대상 머신 접속 (ssh) 및 스크립트 시작 
                                       관리머신에서 특정 파일 다운로드(ftp)
                                       완료 하면 다음 스크립트 시작!

각각 설치된 client와 서버가 먼지....

위의 구성이라면.. 방법이 보이는데....

ftp에 접속해서 인증하고 자동으로 특정 파일을 받아 오는 건...

인터넷 상에 잘 설명되어 있구요.. 위의 스크립트가 완료되면..

다음 스크립트 진행되면 될 것 같은데요..

아니면의 이미지

우선 A서버와 B서버가 있습니다.

A서버의 메일(신규)을 tar.gz로 묶어서 B로 보내줍니다.
그런데.. B는 공유기(유동 아이피 사용)를 사용하는 사무실로 사설 아이피가 부여되어 있습니다.

첨에서는 메일(alises등을 통해)로 전송을 하려다..
유동 아이피를 사용해 고정 도메인 사용이 불가능해서 다른 방법을 찾았습니다.
유동 아이피에 2차 도메인을 주는 곳이 있다는 것은 알지만.. 외부로 거쳐 들어오기엔 차후 문제가 많은 것 같아서 다른 방법을 강구하다..

A서버는 새로이 메일이 들어오면 procmail을 이용해 B서버로 신규 메일을 tar로 묶어서 ftp로 전송해 주는 쉘이 실행이 됩니다..

현재 이것까지 진행이 되었는데..
tar를 받은 B컴에서 압축 해제후 이것은 메일 계정이 있는 곳에다 내용을 추가해야 합니다..
그런데.. B컴에서 이 작업을 할 쉘을 실행시킬 방법을 모르겠네요..
A에서 파일을 받고 난뒤 자동으로 B에서 실행을 해야 하는데..
(B는 외부에서는 ftp와 ssh 접근이 가능합니다. 그외 것은 오픈을 안 하려고 합니다..
내부적으론 왠만 것은 다 돌아가고 있습니다.(사설 아이피 내에서..
dns,sendmai,삼바등.. 외부에서는 접근이 불가능한 상태죠..)

약간 무식한 방법 같기는 하지만.. 현재까지는 큰 문제가 없이 잘 되고 있는데..
대안으로 cron으로 30초마다 특정 파일이 존재하는지 체크해 있다면 쉘(B에서)
을 실행해 볼까 하는데..

좀더 나은 방법이 잇다면 조언해 주시면 감사하겠습니다.

pynoos의 이미지

cat valgrind-2.0.0.tar.bz2 | ssh remotehost "cat > valgrind-2.0.0.tar.bz2; tar tvjf valgrind-2.0.0.tar.bz2"

위의 예는 valgrind-2.0.0.tar.bz2 를 remotehost 에 보낸뒤 그 내용을 보여주는 예입니다.

ssh 를 잘 사용하시면 내용 전송과 동시에 명령을 이어서 실행 할 수 있죠.

sjpark의 이미지

expect라는 툴은 어떨까요?

아니면의 이미지

pynoos wrote:
cat valgrind-2.0.0.tar.bz2 | ssh remotehost "cat > valgrind-2.0.0.tar.bz2; tar tvjf valgrind-2.0.0.tar.bz2"

위의 예는 valgrind-2.0.0.tar.bz2 를 remotehost 에 보낸뒤 그 내용을 보여주는 예입니다.

ssh 를 잘 사용하시면 내용 전송과 동시에 명령을 이어서 실행 할 수 있죠.

답변 주셔서 감사합니다..
그런데.. 위처럼 하면.. ssh에 접근을 하기 위해 아이디랑 패스워드를 입력해야 한지 않나요?
(아이디는 구지 필요 없다고 하더라도.. 패스워드는 꼭 입력을 해야 하지 않나요?)
자동으로 실행을 하려고 하는건데..
(사용자가 어떤 입력도 없이.. 메일이 들어오면 쉘이 자동으로 작동을 하게 하려고 하는겁니다..)

bugiii의 이미지

ssh 키 생성에 관련된 글이 검색하시면 많습니다. 참고하시기 바랍니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.