Невозможно проверить связь с хостом от маршрутизатора, но оба интерфейса маршрутизатора от хоста

Есть много проблем:

  • foreach не является ключевым словом bash: используйте для
  • , если вы хотите выполнить используйте команду $ (...) , а не только круглые скобки
  • выполнение команды в круглых скобках не требуется, вы можете просто использовать расширение оболочки для i в *.DAT; выполните (в общем см. Почему * не * разобрать `ls`? )
  • , чтобы проверить, меньше ли значение или равно (см. man test ): если [$ a -le 2]; тогда
  • a для заканчивается done , а не end
  • an , если заканчивается fi и not endif
  • , если вы укажете имя файла в качестве аргумента для wc , он напечатает количество строк и имя файла. Используйте , чтобы wc считывались со стандартного ввода

Подводя итог:

#!/bin/sh
for i in *DAT; do
  a=$( wc -l < "$i" )
  if [ "$a" -le 2 ] ; then
    mv "$i" aux1/pelvar/var/pel/projs/ar/shells/IGUD_OUT/backup
  fi
done

3
26.07.2016, 18:12
1 ответ

Причина, по которой ваша установка не работает, заключается в том, что ваш WAN-маршрутизатор (назовем его r1) не знает, как добраться до виртуальной машины за маршрутизатором Ubuntu (назовем его r2).

Вы должны (на r1) добавить маршрут к сети 3.0.0.0/24, с LAN-адресом r2 (192.168.1.254) в качестве следующего хопа.

Как это сделать, зависит от программного обеспечения r2.

В качестве дополнения (как было указано в одном из комментариев): вы должны не назначать произвольные сетевые адреса, даже если сеть находится за NAT-маршрутизатором. Вместо этого используйте 10.0.0.0/8 или 172.16.0.0/16 - подробности см. в RFC 1918.

Вам придется указать ядру r2 пересылать IP-пакеты:

echo 1 | sudo tee >   /proc/sys/net/ipv4/ip_forward

Затем сделайте это постоянным, откомментировав следующую строку в /etc/sysctl.conf

net.ipv4.ip_forward = 1
3
27.01.2020, 21:22

Теги

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