arp не запускается в скрипте при запуске через crontab

Ubuntu 18.04 имеет как GCC 7 (7.3.0 -16ubuntu3, на данный момент я пишу этот ответ ), так и GCC 8 (8 -20180414 -1ubuntu2 ). Больше нет необходимости добавлять сторонние -репозитории :Просто запустите sudo apt-get install gcc-7.

0
30.04.2020, 17:03
2 ответа

Среда, в которой cron запускает ваш скрипт, имеет другое значение переменной PATHпо сравнению с вашей обычной интерактивной средой.

Это означает, что ваш сценарий не знает, где находится команда arp, например (, как указано в комментариях).

Я бы посоветовал вам отметить, в каких каталогах находятся инструменты, которые вы используете в своем скрипте, запустив command -vдля каждого из них в интерактивной оболочке, например.

command -v nmap
command -v arp

и т. д.

Это даст вам список путей для этих команд. Возьмите имена этих каталогов и добавьте их в PATHв самом скрипте (где-то в начале скрипта):

PATH=$PATH:/some/directory/path:/another/directory/path

Выполнение этого в сценарии гарантирует, что инструмент будет найден сценарием.

В конце концов, может оказаться, что все, что вам нужно, это добавить/usr/sbin:

PATH=$PATH:/usr/sbin

Другой альтернативой является использование инструментов с их абсолютным путем, например, использование /usr/sbin/arpвместо просто arp.

2
28.04.2021, 23:17

Для запуска скрипта arpв crontabнеобходимо использовать путь arpкак /sbin/arpвместо arp, так как crontabзапускает скрипты, находящиеся в /binпо умолчанию, а arpнаходится в /sbin/.

1
22.10.2021, 00:41

Теги

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