주어진 무작위 작업을 완료할 때 스크립트를 실행하는 명령을 추가하려면 무엇이 필요합니까?

주어진 무작위 작업을 완료할 때 스크립트를 실행하는 명령을 추가하려면 무엇이 필요합니까?

나는 놀고 있어요아래로 밀어, 그리고 이것을 임의의 명령에 대한 인수로 사용하여 해당 작업이 무엇이든 작업이 끝날 때 Pushover 스크립트를 실행할 수 있다면 멋질 것이라고 생각했습니다.

이것이 가능한지, 어떻게 해야 할지 모르겠지만 배우고 싶습니다.

RasPi Stack Exchange 사이트의 질문입니다.이로 인해 나는 이것에 대해 생각하게 되었습니다. 하지만 컴파일 작업이 최종적으로 완료되면 알려주는 등, 성공 여부를 알려주는 등 활용도가 높다고 생각합니다.

나는 그것이 다음과 같이 보일 것이라고 상상합니다.

     $ apt-get -b source packagename -pushover "Compile job complete."

아이디어는 "-pushover [여기에 메시지 텍스트 입력]" 매개변수가 뒤에 오는 모든 명령이 Pushover 스크립트를 실행하고 API를 사용하여 애플리케이션을 통해 알리는 것입니다.

그래서 질문은 '이런 식으로 할 수 있습니까?'입니다. 그렇다면 어디서부터 시작해야 할까요? 그렇지 않다면 실행 중인 명령에 의해 제한되지 않고 동일한 작업을 수행하는 더 좋은 방법이 있습니까?

나는 그것을 명령 인수로 사용한다는 생각에 얽매이지 않지만 각 명령에 대해 별도의 스크립트를 작성할 필요 없이 어떤 명령으로든 실행할 수 있는 방법을 원합니다.

저는 Linux를 처음 접했기 때문에 이것이 실현 가능하지 않은 아이디어라면 왜 작동하지 않는지에 대한 합리적인 설명이 있는 한 이 답변도 수락하겠습니다.

답변1

다른 방법으로 할 수 있습니다:

$ pushover-notify "This is my message" command arg1 arg2

스크립트는 pushover-notify다음과 같습니다.

#!/bin/sh
TOKEN=your_token
USER=your_user
MSG="$1"
COMMAND="$2"
shift 2
if "$COMMAND" "$@" ; then
   # here run your send-message script, with message "$MSG". for example:
   curl -s \
        -F "token=$TOKEN" \
        -F "user=$USER" \
        -F "message=$MSG" \
        https://api.pushover.net/1/messages
else
   # here send some message indicating failure, or don't do anything. for example:
   curl -s \
        -F "token=$TOKEN" \
        -F "user=$USER" \
        -F "message=command failed: $COMMAND $@" \
        https://api.pushover.net/1/messages
fi

답변2

내 프로그램에서 나에게 이메일을 보내도록 하거나 작업이 완료되면 콘솔에서 신호음이 울리도록 합니다. && 문자를 사용하여 콘솔에 이전 명령이 완료될 때까지 기다린 다음 전체 프로세스를 다른 &로 종료하여 콘솔 제어권을 다시 얻도록 지시합니다.

따라서 귀하의 예는 다음과 같습니다.

apt-get -b 소스 패키지 이름&& sleep 10 && Pushover "컴파일 작업이 완료되었습니다." &

좋은 측정을 위해 수면 10을 추가했습니다. 저는 Pushover 구문을 모릅니다.

또는 Pushover를 사용하지 않는 경우 mailx를 사용하여 이메일이나 txt 메시지를 보내거나 echo -a "\a"를 사용하여 콘솔 신호음을 울리게 할 수 있습니다.

관련 정보