특정 시간에 서버를 중지하고 시작하기 위해 "at" 명령을 사용해 보았지만 어떤 이유에서인지 스크립트가 즉시 실행됩니다. 이를 위해 다양한 방법을 시도했지만 항상 실행됩니다. 내가 뭘 잘못했나요? 나는 이것을 시도한다:
./stop | at 03:52 092421
이와 같이:
./start | at 04:00 tommorow
답변1
내가 뭘 잘못했나요?
./stop
(또는 )에 전화 중입니다 ./start
. at
누가 즉시 스크립트를 실행하는지가 아닙니다 . 당신이에요.
./stop | at …
동시에 당신 에 의해 ./stop
실행됩니다 at
. 이것이 |
셸에서 Pipe()가 작동하는 방식입니다. 이것산출에서부터 ../stop
at
당신이 원하는 것이 아닌가요?
at
나중에 실행하려는 명령을 표준 입력의 문자열로 예상합니다. ./stop
전달하려는 출력 대신끈물론 ./stop
. 문자열을 파이프하는 기본 방법은 다음과 같습니다 echo
.
echo './stop' | at …
그러면 후자의 도구 echo
가 at
이전 도구의 출력을 사용하게 됩니다. 출력은 실제로 ./stop
당신이 원하는 것입니다.