Вот bash/ksh93/zsh сценарий, который эмулирует базовое поведение rsync, где можно легко настроить решение скопировать или не скопировать исходный файл. Здесь копия сделана, только если исходный файл и больше и более новым. В ударе добавить shopt -s globdots
перед сценарием. Непротестированный.
target=/path/to/destination
cd source-directory
skip=
err=0
for x in **/*; do
# Skip the contents of a directory that has been copied wholesale
case $x in $skip/*) continue;; *) skip=;; esac
if [[ -d $x ]]; then
# Recreate source directory on the target.
# Note that existing directories do not have their permissions or modification times updated.
if [[ -e $target/$x ]]; then continue; fi
skip=$x
if [[ -e $target/$x ]]; then
echo 1>&2 "Not overwriting non-directory $target/$x with a directory."
err=1
else
# The directory doesn't exist on the destination, so copy it
cp -Rp -- "$x" "$target/$x" || err=1
fi
elif [[ -f $x ]]; then
# We have a regular file. Copy it over if desired.
if [[ $x -nt $target/$x ]] && [ $(wc -c <"$x") -gt $(wc -c <"$target/$x") ]; then
cp -p -- "$x" "$target/$" || err=1
fi
else
# neither a file nor a directory. Overwrite the destination
cp -p -- "$x" "$target/$x" || err=1
fi
done
Я не полагаю, что это - возможные гости Windows использования. Я обычно устанавливаю сервер Samba на хосте KVM Linux и затем совместно использую папку с помощью этого для моих гостей KVM.
Документация относительно совместного использования каталога хоста KVM с гостями KVM (Linux) доступна здесь на веб-сайте virt-менеджера. Страница названа: Пример, Совместно использующий файлы Хоста с Гостем.
Веб-сайт linux-kvm также содержит направления для установки Samba. Та документация доступна здесь, названная: Подсказка: Как можно совместно использовать файлы на Хосте Linux с Windows Guest с помощью Samba.
Предположим, что у вас есть Win.img в качестве "сырого" образа, он эмулируется в виде диска. Шаг 1: Найдите смещение вашей файловой системы (поскольку это диск) с помощью fdisk:
Теперь рассчитайте смещение = 63 x 512 = 32256
C:\>nslookup -type=PTR 254.19.46.207.in-addr.arpa Non-authoritative answer: 254.19.46.207.in-addr.arpa name = wwwbaytest2.microsoft.com
Шаг 2: смонтируйте его
ВНИМАНИЕ
dig -x x.x.x.x
Вы можете смонтировать его RW, и таким образом Linux сможет записать на него, [11604]но[11605] ваша файловая система будет повреждена! Потому что и Linux, и Windows обращаются к файловой системе в ВРЕМЯ РАЗРЕШЕНИЯ! Они могут выделять одни и те же свободные блоки для записи файлов, которые они хотят записать!
Чтение под Linux не является стабильным, в редких случаях
При таком методе файловая система безопасна, и в основном нормально иметь стабильное чтение. Однако, как я уже говорил, они получают доступ к файловой системе одновременно, и таким образом Когда windows пытается что-то написать, Linux может не быть информирован, и, таким образом, прочитать что-то поврежденное. Однако, если вы используете его внимательно, чтение должно быть очень стабильным..
Думаю, @slm дал лучший ответ. КАК КАК, есть еще один вариант использования. Этот вариант, однако, немного хакерский.
Грубое руководство. Не принимайте во внимание эти окончательные команды:
Это не идеально, но может работать, если ваша гостевая ВМ не разрешает соединения сетевого протокола между dom0 и Guest (например, во время закрытого VPN сеанса).
Больше информации здесь:
Решение Энди сработало для меня, хоста Debian и гостя Windows. Обратите внимание, что у меня установлены инструменты spice -guest -со специальным сетевым драйвером от RedHat.
Кроме того, пришлось снять защиту паролем через smb Вот по той ссылке нашел как снять парольhttps://pureinfotech.com/setup-network-file-sharing-windows-10/
Файловые менеджеры по умолчанию для среды рабочего стола Gnome и KDE могут легко получить доступ к общим ресурсам Windows с помощью протокола SMB.
Вам не нужно устанавливать сервер Samba на хост-машине Linux , потому что Windows O.S. уже идет со встроенными протоколами связи самбы.
Допустим, ваш гость О.С. это « Windows XP », например, выберите папку, к которой вы хотите предоставить общий доступ, или просто создайте ее для этой цели, например "hostshare" и щелкните его правой кнопкой мыши -> " свойства " -> " общий доступ " Вкладка -> ] выберите: « Поделиться этой папкой в сети » и « Разрешить сетевому пользователю изменять мои файлы ».
На этом этапе убедитесь, что брандмауэр Windows предоставляет доступ к общим файлам и ресурсам принтера. Перейдите в « меню запуска » -> « настройки « -> » Панель управления » -> " брандмауэр Windows " -> " Исключения " Вкладка -> выберите: -> " Файл и общий доступ к принтеру ».
Убедитесь, что хост-машина Linux видна гостю Windows V.M. через сеть. Итак, из командной строки Windows введите: ping 10.0.0.12
, где в данном случае (в качестве примера) «10.0.0.12» - это IP-адрес хоста; вы должны изменить его на свой собственный. Если у вас нет ответов эха, вам придется заняться устранением неполадок.
И сделайте то же самое из командной строки Linux: ping -c3 192.168.122.216
, где эти числа (в качестве примера) принадлежат виртуальному IP-адресу, назначенному гостевому виртуальному компьютеру; вы должны изменить его на свой собственный.
Чтобы получить IP-адрес Windows, выполните следующую команду: ipconfig
Чтобы получить IP-адрес Linux, выполните следующие команды:
$ ifconfig
$ ip a
$ ip r
$ hostname -I
$ hostname -i
На хост-машине Linux откройте « Nautilus » и перейдите в « Файл » -> « Подключиться к серверу » -> В поле типа « Адрес сервера » : smb: //192.168.122.216
-> « Connect ».
Откроется окно Nautilus с доступными для просмотра ресурсами вашего встроенного в Windows сервера Samba. Вы сможете увидеть и получить доступ к содержимому папки Windows " hostshare ". Это все!
Я использую Dokany + Win -SSHFS для монтирования удаленных папок по ssh. Пусть играют в догонялки -а не наоборот < злобная ухмылка >
теперь мы можем использовать инструменты для специй . установить spice -webdavd в гостевой системе Windows