在使用自动非交互式 python 脚本编译后,我需要将两个程序从一台服务器复制到另一台服务器。密钥不是一个选项,因为此脚本适用于公司服务器上的多个用户,并且需要密钥和密码。密码不会存储在程序中,而是在程序开始时使用 getpass() 询问一次,然后用于两次 SCP 传输,这样用户就不必为每个 scp 调用输入密码。我正在使用 os.system 调用 scp:
os.system("/usr/bin/scp %s %s@server:directory" %(prg, uname))
os.system("/usr/bin/scp %s %s@server:directory2" %(prg2, uname))
scp 是为另一个程序定义的,因此是 /usr/bin/scp。prg/prg2 是程序的位置,uname 是远程服务器上的用户名。
我尝试使用管道输入密码,如此处所述,但它不起作用。
我无法安装 sshpass、expect、paramiko 或 fabric,也无法使用未安装在接收服务器上的 rsync b/c。我能做些什么来自动化这个吗?
我正在运行 AIX 6.1、Python 2.6.2
更新:我无法安装外部库,例如 pexpect,因为 AIX 在 python 安装目录中没有 /config 文件夹。解决方法是为 AIX 安装 python-devel,但我无法安装程序,所以我仍然卡住了。
更新 2:我决定放弃 SCP 以支持 FTP。我结合使用了这个和这个来制作我的 FTP 脚本。感谢您的回答和帮助指导我。