问题描述
我正在编写一个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]
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