我需要编写一个脚本来备份旧服务器上的数据库并将它们移动到我的新服务器上.我有大约150个,所以需要这个自动化.我发现了这个:
$MysqLdump -u username -p'password' db-name | ssh user@remote.Box.com MysqL -u username -p'password' db-name
这将允许我这样做,但是,它要求我每次运行时都指定一个密码.如何让ssh命令获取密码参数?我试过ssh –help但看不到任何东西.
如果此命令无法接受密码,我可以采用其他方式吗?
解决方法
@H_502_11@ 您想为此使用基于密钥的身份验证.关于这个主题的SF有很多问题,网上有无数的教程可以指导你如何设置这个问题.使用密钥auth不仅可以实现您需要的自动化,而且它也是一种更安全的身份验证方式(假设您在某些时候禁用密码身份验证).
基本步骤是:
>在备份服务器上运行ssh-keygen,作为将要进行备份的用户.这将生成一个密钥对(公共和私有部分)并将它们存储在〜/ .ssh /中.>将公钥复制到正在备份的服务器.公钥文件中应该有一行文本.将该公钥复制/粘贴到您在该服务器上使用的任何用户的〜/ .ssh / authorized_keys中以执行备份.>完成此操作后,您应该能够在不使用密码的情况下从备份服务器连接到旧的数据库服务器.