cronjob이 실행될 때 파일을 생성해야 합니다.

cronjob이 실행될 때 파일을 생성해야 합니다.

cronjob이 실행될 때 다른 파일 이름을 생성하는 bash 스크립트가 필요합니다. 파일 이름은 file1, file2, 와 같아야 합니다 file3. 예를 들어 Cron이 11월 1일에 실행되면 생성되어야 file1하고, 11월 2일에 생성되어야 합니다 file2.

답변1

cron 작업에서 스크립트를 실행한다는 사실은 부적합합니다. 스크립트는 현재 날짜를 포함하는 값을 생성하고 이를 파일 이름으로 사용하기만 하면 됩니다.

해당 월의 날짜를 구하는 것은 처음 들리는 것만큼 간단하지 않습니다. Linux(버전 4.2+)에서는 bash다음과 같이 수행할 수 있습니다.

printf -v filename 'file%(%-e)T' -1

... %(...)T시간 형식 문자열을 사용하여 타임스탬프의 형식을 지정하는 방법은 어디에 있으며 printf, %e날짜는 정수입니다. 일반적으로 %e날짜가 한 자리 날짜인 경우 초기 공백 문자가 포함되지만 %-e공백이 사라지도록 숫자를 왼쪽 맞춤으로 사용합니다.

그러나 이것은 (일부) Linux가 아닌 시스템에서는 작동하지 않으며 대신 filename 을 얻습니다 file-e. 따라서 이러한 시스템에서는 예를 들어 또는 를 %d사용하여 0으로 채워진 날짜를 얻는 것이 좋습니다 . 파일 이름을 나열할 때 셸에서 파일 이름을 보기 좋게 정렬하려는 경우에도 이 방법이 더 나은 선택입니다.0802

printf -v filename 'file%(%d)T' -1

bashmacOS와 같은 이전 구현이 포함된 시스템에서는 (Homebrew를 통해 최신 버전이 설치되지 않은 경우) 외부 명령을 bash호출해야 합니다 .date

printf -v filename 'file%s' "$(date +%d)"

관련 정보