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

标签 linux ssh mysql

我正在尝试使用 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 文件中,这样我就可以 在后台执行而不提示/或定义 命令中的密码?

非常欢迎提供解决上述问题的示例。

我相信可以使用 expect() 对话框,但同样 - 我不熟悉它,它的文档让我有点困惑。

最佳答案

我想 ssh 连接需要密码,所以你可以让你的 ssh 连接无密码。

在答案中解释了无密码 ssh 连接: https://serverfault.com/questions/241588/how-to-automate-ssh-login-with-password

在您的远程服务器上完成此步骤后,剩下的就非常简单了,您可以在 .sh 文件中编写上面给出的命令。并将其添加到 cron 以定期执行此备份。

关于linux - ssh mysqldump 到远程 nas 存储,使用 cron 在 .sh 文件中存储命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14295485/

相关文章:

sql-server - dockerfile 如何将 SQL Server 公开为本地主机?

linux - Cron 作业 wget 将文件写入服务器?

Android SSH 示例代码

MySQL 选择计数和行计数

android - 在 Android 中,我可以在没有用户提示的情况下以编程方式将我的应用程序添加到 superuser.apk 列表吗?

linux - 每次执行 bash 脚本时执行不同的任务

linux - SSH本地端口转发无法从外部访问

Mercurial:远程:中止:这里没有 Mercurial 存储库(未找到 .hg)!

mysql - 网络爬虫可以自动将找到的 URL 添加到 MySQL 数据库吗?

php 从 mysql 中选择并接收数据类型