У меня есть задание cron, которое вызывает скрипт оболочки. Сценарий отправляет POST-запросы на локальный хост с использованием CURL.
Cron-сценарий:
PATH=/bin:/sbin:/usr/bin:/usr/sbin
0 0 * * * reboot now
2 11 * * 0 /bin/sh /usr/share/power/turn_off_outlets.sh
turn_off_outlets. sh:
#!/bin/sh
#arg 1 is outlet and arg two is the relay state(true for on, false for off)
power_ctrl_outlet() {
echo "Turning outlet $1 to $2"
curl -X PUT http://localhost/restapi/relay/outlets/$1/state/ -H 'Acc: application/json' -H 'Authorization: Basic YWRtaW46JGNpZW5jZQ==' -H 'Cache-Control: no-cache' -H 'Content-Type: application/x-www-form-urlencoded' -H 'cache-control: no-cache' -d "value=$2"
}
turn_off_all_outlets() {
power_ctrl_outlet 0 false
power_ctrl_outlet 1 false
power_ctrl_outlet 2 false
power_ctrl_outlet 3 false
power_ctrl_outlet 4 false
power_ctrl_outlet 5 false
power_ctrl_outlet 6 false
power_ctrl_outlet 7 false
}
turn_off_all_outlets
Запуск сценария из командной строки работает нормально, но когда cron выполняет скрипт, это занимает очень много времени. Я попытался использовать nice
для установки уровня приоритета, но это замедляет всю систему.
Система BusyBox v1.22.1 () built-in shell (ash)
Любой ввод приветствуется.