날짜와 시간을 찾고 후속 단계를 수행하는 쉘 스크립트 [Redhat6.7]

날짜와 시간을 찾고 후속 단계를 수행하는 쉘 스크립트 [Redhat6.7]

날짜를 기준으로 쉘 스크립트를 실행해야 하는 시나리오가 있습니다. 코드는 다음과 같습니다.

cd /home/test/check
perl test.pl check.ini parameters

목요일이 아닌 경우에만 이 두 줄을 실행하고 싶습니다. 목요일인 경우 다음 줄은 실행하면 안 됩니다. 동일한 목표를 어떻게 달성할 수 있습니까? 저는 쉘 스크립팅을 처음 접하는 사람이므로 도움을 주시면 감사하겠습니다.

답변1

date "+%u"숫자로 된 요일을 가져옵니다 (1은 월요일을 의미함).

if [ $(date "+%u") !=  "4" ]; then
   cd /home/test/check
   perl test.pl check.ini parameters
fi 

답변2

crontab특정 시간에 스크립트를 실행하는 데 사용할 수 있습니다 . 편집 크론탭 사용crontab -e

 # Use the hash sign to prefix a comment
    # +---------------- minute (0 - 59)
    # |  +------------- hour (0 - 23)
    # |  |  +---------- day of month (1 - 31)
    # |  |  |  +------- month (1 - 12)
    # |  |  |  |  +---- day of week (0 - 7) (Sunday=0 or 7)
    # |  |  |  |  |
    # *  *  *  *  *  command to be executed
    #--------------------------------------------------------------------------

예를 들어 목요일 오전 11시 59분을 제외하고 매일 실행됩니다. :

59 11 * * 1,2,3,5,6,7 nohup /usr/local/bin/perl  /home/test/check/perl.pl check parameters > /tmp/script.log 2>&1

답변3

일주일에 6일 동안 실행되며 상당히 자체적으로 문서화됩니다. ||를 목요일에 하루만 실행하려면 &&를 사용하세요.

cd /home/test/check
date | egrep '^Thu ' || perl test.pl check.ini parameters

관련 정보