ssh mysqldump到远程nas存储,使用cron存储.sh文件中的命令

时间:2013-01-12 16:44:58

标签: linux ssh mysqldump

我正在尝试使用cron设置mysql数据库备份,以便将mysql数据库备份到我的本地NAS存储。我想将命令存储在服务器上的.sh文件中,然后使用cron执行它。

到目前为止,我已经设法从远程服务器获取命令将数据库保存到我的NAS(QNAP),这是:

mysqldump 
--add-drop-table 
--comments [database_name] 
-u [database_username] 
-p[database_password] | 
gzip -c | 
ssh [nas_user]@[nas_ip_address] 
    "cat > /share/mysqlBackup/backup-`date +%Y-%m-%d_%H-%M-%S`.sql.gz"

以上工作正常,但我遇到的问题是:

  1. 我不确定如何在远程服务器上创建.sh文件并放入

  2. 中的命令
  3. 此命令每次都要求输入密码 执行它 - 有没有办法把它放在.sh文件中,以便我可以 在后台执行而不提示/或定义 命令中的密码?

  4. 如何解决上述问题的例子非常受欢迎。

    我相信可以使用 expect()对话框,但是再次 - 我不熟悉它,它的文档对我来说有点混乱。

1 个答案:

答案 0 :(得分:2)

我猜密码被要求ssh连接,所以你可以使你的ssh连接无密码。

这里的答案是无密码ssh连接: https://serverfault.com/questions/241588/how-to-automate-ssh-login-with-password

在远程服务器上完成此步骤之后,您可以非常直接地在.sh文件中编写上面给出的命令。并将其添加到cron以定期备份。