По какой-то причине я хочу запустить сценарий для перемещения файлов с машины Linux на Windows. Я установил cwRsync на свой компьютер с Windows и могу подключиться к компьютеру с Linux.
Когда я выполняю следующую команду:
rsync -e "ssh -l "piyush"" -Wgovz --timeout 120 --delay-updates --remove-sent-files /usr/local/src/piyush/sync/* "piyush@10.0.0.60:/cygdrive/d/temp"
Где 10.0.0.60 - моя машина с вдовами, и я запускаю указанную выше команду в Linux - CentOS 5.5.
После выполнения команды я получаю следующее сообщение об ошибке:
ssh: connect to host 10.0.0.60 port 22: Connection refused
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(463) [sender=2.6.8]
[root@localhost sync]# ssh uniken@10.0.0.60
ssh: connect to host 10.0.0.60 port 22: Connection refused
Я изменил настройки брандмауэра на вдовах, чтобы разрешить все порты. Я думаю, что эта проблема связана с тем, что на моем компьютере с Windows нет SSH Daemon. Поэтому я попытался установить OpenSSH на свой компьютер и запустить ssh-agent, но это не помогло.
Я пробовал запустить аналогичную команду на моей машине вдовы, чтобы вытащить файлы из Linux, и она отлично работает. По какой-то причине мне нужна команда для Linux-машины, чтобы я мог встроить ее в сценарий оболочки.
Можете ли вы предложить мне, если я что-то упускаю.
У меня уже установлен cwRsync на моих вдовах и я запускаю его в режиме демона с помощью опции --damemon. И я могу войти в систему с помощью ssh с машины Windows на машину Linux.
Когда я запускаю следующую команду, она просто блокируется на 120 секунд (тайм-аут, который я указал в команде) и выходит, говоря, что есть тайм-аут.
rsync -e "ssh -l piyush" -Wgovz --timeout 120 --delay-updates --remove-sent-files /usr/local/src/piyush/sync/* "piyush@10.0.0.60:/cygdrive/d/temp"
После запуска rsync на вдовах проверил, работает rsyc. И настройки брандмауэра widows установлены на минимальное значение, а на компьютере Linux остановлена служба iptables, чтобы порт 873 (порт rsync по умолчанию) не был заблокирован.
В чем может быть возможная причина того, что машина Linux не может подключиться к rsync-daemon на машине Windows?
Пиюш, rsync в режиме демона поддерживает подключение по протоколу rsync, а не только по протоколу ssh.
Изменить:
rsync -e "ssh -l piyush" -Wgovz --timeout 120 --delay-updates --remove-sent-files /usr/local/src/piyush/sync/* "piyush@10.0.0.60:/cygdrive/d/temp"
кому:
rsync -Wgovz --timeout 120 --delay-updates --remove-sent-files /usr/local/src/piyush/sync/* rsync://piyush@10.0.0.60:/cygdrive/d/temp
cwRsync:
Rsync обычно использует ssh для связи. Не требует особых привилегий для установки. Однако у вас должна быть работающая система ssh.
Я полагаю, у тебя этого нет. Я могу рекомендовать cygwin (делать ssh-host-config
после установки). Однако это часто бывает непросто (воспринимается как).
Вы также можете использовать rsync
демон.
rsync --daemon
пока) на машине windowspiyush@10.0.0.60:/some/real/path
использовать, например, piyush@10.0.0.60::somemodule/subpath/file.txt
некоторый фон: http://www.itefix.no/i2/node/10650