Gra*_*per 2 php mysqldump windows-7
我有这行PHP备份我的数据库,工作就像一个魅力(Windows 7):
$exec_str = "{$real_path}Bin\mysqldump -h {$mysql_db_host} -u {$mysql_db_user} -p{$mysql_db_pasw} {$db_name} > {$backupdir}\\{$db_name}.sql";
Run Code Online (Sandbox Code Playgroud)
但我宁愿让.zql文件用7zip压缩(作为7z)
这个不起作用(7za.exe的路径是正确的)而是生成空的7z文件:
$exec_str = "{$real_path}Bin\mysqldump -h {$mysql_db_host} -u {$mysql_db_user} -p{$mysql_db_pasw} {$db_name} | {$real_path}7za a > {$backupdir}\\{$db_name}.sql.7z";
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我成功使用7z来压缩mysqldump(Windows Server 2008 R2)的输出,但我使用了命令行批处理文件和自动化任务.另外,我刚使用7z.exe,而不是7za.
请注意,从Windows命令终端执行以下命令,即Start-> Run-> cmd
我为自动化任务创建了一个批处理文件,用于运行内容:
mysqldump -u<mysqlUserName> -p<mysqlPassword> <schemaName>|7z.exe a -si<nameInZip> <zippedPathAndName.7z>
Run Code Online (Sandbox Code Playgroud)
这将创建mysqldump的.7z文件.[ - si]开关指定从StdIn获取输入."nameInZip"就是您想要在zip文件中出现的内容; 我做了我的"schemaName".sql.
注意:这假定mysqldump和7z可执行目录位于%PATH%Environment变量中.否则使用二进制文件的完整路径,例如c:\ program files\7-zip\7z.exe而不仅仅是7z.exe
然后我创建了一个自动化任务:
schtasks /create /sc DAILY /tn <yourTaskName> /ru System /tr <pathToYourBatchFile> /st 20:45
Run Code Online (Sandbox Code Playgroud)
这将创建一个自动化任务,每天20:45运行您的批处理文件.请注意"/ ru System"开关,它确保命令由SYSTEM运行,无论您是否登录都将运行.
请参阅此处以获取schtasks命令的良好参考.
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
7218 次 |
| 最近记录: |