고르지 못한 날에 다르게 실행할 수 있는 명령이 필요합니다.
답변1
일반 사용자로 crontab -e
편집을 실행하십시오.당신의크론탭. crontab에 다음을 입력합니다.
00 12 1-31/2 * * /path/to/the/command_for_odd_days
00 12 2-30/2 * * /path/to/the/command_for_even_days
이 명령은 매일 12:00(정오)에 실행됩니다.
컴퓨터 관리자인 경우 다음을 생성할 수 있습니다.
/etc/cron.d/myservice
파일에는 명령을 실행해야 하는 사용자를 지정해야 한다는 점을 제외하면 내용이 비슷합니다.
00 12 1-31/2 * * someuser /path/to/the/command_for_odd_days
00 12 2-30/2 * * someuser /path/to/the/command_for_even_days
man 5 crontab
이러한 crontab 형식에 대해 자세히 알아보려면 실행하세요 .
1-31/2 구문(1에서 31 사이에 이틀마다)은 Ubuntu 시스템에서 사용 가능한 모든 것을 포함하여 대부분의 최신 cron 구현에서 인식되어야 합니다. 지원되지 않는 고대 시스템을 만나면 1,3,5,7,...,29,31
.
답변2
%e
유틸리티의 형식 지정자는 date
월의 날짜를 1에서 31 사이의 정수로 제공합니다(1에서 9까지는 앞에 공백이 있지만 산술 확장에 사용될 때는 무해합니다).
day=$( date +%e )
숫자가 홀수인지 짝수인지 테스트하려면 다음을 수행하세요.
if [ "$(( day % 2 ))" -eq 0 ]; then
# $day is even
else
# $day is odd
fi
이것을 쉘 함수로 변환하십시오.
run_command () (
day=$( date +%e )
if [ "$(( day % 2 ))" -eq 0 ]; then
# $day is even
some_command_on_even_days
else
# $day is odd
other_command_on_odd_days
fi
)
이는 쉘 초기화 파일(예: $HOME/.bashrc
for bash
)로 이동한 다음 다음을 사용할 수 있습니다.
run_command