Разрешението за Rsync mkdir е отказано

Опитвам се да използвам "Rsync", за да копирам моята spark директория на всички подчинени машини чрез тази команда:

rsync -avL --progress /path/to/spark-0.9.0-incubating ubuntu@<Public_ip_of_slave>:/usr/local` 

Следвам инструкциите на този сайт:

http://docs.sigmoidanalytics.com/index.php/Setup_hadoop_2.0.0-cdh4.2.0_and_spark_0.9.0_on_ubuntu_aws_cluster"

но се сблъсквам с грешка, която е отказано разрешение за създаване на папки в дестинацията.

може ли някой да ми помогне


person user3789843    schedule 30.06.2014    source източник
comment
имате грешен целеви синтаксис. трябва да е user@host:/some/dir (докато /some/dir може да бъде ~, трябва да избягвате да използвате ~)   -  person mvp    schedule 30.06.2014
comment
Опитах и ​​това, но не работи   -  person user3789843    schedule 30.06.2014
comment
Можете ли да създадете целева директория ръчно в shell, след ssh в отдалечен сървър?   -  person mvp    schedule 30.06.2014
comment
Мисля, че проблемът е, че не притежавах целевата папка, root притежаваше. Така че трябва да използвам командата chown в целевата папка, за да я направя собственик, а не root, но не знам как.   -  person user3789843    schedule 30.06.2014
comment
опитайте се да възпроизведете ръчно какво би направил rsync - тоест ssh в отдалечен сървър и mkdir /path/to/spark-0.9.0-incubating. след това опитайте да създадете файлове в тази директория. ако не можете, значи не можете да rsync   -  person mvp    schedule 30.06.2014
comment
Мога да направя ssh в отдалечен сървър и да създам файл, но как да работя с rsync   -  person user3789843    schedule 30.06.2014


Отговори (1)


Потребителят ubuntu (който използвате за scp) няма подходящите разрешения за директория на /usr/local на отдалечения сървър.

Неправилната конфигурация може да доведе до проблеми със сигурността, така че промяната на разрешението за директория на /usr/local не се препоръчва. Ако искате да го направите, стартирайте:

ssh ubuntu@remote-server 'sudo chown root:ubuntu /usr/local'

където remote-server е името на хоста или IP на отдалечения сървър и се приема, че ubuntu е администратор. Можете също така да разрешите на всички останали да пишат в директорията:

ssh ubuntu@remote-server 'sudo chmod o+w /usr/local'

но това е по-опасно от предишния вариант.

Като алтернатива можете първо да го копирате в началната си директория, след което да подадете команда sudo, за да преместите файловете в /usr/local:

rsync -avL --progress /path/to/spark-0.9.0-incubating ubuntu@remote-server:~
ssh ubuntu@remote-server 'sudo mv ~/spark-0.9.0-incubating /usr/local'

~ ще бъде разширен до началната директория на потребителя, която в този случай вероятно ще бъде /home/ubuntu/.

Не забравяйте да промените разрешенията на /usr/local/spark-0.9.0-incubating, както е подходящо, за да позволите достъп на оторизирани потребители с помощта на командата chmod.

person craidz    schedule 26.04.2017