'ip netns exec' выполнение команды с использованием nsid, полученного из 'ip netns list-id'

Хорошо, объяснение, данное ddnomad, верное. Дело в метке времени.

Вот решение:

добавить - mtime = '1970-01-01 00:00:00' в команду tar:

tar --mtime='1970-01-01 00:00:00' -Jcf archive.tar.xz *

Это заставит временную метку содержимого установить фиксированное значение в результате получаются идентичные архивы.

3
29.03.2016, 16:03
1 ответ

Вы должны найти идентификатор родительского процесса для всех nsid, единственный известный мне способ сделать это — проверить все /proc/[0-9]*/ns/net, как указано здесьhttps://serverfault.com/a/900972/205043

# Create netns directory if not exist
mkdir -p /var/run/netns

# Add all process namespaces to netns
for i in /proc/[0-9]*/ns/net; do
  ln -s $i /var/run/netns/proc$(echo $i | cut -d/ -f3)
done

# Remove unassociated network namespaces
for i in $(ip netns | grep ^proc | grep -v id); do
  rm -f /var/run/netns/${i}
done

# Remove children processes
for i in $(ip netns | grep ^proc | awk 'a[$3]++ {print $1}'); do
  rm -f /var/run/netns/${i}
done

# Do some action for each ns (eg. check if there is 1.2.3.4 address exists)
for i in $(ip netns | grep ^proc | awk '{print $1}'); do
  echo -n "$i "
  ip netns exec $i ip addr | grep -c '1.2.3.4'
done

# Remove added namespaces
rm -f /var/run/netns/proc*

В моем случае недавно добавленные nsids выглядят так:

ip netns list-id
nsid 0 (iproute2 netns name: proc26847)
nsid 1 (iproute2 netns name: proc29068)
nsid 2 (iproute2 netns name: proc27483)
nsid 3 (iproute2 netns name: proc27644)
nsid 7 (iproute2 netns name: proc30377)
nsid 9 (iproute2 netns name: proc9606)
nsid 10 (iproute2 netns name: proc15587)
nsid 11 (iproute2 netns name: proc28395)
nsid 12 (iproute2 netns name: proc30729)
nsid 13 (iproute2 netns name: proc29702)
nsid 14 (iproute2 netns name: proc30060)
nsid 15 (iproute2 netns name: proc31698)
nsid 16 (iproute2 netns name: proc3309)
nsid 17 (iproute2 netns name: proc28934)
nsid 18 (iproute2 netns name: proc21272)
nsid 19 (iproute2 netns name: proc921)
nsid 21 (iproute2 netns name: proc32718)
nsid 26 (iproute2 netns name: proc5864)
3
27.01.2020, 21:39

Теги

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