我用'>'尝试过面料在命令字符串中。它总是给出错误代码2.目前涉及subprocess.call,subprocess.check_output并保持stdout =“filesocket”。不工作。在文件中唯一写入的是mysqldump的USAGE。使用shlex解析'mysqldump -uroot -ppassword数据库table1 table2'
这一切都是因为我不知道来自'date'实用程序的字符串变量的shell脚本。如何获取当前日期并使用它来命名shell脚本中的备份文件。或者如何在python中完成这项工作?
提前致谢。
问候。
答案 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文件。