Как запустить скрипт bash с командой at на freebsd

Вы также должны добавить:

Wants=network-online.target

Это гарантирует, что все настроенные сетевые устройства включены и им назначен IP-адрес перед запуском службы.

0
14.01.2021, 10:56
1 ответ

Команды, считанные из стандартного ввода или из файла, указанного в опции -f, выполняются shво FreeBSD в соответствии сat(1)руководством . Это означает, что строка#!-вашего скрипта игнорируется.

Чтобы сценарий выполнялся правильно, запланируйте выполнение сценария вместо команд в файле сценария.

Вы делаете это, например, вот так:

echo /usr/local/bin/asterisk_wakeup_call.sh | at -t 20210140636.00

Ваша полная команда (при условии, что LISTдолжна быть строкой с разделенными пробелами -числами):

sudo env \
    FILE=hello-world.gsm \
    LIST='4001 5001 6001' \
    CALLERID=123 \
    sh -c 'echo /usr/local/bin/asterisk_wakeup_call.sh | at -t 20210140636.00'

или,

echo /usr/local/bin/asterisk_wakeup_call.sh |
sudo env \
    FILE=hello-world.gsm \
    LIST='4001 5001 6001' \
    CALLERID=123 \
    at -t 20210140636.00

Это также использует envдля передачи переменных среды в запускаемую оболочку, что безопаснее, чем использование sudo -E. Если есть другие переменные окружения, которые необходимо передать, как -, то вы, очевидно, можете сделать это любым удобным для вас способом.

Также обратите внимание, что указанное вами время 20210140636.00неверно. Где-то не хватает одной цифры (, вероятно, в спецификации дня):2021 01 40 636.00

1
18.03.2021, 22:36

Теги

Похожие вопросы