自动化:将mysqldump转换为按备份日期/时间命名的文件的脚本

时间:2012-02-27 08:41:43

标签: python automation backup mysqldump

我用'>'尝试过面料在命令字符串中。它总是给出错误代码2.目前涉及subprocess.call,subprocess.check_output并保持stdout =“filesocket”。不工作。在文件中唯一写入的是mysqldump的USAGE。使用shlex解析'mysqldump -uroot -ppassword数据库table1 table2'

这一切都是因为我不知道来自'date'实用程序的字符串变量的shell脚本。如何获取当前日期并使用它来命名shell脚本中的备份文件。或者如何在python中完成这项工作?

提前致谢。

问候。

3 个答案:

答案 0 :(得分:2)

您可以使用以下语法获取过时的自定义日期。

CUSTOM_DATE=$(date "+%Y-%m-%d_%H_%M_%S")

实现此目的的最简单方法是在远程端放置一个执行“一切”

的脚本
#!/bin/bash

CUSTOM_DATE=$(date "+%Y-%m-%d_%H_%M_%S")
mysqldump -u admin -p password database table1 table2 >/path/to/backups/mysqldump.${CUSTOM_DATE}.db

答案 1 :(得分:1)

“如何获取当前日期并使用它来命名shell脚本中的备份文件。或者我如何在python中完成此操作?”

from datetime import datetime

filename = 'mysql_backup_{0:%Y%m%d_%H%M}.sql'.format(datetime.now())

# filename == 'mysql_backup_20120227_0952.sql'

答案 2 :(得分:0)

来自相关stackoverflow post的答案。

Microsoft Windows 中,在CMD中运行以下命令

mysqldump -u USERNAME -pYOURPASSWORD --all-databases > "C:/mysql_backup_%date:~-10,2%-%date:~-7,2%-%date:~-4,4%-%time:~0,2%_%time:~3,2%_%time:~6,2%.sql"

输出文件看起来像,

  

mysql_backup_21-02-2015-13_07_18.sql

如果要自动执行备份过程,则可以使用Windows任务计划程序,并将上面的命令放在.bat文件中 - 任务计划程序将以指定的时间间隔运行.bat文件。