windows

Windows批处理备份mysql

服务器使用windows2008rc,用批处理写一个mysql的备份脚本,放到Windows计划任务,每天零时执行。

  • 使用mysql自带的 mysqldump 命令备份整个数据库
  • 使用好压的命令行压缩
  • 保留一周备份文件
  • 写入日志

详细代码如下:

@echo off
set "ymd=%date:~,4%%date:~5,2%%date:~8,2%"
set storeDir="F:\databases\%ymd%"
set /A keepFromDay=%ymd%-7

md %storeDir% 2>nul
"E:\xampp\mysql\bin\mysqldump.exe"  -u用户名 -p密码 --lock-tables   --all-databases > %storeDir%\db.sql 2>nul
echo Haozip loading...
cd /d %storeDir%

"C:\Program Files\HaoZip\HaoZipC.exe" a -tzip db.sql.zip db.sql
del /q db.sql

rem del 7 days backup files
@echo off

for /f %%i in ('dir /b ..\') do (
   if %%i LSS %keepFromDay%   (
    echo deleting %%i 
    rd /s /q "F:\databases\%%i" 
   )    
)

echo Finish at  %date% %time%  >> ../backup.log

windows下ftp自动更新

服务器(windows 2008 RC2)迁移到阿里云后, 原来的ftp自动更新脚本(php脚本,使用了ftp模块的函数)出现问题了,连接到海外的FTP服务器(澳大利亚的主机)后,列目录会出错,具体就是ftp_nlist函数执行超时,无法下载文件,具体原因未知。

当前服务器已开通FTP服务,测试用FTP脚本连接本地FTP没有问题的,于是现在解决方案为:
在本地新建一个帐户,想办法用其他方法将海外FTP的文件同步到本地FTP,将FTP脚本的配置修改为本地连接的帐户,使用同步后的文件更新,这样自动更新脚本的逻辑无需更改。