сценарий оболочки для определения дня и времени и выполнения следующих шагов [Redhat6.7]

У меня есть сценарий, в котором мне нужно выполнить сценарий оболочки в зависимости от того, какой день недели. вот код:

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

Я хочу выполнить эти две строки, только если день не четверг, если день четверг, он не должен выполнять следующие строки. как я могу добиться того же Я новичок в сценариях оболочки, любая помощь приветствуется.

0
10.08.2017, 17:50
3 ответа

Используйте date "+%u"для получения числового значения дня недели (1 — понедельник ).

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

Вы можете использовать crontabдля выполнения скриптов в определенное время. Отредактируйте 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
0
28.01.2020, 04:41

Это работает 6 дней в неделю и довольно -самодокументируемо. Заменить || с &&, если вы хотите запустить только 1 день, в четверг.

cd /home/test/check
date | egrep '^Thu ' || perl test.pl check.ini parameters
0
28.01.2020, 04:41

Теги

Похожие вопросы