Ubuntu 18.04 имеет как GCC 7 (7.3.0 -16ubuntu3, на данный момент я пишу этот ответ ), так и GCC 8 (8 -20180414 -1ubuntu2 ). Больше нет необходимости добавлять сторонние -репозитории :Просто запустите sudo apt-get install gcc-7
.
Среда, в которой 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
.
Для запуска скрипта arp
в crontab
необходимо использовать путь arp
как /sbin/arp
вместо arp
, так как crontab
запускает скрипты, находящиеся в /bin
по умолчанию, а arp
находится в /sbin/
.