ifconfig up не выполняется из cron

Я пытаюсь объединить руководство Скотта Лоу по созданию пространства имен с этим ответом о пересылке трафика между двумя интерфейсы .

У меня есть этот сценарий, который запускается при каждой перезагрузке с использованием директивы cron @reboot: (Я использую сценарий, потому что ни одна из этих команд не сохраняется после перезагрузки.)

# Setup VPN
ip netns add vpnspace
ip link add vpnopen type veth peer name vpnbind
ip link set vpnopen netns vpnspace
ip netns exec vpnspace ifconfig vpnopen 10.0.0.1/24 up

Когда я запускаю сценарий вручную, используя sudo , он работает нормально. Однако, когда сценарий запускается cron, четвертая строка ip netns exec vpnspace ifconfig vpnopen 10.0.0.1/24 up не выполняется. Почему это происходит? Как мне заставить его выполнить?

TL; DR: ifconfig vpnopen 10.0.0.1/24 up не выполняется при вызове cron внутри пространства имен

======= ======

Уточнения:

  1. Моя задача cron - @reboot /home/ubuntu/startupscripts/rootscripts.sh
  2. Приведенный выше код является первой частью сценария оболочки под названием
  3. Под «не выполняется» я имею в виду, что если я запустил команду sudo ip netns exec vpnspace ifconfig в терминале, чтобы проверить, был ли IP-адрес поднят, терминал вернет пустой результат. Я попытался записать вывод, добавив >> rootscripts.log , но ничего не регистрируется и сообщения об ошибке не возвращаются.
0
задан 17 February 2018 в 21:23
1 ответ

Команды cron обычно выполняются с PATH по умолчанию. Хотя ip обычно находится в / bin, ifconfig чаще всего находится в / sbin. . . поэтому попробуйте указать / sbin / ifconfig в командной строке.

0
ответ дан 5 December 2019 в 06:31

Теги

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