![날짜와 시간을 찾고 후속 단계를 수행하는 쉘 스크립트 [Redhat6.7]](https://linux55.com/image/115924/%EB%82%A0%EC%A7%9C%EC%99%80%20%EC%8B%9C%EA%B0%84%EC%9D%84%20%EC%B0%BE%EA%B3%A0%20%ED%9B%84%EC%86%8D%20%EB%8B%A8%EA%B3%84%EB%A5%BC%20%EC%88%98%ED%96%89%ED%95%98%EB%8A%94%20%EC%89%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%20%5BRedhat6.7%5D.png)
날짜를 기준으로 쉘 스크립트를 실행해야 하는 시나리오가 있습니다. 코드는 다음과 같습니다.
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