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

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

решение1

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

Связанный контент