在我的bash shell脚本中,
rsync -a --delete -e "ssh -i /keypath" /source_dir/ username@remotehost:/dest_dir/
上面的[eval,double to single quotes]的任何组合都给出了以下错误,
在remote-shell命令中缺少尾随 - '。 rsync错误:../main.c(335)[sender = 2.6.8]
的语法或用法错误(代码1)但是在命令提示符下直接使用相同的命令。 任何人都可以帮助我在这里失踪
由于
答案 0 :(得分:3)
您的问题在于bash脚本中的嵌入式引号。
请参阅以下解决方案(如果您认为有用,请提供支持):
https://superuser.com/questions/354361/rsync-complaining-about-missing-trailing-in-a-bash-script
答案 1 :(得分:1)
不确定您的问题是什么,但对我来说,大多数奇怪的rsync错误都是由.bashrc
或.bash_profile
(或其他shell rc文件)在登录时输出内容引起的。现在我经常写以下声明为.bashrc
和.bash_profile
中的第一个行:
# return if it's not an interactive shell
[[ $- == *i* ]] || return 0
答案 2 :(得分:0)
一个对我有用的简单解决方案是使用单引号而不是双引号,即
rsync -a --delete -e 'ssh -i /keypath' /source_dir/ username@remotehost:/dest_dir/