cronjob не выполняет скрипт как ожидалось - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть этот скрипт, работающий на маршрутизаторе Juniper, который по сути работает на Freebsd 10. Проблема, с которой я сталкиваюсь, заключается в том, что когда cronjob запускает эту переменную скрипта ($ current_mem) не показывает никакого значения, так как регистратор результатов также не можетзаписать это значение.Любой имеет какое-либо представление о том, что происходит.

#!/bin/bash
localpid=$$
renice -n +1 $localpid &
current_mem="test"
echo "$current_mem" <<<<shows right value 
current_mem=$(cli -c "show task memory" | grep "Currently In Use" | awk 
'{print $5}' | grep -o '[0-9]*')
echo "$current_mem" <<<<<<<<<<"when cron is running it show's nothing"
if [ "$current_mem" -gt "65" ]
then
echo "$current_mem" <<<<<"shows nothing"
logger -t JTASK_OS_MEM_HIGH -p "external.notice" "Using more then 65 
percent of available memory Current utilization:$current_mem" <<<<<

else
echo "$current_mem"
logger -t JTASK_OS_MEM_NORMAL -p "external.notice" "Using less then 65 
percent of available memory Current utilization: $current_mem"

fi

Когда я запускаю этот скрипт с sh task_mem.sh, скрипт работает отлично, но когда я запускаю его через cron, он не показывает / сбрасывает значение переменной.Это то, что у меня есть для работы cron

# crontab -l
*/1 * * * * sh /var/tmp/task_mem.sh >> 
/var/tmp/task_mem_cron.log

1 Ответ

0 голосов
/ 22 сентября 2018

@ GordonDavisson, который был "cli", был в / usr / sbin / cli, а не в / bin, в результате чего cron не смог его выполнить.Как только я добавил полный путь, он начал работать.Большое спасибо за вашу помощь

...