Копирование rsync не удается ("нет такого файла или каталога")

Следующий sed сценарий предполагает, что разделителем полей является пробел. Если это табуляция, измените пробел в обеих командах s/// sed на \t.

В первой строке добавлено id, во второй и последующих строках добавлено $num.

$ num=1
$ sed -e "1 s/$/ id/ ; 2,$ s/$/ $num/" input.txt 
A B C D E id
2 79 56 SD L 1
1 09 67 JK S 1
9 60 37 KD G 1
0 10 47 SO E 1
4
15.12.2018, 14:22
4 ответа

Вам необходимо добавить сведения о соединении, например. для использования SSH --rsh=ssh.

Попробуйте:

rsync -avzP --rsh=ssh username@ip.address:/public_html/abc/ /www/abc

И убедитесь, что пути указаны правильно. Являются ли эти пути абсолютными или относительными :/public_html/abc/, /www/abc?

3
27.01.2020, 20:53

Сначала убедитесь, что у пользователя ssh есть права на запись в эту папку,

/www/abc 

выполните эту команду ниже

rsync -avzP -e ssh /www/abc user@destinationFolderPath

Примечание

  • -v "подробный" (-vv предоставит более подробную информацию)
  • -e «параметры ssh» -указать ssh как удаленную оболочку
  • -a -«архивный режим» -он сохраняет разрешения (владельцев, групп ), время, символические ссылки и устройства
  • -z сжимать данные файла во время передачи
  • -P показать прогресс во время передачи

СМИИВ

-1
27.01.2020, 20:53

Ошибка возникает из-за того, что в удаленной системе нет каталога /public_html/abc.

Согласно комментариям , исходный каталог фактически находится в домашнем каталоге пользователя, а не по пути /public_html.

Поэтому:

rsync -avzP username@ip.address:public_html/abc/ /www/abc

Здесь мы обращаемся к public_html/abcв домашнем каталоге пользователя, а не в корне файловой системы.


Предупреждение stdin: is not a ttyисходит из того факта, что файл запуска вашей оболочки для интерактивных оболочек вызывается на удаленном хосте (ваш файл ~/.bashrc, если вы используете bash), и вы что-то делаете в это то, что требует терминала.

Вы можете отредактировать файл запуска оболочки на удаленном компьютере и вставить следующее ближе к началу:

[ ! -t 0 ] && return

Это остановит выполнение, например. ~/.bashrcв этот момент для всех сеансов оболочки, чьи стандартные входные потоки не подключены к терминалу.

5
27.01.2020, 20:53

При использовании урезанных образов Docker SSH не всегда устанавливается, что также приводит к этой ошибке:

apt-get install openssh-client

0
27.01.2020, 20:53

Теги

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