在下面的expect脚本中,我注意到脚本将在提示输入密码之前发送密码。如何防止这种情况?我可以使用等待声明吗?
#!/usr/bin/expect -f
#set timeout 25
spawn rsync root@14.12.123.82:'/usr/backups /usr/backup-scripts /root/test/' /root/
expect "root@14.12.123.82's password: $"
send "\$xxxxxx\n"
expect "\\$ $
答案 0 :(得分:0)
您甚至不需要使用expect
来执行此任务。根据{{3}},rsync支持直接从文件中读取密码的选项:
rsync --password-file=file_that_password_is_in root@14.12.123.82:'/usr/backups /usr/backup-scripts /root/test/' /root/
或使用环境变量:
export RSYNC_PASSWORD=secret
rsync root@14.12.123.82:'/usr/backups /usr/backup-scripts /root/test/' /root/