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