1.背景
服务器代码数据的安全备份是确保业务连续性的重要措施之一。尤其是在开发和测试环境中,数据的频繁变动更需要及时的备份,以防止服务器掉电导致意外的数据丢失。通过WinSCP工具结合脚本和Windows的定时任务,我们可以在云电脑上实现服务器的定期自动备份。
2.WinSCP脚本解释
以下是用于备份服务器数据的WinSCP脚本示例:
option echo off
option batch continue
option confirm off
option transfer binary
option synchdelete on
open sftp://<username>:<password>@<server_address>:<port>
cd /dev/project/rdma/xiam4/sim/bt/qp_manager_bt
lcd e:\backup\bt
synchronize -filemask="|output/;*.log;*.so" local
cd /remote_backup_folder
lcd e:\backup\it
synchronize -filemask="|output/;*.log;*.so" local
close
exit
(1)基本选项配置
option echo off
: 关闭脚本回显,保持输出的简洁。
option batch continue
: 在批处理模式下,遇到错误继续执行脚本。
option confirm off
: 关闭所有操作确认,确保脚本能自动执行。
(2)传输模式
option transfer binary
: 使用二进制模式进行文件传输,避免因文本格式差异导致文件损坏。
(3)同步删除
option synchdelete on
:启用同步删除功能,在本地删除服务器上已删除的文件,保持本地备份和服务器端一致。
(4)连接服务器
open sftp://<username>:<password>@<server_address>:<port>
: 通过SFTP连接到服务器,使用特定的用户名和密码以及指定的IP和端口。
(5)目录切换和本地同步
cd /remote_backup_folder
:进入服务器上的指定目录。
lcd e:\backup\bt
: 切换到本地备份目录。
synchronize -filemask="|output/;*.log;*.so" local
:同步服务器上的文件到本地,忽略`output/`目录以及`.log`和`.so`文件,仅备份代码文件。
(6)关闭连接
close
:关闭与服务器的连接。
exit
:退出WinSCP脚本。
3.使用方法
(1)编写和保存脚本
将上述脚本内容保存为backup.txt文件,并存放在e:\目录下。
(2)创建批处理文件
编写一个批处理文件,例如`backup.bat`,内容如下:
start /min cmd /c "D:\Program Files (x86)\WinSCP\WinSCP.exe" /console /script=e:\shanghai_backup.txt
这个批处理文件将以最小化方式启动一个新的命令行窗口,执行WinSCP脚本,实现自动化备份。运行效果如下:
(3) 添加到Windows定时任务
在Windows任务计划程序中创建一个新的任务,设置触发器为你所需要的备份频率(如每天凌晨2点)。在操作中选择`backup.bat`文件,这样系统就会在设定的时间自动运行该脚本,完成服务器数据的备份。
计划任务添加方式为:
1. 打开“控制面板”,点击“系统和安全“
2. 在“管理工具“下点击”计划任务“
3. 选择“任务计划程序库“,选择最右边的”创建任务“,点击进入界面后按需要设置计划任务,将执行bat文件加入到计划任务中
设置完成后如下图所示:
4.总结
通过这个脚本,我们能够在云电脑实现自动化的服务器数据备份。每次执行时,服务器上的指定目录会同步到本地备份目录,且在本地备份时自动忽略不需要的文件类型,加快了文件备份速度。结合Windows定时任务,可以在不需要人工干预的情况下,确保数据的安全备份,防止服务器重启时的数据丢失。该方法简单高效,非常适合需要定期备份的开发、测试环境。