매개변수를 받아들이고 이를 스크립트에서 사용하는 쉘 스크립트가 있습니다. 그래서 내가 입력한 스크립트를 실행하려면
/path/to/script argument
at
문제는 유틸리티로 실행 되도록 파일을 설정하려고 할 때 발생합니다 . 나는 열심히 노력했다
at -f /path/to/script argument 17:45
at -f '/path/to/script argument' 17:45
그러나 이러한 옵션 중 어느 것도 작동하지 않습니다. 첫 번째는 구문 오류가 발생하고 두 번째는 해당 파일이 없다고 말합니다.
답변1
at
기본값은 표준 입력에서 읽는 것이므로 다음과 같이 할 수 있습니다 .
echo /path/to/script argument | at 17:45
답변2
일반적으로 @warl0ck의 조언을 따르는 것이 좋습니다. 다음과 같은 새 스크립트를 만듭니다 /path/to/newscript
.
#!/bin/bash
/path/to/script argument
그런 다음 다음을 사용하여 실행하십시오 at
.
at -f /path/to/newscript 17:45
이를 통해 필요한 매개변수를 쉽게 조정하고 여러 명령을 실행할 수 있습니다.
또는 가끔 또는 일회성 사용을 위해 at
선택한 시간에만 실행한 다음 표준 입력에 필요한 명령을 입력할 수 있습니다 ctrl-D
.
myhost# at 17:45
/path/to/script argument
<ctrl-D>
Job 1 will be executed using /bin/sh
답변3
저도 이 문제를 겪었고 EOF로 해결했습니다.
원격 서버(sshserverhost)의 매개변수 실행에 대한 연결을 시작하는 것입니다 ssh
.sshserverhost
test.sh
$HOSTNAME
at now + 1 minutes <<EOF
ssh -t sshserverhost 'bash -s' <~/test.sh $HOSTNAME
EOF