Хорошие команды в скрипте .sh для заданий cron

4

У меня есть этот PHP-скрипт, который мне нужно запустить на общем веб-хостинге. Я создал задание cron, которое выполняет скрипт sh. Команда для cron была:

/bin/sh /home/user/script.sh

Так что я предполагаю, что это Bourne Shell (или что-то совместимое). Сам скрипт был:

#!/bin/sh
cd /home/user/public_html/folder/
#updating DB
php -q ./run_interactive_job.php batch_control_files/updateDB
echo Updated DB results

Мой вопрос :
могу ли я добавить приоритеты Nice в команду php? Или мне нужно добавить его в скрипт по команде cron. Какой из них больше работает?

nice 10 php -q ./run_interactive_job.php batch_control_files/updateDB

Будет ли это успешно работать с более низким приоритетом.

PS: По сути, этот скрипт перегружал сервер раньше, когда я запускал его через браузер, и это влияло на apache на этом сервере, в результате чего мои хосты блокировали файл. Я неоднократно просил их разблокировать, чтобы проверить его с различными параметрами. И теперь я пытаюсь запустить его через cron с более низким приоритетом в надежде, что это не повлияет на apache. Но я не хочу, чтобы это снова создавало проблемы, поэтому я пытаюсь использовать NICE

ОБНОВЛЕНИЕ : я использовал командный файл, как показано там. Я использовал команду nice перед php внутри командного файла. Единственная разница в том, что:

nice -n 10 php -q ./run_interactive_job.php batch_control_files/updateDB

Я добавил команды для запуска дополнительных php-скриптов с таким же приятным свойством. Они все отлично работали.

СПАСИБО ВСЕМ ЗА ВХОД @ sm4rk0 ответ решает мои проблемы

xlordvader
источник

Ответы:

4

Оба метода должны работать, но IMO более понятно, чтобы вставить niceв сценарий, как вы сделали в своем примере. После проверки man niceя обнаружил, что этот пример имеет неправильный синтаксис. Правильный синтаксис будет:

nice -n 10 command

Разновидности варьируются от -20 (наиболее благоприятный график) до 19 (наименее благоприятный).

И, как сказал тердон, 10 является значением по умолчанию, поэтому «-n 10» можно опустить.

Примечание. Несмотря на то, что это снизит приоритет процесса, утилита nice не вызовет снижения нагрузки на процессор. Таким образом, если единственная причина для беспокойства не состоит в том, чтобы "задушить" apache, тогда этот метод в порядке. Но если ваши хосты дадут вам некоторую квоту процессорного времени, это не сильно поможет.

sm4rk0
источник
Команда техподдержки неоднократно блокировала его после того, как скрипт работал в течение 10 минут и замедлял работу сервера. Кажется, у них нет квоты на процессор, или я нахожусь под этим, учитывая, что сам мой сайт не ресурсоемкий.
xlordvader
Эта команда верна в синтаксисе? Я никогда не пробовал Ниццу или Ниццу с помощью cron в сценарии. И я не хочу, чтобы меня снова выгнали с сервера. Боль говорить с технологией
xlordvader
Да. niceСинтаксис OK. Попробуйте, а затем вернитесь сюда, чтобы обновить нас, если это сработало.
sm4rk0
Извините, синтаксис был не в порядке. Правильный синтаксис будет:nice -n 10 command
sm4rk0
На самом деле, nice commandдостаточно, он по умолчанию будет запускать команду с приоритетом 10.
тердон