Следующий сценарий удара (предупреждение: непротестированный!) перемещает файлы из-под /directory/with/the/files
к под /matched/files
. Только файлы, имя которых (без каталога) находится в /path/to/lookup.file
перемещены. Остерегайтесь этого, если существуют символьные ссылки на каталоги в /directory/with/the/files
, они пересечены рекурсивно, как будто они были самими каталогами.
#!/bin/bash
shopt -s globstar
set -f; IFS=$'\n'
typeset -A filenames
for x in $(cat /path/to/lookup.file); do filenames[$x]=1; done
set +f; unset IFS
cd /directory/with/the/files
for x in ./**; do
if [[ -d "$x/." ]]; then
: # skip directories and symbolic links to directories
elif [[ -n ${filenames[${x##*/}]} ]]; then
# the file is matched, move it under /matched/files
mkdir -p "/matched/files/${x%/*}"
mv "$x" "/matched/files/$x"
else
# the file isn't matched
:
fi
done
Объяснения:
shopt -s globstar
включает **
шарик для пересечения каталогов рекурсивно.set -f; IFS=$'\n'
выключает globbing и устанавливает новые строки как единственного ограничителя слова, так, чтобы неупомянутая замена команды $(cat /path/to/lookup/files)
разделяется в новых строках только.filenames
ассоциативный массив.for x in ./**
заботится это $x
всегда содержит часть каталога (этот путь ${x%/*}
часть каталога $x
, с .
для каталога верхнего уровня), и не начинается -
(таким образом, это не рискует рассматриваться как опцию).${x##*/}
расширяется до части имени файла $x
, т.е. $x
без части каталога.Как бы кто-то справедливо сказал один раз, Нет ничего невозможного в Linux TM , я мог бы достичь KVM на моем хосте с помощью мостальной сети над беспроводным интерфейсом.
Это шаги, которые я следовал, чтобы выполнить то же самое.
Я установил пакет Virt-Manager
для управления установкой больше
эффективно. Я установил его, как показано ниже.
sudo apt-get install virt-manager
Теперь создайте новую сборную , используя GUI GROD Manager, как выделено ниже. Это в основном вспомогательная сеть нашей существующей сетевой сети.
После установки этого новая подсеть , проверьте, есть ли сеть Доступно и Ping некоторые сайты для проверки подключения к сети.
Кроме того, проверьте информацию о маршрутизации с использованием маршрута
команда и сделать
Конечно WLAN0
и Virbr2
не имеет одного и того же места назначения.
Теперь последний шаг для его работы - выдать команду ниже. Здесь 192.168.1.9 - это адрес хоста.
ARP -I WLAN0 -DS 192.168.1.9 WLAN0 PUB
После вышеуказанного шага я смог успешно установить Fedora
Гостевые ОС Использование Virt-Manager
.
Ссылки
http://specman1.wordpress.com/2014/01/02/wireless-bridging-virtual-machines-kvm/ https://superuser.com/questions/694929/wireless- Bridge-On-KVM-Virtual-Machine
Согласно документам KVM, невозможно использовать мост с беспроводной сетевой картой. Я не знаю, почему, хотя я использовал гостевой мост на VirtualBox.
Я потратил несколько часов на то, чтобы выяснить, как подключить гостя к беспроводной сети хоста, и обнаружил, что проще всего это сделать с помощью TAP-устройства. Единственным недостатком этого метода является то, что вы не можете использовать DHCP на гостевой машине, и вам нужно вручную указать IP-адрес из подсети беспроводной сети (, что может вызвать конфликты IP-адресов или неудобства в случае развертывания большого количества виртуальных машин ).
Вот шаги для подключения гостя к беспроводной сети хоста с помощью TAP-устройства:
0/ Включить маршрутизацию IPv4 для ядра Linux
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
1/ Создайте кран-устройство с именем tap0, доступное для пользователя guest (Замените своим именем пользователя )без sudo:
sudo ip tuntap add mode tap tap0 user guest
2/ Назначьте IP-адрес устройству tap0 (Он не обязательно должен принадлежать подсети беспроводной сети):
sudo ip addr add 10.10.10.10/24 dev tap0
sudo ip link set tap0 up
3/ Используйте parprouted
(. Возможно, вам придется установить его )для реализации прокси-арп-моста, который позволяет соединить гостевой Ethernet за беспроводным сетевым адаптером хоста.
sudo parprouted wlan0 tap0
(Замените wlan0 на беспроводной интерфейс вашего хоста)
4/ Добавление некоторых записей в таблицы маршрутизации, чтобы позволить пакетам проходить через концы ответвительного устройства:
sudo iptables -A INPUT -i tap0 -j ACCEPT
sudo iptables -A FORWARD -i tap0 -j ACCEPT
sudo iptables -A FORWARD -o tap0 -j ACCEPT
На госте назначьте статический IP-адрес из подсети беспроводной сети хоста. Например, если ваш wlan0 находится на 192.168.1.0/24, то гость можно настроить с помощью
sudo ip addr add 192.168.1.30/24 dev eth0
(eth0 — сетевая карта вашего гостя)
или навсегда в /etc/network/interfaces с:
auto eth0
iface eth0 inet static
address 192.168.1.30
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.25
Запустите гостевую систему с помощью:
kvm -hda guest.img -m 512 -net nic -net tap,ifname=tap0,script=no
Теперь проверка связи между всеми машинами, подключенными к вашей беспроводной сети, и гостями.