Python子进程错误:rsync错误:main.c1407[client = 3.0.6]上的语法或用法错误代码1

问题描述

我正在编写一个Python自动化脚本以通过rsync上传文件。从Bash运行此程序有效

/usr/bin/rsync -av -e “/usr/bin/ssh -i $PATH_TO_SSH_IDENTITY_KEY” $SRC USER@HOSTNAME:/firstparam/secondparam

但是,从Python运行会出现此错误

rsync error: Syntax or usage error (code 1) at main.c(1407) [client=3.0.6]

这是有问题的调用rsync的代码

cmd = ['/usr/bin/rsync','-av','-e',config.ssh_identity,src,config.host + ':/rootpath' + firstparam + '/' + secondparam]
p = subprocess.Popen(cmd,stdout=subprocess.PIPE,stderr=subprocess.STDOUT,shell=True)
(output,err) = p.communicate()

其中

config.ssh_identity = ‘/usr/bin/ssh -i $PATH_TO_SSH_IDENTITY_KEY’
config.host = ‘USER@HOSTNAME’

什么原因导致了错误

解决方法

弄清楚了。根据{{​​3}},我以超级用户身份运行脚本,但不喜欢不是我所说的我(ec2用户)。因此必须将超级用户关联为ec2-user