고르지 못한 날에 다른 명령을 실행하는 명령

고르지 못한 날에 다른 명령을 실행하는 명령

고르지 못한 날에 다르게 실행할 수 있는 명령이 필요합니다.

답변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/.bashrcfor bash)로 이동한 다음 다음을 사용할 수 있습니다.

run_command

관련 정보