用于创建新SQL转储的Shell脚本

时间:2014-07-15 16:12:55

标签: mysql macos bash shell sh

我目前正在使用MAMP pro,我想创建一个简单的终端脚本(或PC上的.bat文件),它允许我创建一个sql转储(我进入并预先配置数据库名称)和它自动创建.sql文件。

这是我目前所知道的:

1:脚本应首先访问cd /applications/MAMP/library/bin

2:当它在该目录中时,它应该运行以下

./mysqldump -u root -p databaseName > /Applications/MAMP/htdocs/website/db.sql

最后,在该目录中,当我单击脚本时,它不应该替换旧文件,而是创建一个新文件,可能只需添加日期或后面的整数。

这可能吗?

抱歉,我不知道这样做的最好方法。

提前致谢。

3 个答案:

答案 0 :(得分:2)

你可以拥有:

#!/bin/sh
TS=$(exec date '+%s')
cd /applications/MAMP/library/bin && \
    ./mysqldump -u root -p databaseName > "/Applications/MAMP/htdocs/website/db.$TS.sql"

它会以db.(timestamp).sql

的形式创建文件

如果您想要其他表单,只需更改date命令即可​​。 '+%s'指定要生成的格式,即时间戳。您可以使用date --helpman date查看其他格式。

答案 1 :(得分:1)

只是另一个答案的变体(投票给它!)。您无需更改目录即可执行mysqldump

#!/bin/bash
TS=$(exec date '+%s')
/applications/MAMP/library/bin/mysqldump -u root -p databaseName \
                  > "/Applications/MAMP/htdocs/website/db.$TS.sql"

请注意,您同时拥有/Application/application个目录。根据您的FS区分大小写,这可能是错误。

答案 2 :(得分:1)

您使用的是OSx吗?

#!/bin/bash
cd /applications/MAMP/library/bin && mysqldump -u root -p databaseName >   /Applications/MAMP/htdocs/website/db.sql

在此之后,您需要为脚本设置权限:

chmod +x your_script_file

现在,您可以致电...

./your_script_file

sh yout_script_file

如果要替换旧文件,此命令将执行此操作,因为新文件名与旧文件名相同