AFAIK, потому что вся разработка для XP закончилась, не будет инструментом, созданным или бэкпортированным для управления Hyper-V.
Вы могли создать VM с Win7 для Виртуального ПК, который будет работать на Xp.
Вы не делаете. rsync не может сделать этого для Вас, это - собственный протокол и не работает по FTP.
Вы могли бы, однако, хотеть попробовать csync. IIRC это обеспечивает подобное rsync поведение по HTTP. Я не могу прокомментировать, работает ли это по FTP, необходимо будет попробовать его.
Установите sftp, и затем можно использовать rsync.
Я использую следующий.
rsync --delete --times --recursive --perms --owner --group --verbose --progress --stats -e ssh root@192.168.0.100:/folder1/ /folder2/
Я не полагаю, что Вы сможете сделать это, сервер, к которому Вы пробуете к Rsync, будет только иметь выполнение FTP-сервера, это не поймет команды, что Rsync отправляет его.
Если причина, которую Вы хотите сделать, это - то, что у Вас только есть доступ к порту 21, но Вы имеете контроль над сервером, можно измениться, порт Rsync слушает на на сервере, но это очевидно только полезно, если Вы не хотите использовать FTP на том порте.
Это походит на хорошее и свободное соответствие: https://savannah.gnu.org/projects/ftpsync/
rsync не работает по ftp. На удаленной стороне этому нужны или rsync демон или в оболочка, от которой это может назвать rsync. Ftp обычно позволяет Вам называть несколько команд, и rsync не является одним из них. Существуют другие инструменты, предназначенные для автоматизации задач ftp как "lftp".
rsync не собирается работать на Вас по причинам, которые упомянули другие. Однако lftp и ncftp оба имеют "зеркальные" режимы, которые, вероятно, удовлетворят Ваши потребности.
Я использую это для продвижения материала от моего локального каталога до ftp или sftp веб-хоста:
lftp -c "set ftp:list-options -a;
open ftp://user:password@your.ftp.com;
lcd ./web;
cd /web/public_html;
mirror --reverse --delete --use-cache --verbose --allow-chown
--allow-suid --no-umask --parallel=2 --exclude-glob .svn"
Существует weex...
Weex является утилитой, разработанной для автоматизации задачи удаленного поддержания веб-страницы или другого архива FTP. Это будет синхронизировать ряд локальных файлов с удаленным сервером путем выполнения загрузок, и удаленный удаляет как требуется.
Решение S Jonas может быть полезным в зависимости от обстоятельства, например, если у Вас есть высокая скорость загрузки и медленная загрузка, проверяя, что файлы на сервере могли бы быть относительно быстрее, чем загрузка файлов излишне.
Вы, вероятно, хотите использовать CurlFTPFS, хотя: http://packages.ubuntu.com/search?suite=default§ion=all&arch=any&searchon=names&keywords=curlftpfs
Хотя, обычно, лучше использовать постоянный клиент FTP в целом вместо rsync.
Как записано мольбертом, lftp
хороший инструмент.
Я предлагаю, чтобы Вы параметризовали сценарий и использовали
exclude-glob
опции, который исключает имена файлов, использующие функцию шарика (*?..) Вашей оболочки:
#!/bin/bash
HOST="your.ftp.host.dom"
USER="username"
PASS="password"
FTPURL="ftp://$USER:$PASS@$HOST"
LCD="/path/of/your/local/dir"
RCD="/path/of/your/remote/dir"
#DELETE="--delete"
lftp -c "set ftp:list-options -a;
open '$FTPURL';
lcd $LCD;
cd $RCD;
mirror --reverse \
$DELETE \
--verbose \
--exclude-glob a-dir-to-exclude/ \
--exclude-glob a-file-to-exclude \
--exclude-glob a-file-group-to-exclude* \
--exclude-glob other-files-to-exclude"
Предупреждение: удостоверьтесь, что целевой каталог существует, иначе команда CD перестанет работать, таким образом, операция включая удаление деревьев файлов произойдет в неправильном каталоге (корень)!
Я обновил сценарий так, чтобы --delete
опция отключена defaut, включите его путем некомментария DELETE= command
.
Используя “sitecopy” или “зеркало” может сохранить Вас много пропускной способности.
Они оба обрабатывают эффективное инкрементное обновление.
В зависимости от того, что Вы на самом деле пытаетесь сделать, другой совершенно другой подход мог быть использованием curlftps
смонтировать папку ftp, и затем возможно, rsync
две "локальных" папки.
Установка отличается в зависимости от Вашего дистрибутива, таким образом, я не могу сделать вывод на этом, но необходимо установитьfuse
и curlftpfs
(пролил Debian уже имеет fuse
установите по умолчанию), затем:
sudo apt-get install curlftpfs
Удостоверьтесь fuse
модуль загружается (modprobe fuse
)
sudo curlftpfs ftp.yourserver.com /path/to/ftp/folder/ -o user=username:password,allow_other
Обратите внимание, что нет никакого пространства после последней запятой (это не опечатка!). Если Вы удовлетворены этим или не хотите делать тот каждый раз, когда можно добавить его к fstab (обычно в /etc/fstab
):
curlftpfs#user:password@ftp.yourserver.com /path/to/ftp/folder/ fuse auto,user,uid=1000,allow_other 0 0
В этом случае необходимо удостовериться, что модуль предохранителя загружается прежде.
Следует иметь в виду хотя двух вещей:
curlftpfs
мог перестать работать (возможно, можно сделать что-то с .netrc
).Если Вы хотите автоматизировать задачу, затем используют lftp, поскольку можно создать сценарий, поскольку некоторые люди отправили выше, можно написать сценарий всего этого действительно легко к симпатии, если поиск одного решения времени (т.е. Вы должны загрузить весь веб-сайт через ftp / перемещается, это к другому серверу) используют ncftp, его простое, устанавливают его если не уже установленный:
apt-get install ncftp
или
yum install ncftp
(извините не debian/red основанные на шляпе дистрибутивы..)
после того, как установленные, открытые ncftp в терминале затем вводят:
open -u ftpusername ftp.thedomain.com
Это попросит у Вас пароля, ввести его, и затем:
get -R /home/remotewebsite/public_html/ /home/localwebsite/public_html/
Это сделает остальных pf работа для Вас..удачи
Я использую GVFS / FTP. Я монтирую свои удаленные FTP-серверы с жиголо. Поскольку они рассматриваются как локальные каталоги, почти все, что работает с локальными файлами, работает. rsync предназначен для удаленного вычисления хэшей файлов для сравнения файлов без их передачи, но при этом с виртуальными файлами файлы все равно передаются. unison и freefilesync обычно работают хорошо, но я столкнулся с проблемой, когда они захотели переименовать загруженный вами файл, без проблем с загрузкой. Это могло быть проблемой с gvfs 1.6.1.
Вы можете использовать curlftpfs для монтирования ftp и использовать rsync после http://linux.die.net/man/1/curlftpfs
Также есть wput:
wput --timestamping --reupload --dont-continue source-files ftp://target.host/dir
Имя пользователя и пароль считываются из ~ / .netrc. В противном случае, если вас не особенно беспокоит безопасность, вы можете указать их как (скрытые)
Для этого я сделал собственный инструмент командной строки: ftpsync
Почему? Поскольку это просто и элегантно, для других инструментов требуется множество зависимостей, иногда компиляция, иногда не работает (например, lftp на MacOs High Sierra). Ftpsync написан на чистом Python, не требует сторонних библиотек и имеет небольшой размер, вы можете просто включить файл в свой проект.
Использование: cd в каталог вашего проекта и введите:
ftpsync user:pass@ftp.address.url/remote/dir --delete
- delete
означает удаление удаленных файлов, которые не существуют локально.
Если вы не хотите синхронизировать, а просто запускаете необработанную команду ftp, используйте:
ftpsync -c '...'
Это полезно для некоторых простых операций, таких как отправка файла и его переименование:
ftpsync -c 'PASV; TYPE I; STOR some_file.ext; RNFR some_file.ext; RNTO some_file_renamed.ext'
rclone - хорошая программа, которая выполняет синхронизацию каталогов по ftp и многим другим протоколам, включая провайдеров облачных хранилищ (Amazon S3, Dropbox, Google Drive). Она может синхронизироваться с/из любой комбинации локального или удаленного хранилища.
Для настройки удаленного ftp
следуйте этим инструкциям .
После этого синхронизация выполняется следующим образом:
rclone sync /home/dir FTP_REMOTE:/home --progress