我在Debian的root用户的crontab中使用以下命令.
rsync -vqrlHEAXogDtzhi --log-file=${LOG} --progress --rsync-path="sudo /usr/bin/rsync" --exclude-from=$CONFIG_DIR/excludes -e "ssh -i /home/backups/.ssh/id_rsa" backups@${HOSTNAME}:/ ${BACKUP_DIR}
我得到以下内容:
sudo: no tty present and no askpass program specified
我已经尝试将-t添加到ssh命令中,我得到:
Pseudo-terminal will not be allocated because stdin is not a terminal.
我已经尝试将-t -t添加到ssh命令中,我得到:
protocol version mismatch -- is your shell clean?
我已经向远程盒子上的备份用户添加了一个.hushlogin,并确认我可以使用远程盒子的密钥作为备份ssh而不显示任何内容(登录是静默的).我仍然收到这些消息.
请注意,我可以使用密钥成功地将ssh作为备份到远程机箱.
请注意,我的sudo没有-tt选项.
请注意,在源和目标的/ etc / sudoers文件中设置以下内容:
backups ALL= NOPASSWD:/usr/bin/rsync
请注意,我的/ etc / sudoers文件没有任何引用:
Defaults requiretty
请注意,我不会在命令中回显我的密码.
我怎样才能给这只猫上皮? :|
谢谢
解决方法
有时你会对事情过于刻板.
远程系统上未安装Rsync.
/捂脸