我需要编写一个脚本来备份我的旧服务器上的数据库,并将它们移到我的新服务器上。 我有150左右,所以需要这个自动化。 我发现这个:
$ mysqldump -u username -p'password' db-name | ssh [email protected] mysql -u username -p'password' db-name
这将允许我这样做,但是,这需要我每次运行时都指定一个密码。 我怎样才能使ssh命令取得一个密码参数? 我试过ssh --help但是什么都看不到。
如果这个命令不能接受密码,我可以用另一种方式吗?
你想使用基于密钥的身份validation。 关于这个主题的SF有几十个问题,以及networking上无数的教程,可以引导你如何获得这个设置。
不仅将使用密钥authentication允许您需要的自动化,但它也是一个更安全的身份validation手段(假设您在某个时候禁用密码身份validation)。
基本步骤是:
ssh-keygen ,作为将执行备份的用户。 这将生成一个密钥对(公共和私人部分)并将其存储在~/.ssh/ 。 ~/.ssh/authorized_keys中以执行备份。 您需要设置基于密钥的身份validation。 使用计算机上的私钥文件和接收方授权代理下列出的匹配公钥文件,您可以在不input密码的情况下使用sshlogin。