我知道我想做什么,但我无法弄明白.
我想ssh到远程Web服务器,执行命令来转储数据库,然后关闭该数据库.
更复杂的是,我这样做是为了一个网格服务器,所以ip地址并不总是一样的.
我脑子里有以下想法,但需要调整才能让它起作用:
!/bin/bash
ssh root@server.com
mysqldump -uroot -pxxxxx mydb > mydb.sql
mv mydb.sql /var/www/site/httpdocs/public_folder
wget www.site.com/mydb.sql
Run Code Online (Sandbox Code Playgroud)
任何想法如何使这项工作?或者也许有一种方法(在同一个脚本中)我可以将其scp下来?
ssh root@server.com "mysqldump -uroot -pxxxxx mydb" > mydb.sql
Run Code Online (Sandbox Code Playgroud)
这将ssh到您的服务器并在那里执行mysqldump.输出将STDOUT通过SSH会话传输并转储到本地文件中mydb.sql.
这里唯一的要求是基于密钥的ssh身份验证,否则你会被要求输入不太自动化的密码......
至于您的方法,您永远不应该将数据库转储放入一个世界可读的webroot.这只是尖叫主要的安全问题.此外,您可能不应该使用mysql root帐户进行大部分工作.改为创建一个新的(受限制的)数据库用户.通常,您应该始终尽量减少权限,以避免恶意利用您的系统.
| 归档时间: |
|
| 查看次数: |
2842 次 |
| 最近记录: |