반응형
cronjob 문법에서 backtick(`)을 사용하려는데 무엇이 잘못되었습니까?
제가 자동화 하고 싶은 것이 여기 있습니다.
00 08 * * * psql -Uuser database < query.sql | mail somone@null.com -s "query for `date +%Y-%m-%dZ%I:%M`"
하지만 다음처럼 오류 메세지가 나옵니다.
/bin/sh: -c: line 0: unexpected EOF while looking for matching ``'
/bin/sh: -c: line 1: syntax error: unexpected end of file
4개의 답변 중 1개의 답변만 추려냄
"여섯"번째 필드 (라인의 마지막)은 실행할 명령어입니다. 그 행의 전체 명령 부분 개행문자 혹은 %까지 /bin/sh에 의해 실행되거나 crontab 파일의 SHELL 변수에 정의된 shell에 의해 실행됩니다. 명령어에서 퍼센트 표시(%)가 backslash()에 의해 escape되지 않으면 이는 개행문자로 변경되고 첫번째 % 이후 모든 데이터는 표준 입력의 명령어로 보내집니다. 하나의 명령 행을 여러 행으로 나누지 않으려면 shell ""를 붙여야 합니다.
% 표시 앞에 backslash를 추가하면 됩니다.
00 08 * * * psql -Uuser database < query.sql | mail somone@null.com -s "query for `date +\%Y-\%m-\%dZ\%I:\%M`"
반응형
'리눅스 shell' 카테고리의 다른 글
Bash에서 문자열이 부분 문자열을 포함하는지 확인하는 방법 (0) | 2020.03.27 |
---|---|
script에서 ssh로 timeout을 주는 방법? (0) | 2020.02.06 |
Shell Script 튜토리얼 - 팁 Getopts (0) | 2019.12.16 |
비밀 SSH 키로부터 공개 SSH 키를 생성하기 (0) | 2019.11.30 |
bash 쉘 스크립트에서 모든 인수를 전달 (0) | 2019.05.20 |