Хорошие команды в скрипте.sh для заданий cron
У меня есть этот 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
Мой вопрос:
Могу ли я добавить хорошие приоритеты в команду 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 ответ решает мои проблемы
1 ответ
Оба метода должны работать, но ИМО чище ставить nice
в сценарий, как вы сделали в своем примере. После проверки с man nice
Я обнаружил, что этот пример имеет неправильный синтаксис. Правильный синтаксис будет:
nice -n 10 command
Разновидности варьируются от -20 (наиболее благоприятный график) до 19 (наименее благоприятный).
И, как сказал тердон, 10 является значением по умолчанию, поэтому "-n 10" можно опустить.
Примечание. Несмотря на то, что это снизит приоритет процесса, утилита nice не вызовет снижения нагрузки на процессор. Так что, если только повод для беспокойства не состоит в том, чтобы "душить" apache
, тогда этот метод в порядке. Но если ваши хосты дадут вам некоторую квоту процессорного времени, это не сильно поможет.