在下面的期望脚本中,我注意到脚本会在提示输入密码之前发送密码。如何防止这种情况?我可以使用等待声明之类的吗?
#!/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 "\\$ $
在下面的期望脚本中,我注意到脚本会在提示输入密码之前发送密码。如何防止这种情况?我可以使用等待声明之类的吗?
#!/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 "\\$ $
您甚至不需要expect
用于此任务。根据手册页,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/