Назад | Перейти на главную страницу

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, но ничего не регистрируется и сообщение об ошибке не возвращается.

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