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

6882
xlordvader

У меня есть этот 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 ответ решает мои проблемы

4

1 ответ на вопрос

4
sm4rk0

Both methods should work, but IMO it's cleaner to put nice into the script just as you did in your example. After a check with man nice I found that example in question had wrong syntax. The right syntax would be:

nice -n 10 command 

Nicenesses range from -20 (most favorable scheduling) to 19 (least favorable).

And, as terdon said, 10 is the default value so "-n 10" can be omitted.

Note: Although it will lower the process priority, nice won't make it cause less CPU load. So, if only reason to worry about is not to "choke" the apache, then this method is OK. But if your hosts give you some CPU time quota, this won't help a lot.

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