crontab이 내 bash 스크립트를 실행하지 않습니다.

crontab이 내 bash 스크립트를 실행하지 않습니다.

파일 이름이 요일이므로 파일을 이동하기 위해 간단한 실행 가능한 스크립트를 만들었습니다. 스크립트는 파일 이름을 만든 다음 파일을 이동합니다. cron을 사용하여 매일 밤 실행되도록 예약하고 싶습니다.

Bash에서 스크립트를 실행하면 작동합니다. cron에서 경로와 파일 이름을 정확하게 지정해도 작동합니다.

cron에 스크립트 실행을 요청하면 문제가 발생합니다. cron은 날짜를 기반으로 파일 이름을 생성하기 위해 하위 프로세스를 실행할 수 없는 것 같습니다. 내 스크립트는 다음과 같습니다.

#!/bin/bash
mv /home/folder1/$(date "+%Y-%m-%d").txt /media/folder2/folder3

이것이 crontab에서 작업을 설정하는 방법입니다.

0 21 * * * /home/folder1/bash_text.txt

나는 $( which mv)를 성공하지 않고 시도했습니다. (스크립트와 cron 명령 모두에서 시도)

0 21 * * * $(which mv) /home/folder1/$(date "+%Y-%m-%d").txt /media/folder2/folder3

$(date "+%Y-%m-%d").txt 파일 이름을 실제 파일 이름으로 바꾸는 경우에만 작동합니다.

0 21 * * * $(which mv) /home/folder1/2020-04-28.txt /media/folder2/folder3

누구든지 나를 도울 수 있다면 크게 감사하겠습니다. 아시다시피 저는 Linux를 처음 접하는 사람이라 끊임없이 배우고 있으니, 그 점을 고려하여 회신해 주시면 감사하겠습니다.

답변1

댓글을 달기에는 평판이 부족합니다 ...

각 경우의 오류는 무엇입니까?

크론 오류를 찾는 방법은 여기를 참조하세요.크론 오류는 어디에 기록되나요?

첫 번째 설정의 경우

/home/folder1/bash_text.txt실제로 실행 권한이 있습니까?

그렇다면 작동해야합니다.

두 번째 설정의 경우

Kusalananda에서 제공한 링크가 작동해야 합니다.

모든 상황에서

crontab에서 명령을 실행하기 위한 기본 쉘은 입니다 /bin/sh. 어쩌면 이것은 적합하지 않을 수도 있습니다.

다음과 같이 수정할 수 있습니다.

SHELL=/bin/bash

0 21 * * * command

crontab 사용에 대한 자세한 내용은 다음을 참조하세요.

$ man 5 crontab

도움이 되었기를 바랍니다.

관련 정보