Windows服务器文件自动上传至阿里云OSS

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介:

Windows服务器数据文件自动上传至阿里云OSS

背景:

客户需求:实现将Windows服务器上的SQLServer数据库文件上传至阿里云OSS内,实现数据长期备份。

需求难点:网络波动对上次数据完整性的影响,如何在前期规划好后期新增的数据文件的归档分组与优化管理,如何确保数据文件上传的完整性检查。

解决方法1.windows下编写bat批量执行脚本配合定时任务时间数据传输。

     2.选取osscmd工具,支持G级数据的切片上次与解决网络波动时候的断点续传。                    3.打包压缩数据文件,减少传流量带宽,上传完成后删除压缩包(脚本内实现)。

      4.通过在Linux服务器同样使用osscmd的list方法来抓取oss上的文件信息,以便比对与告警。

一、备份服务器端部署

1.安装python,版本在2.5-2.7,建议2.7(已安装忽略)

2.c盘新建OSS目录,并在次目录下解压osscmd文件

下载URLhttps://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/internal/oss/0.0.4/assets/sdk/OSS_Python_API_20160419.zip?spm=5176.doc32171.2.3.lnaEuy&file=OSS_Python_API_20160419.zip

3.安装rar压缩文件(已安装忽略)

4.修改oss.bat脚本文件

OSS.bat文件内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
@ echo  off
rem mail:xuel@anchnet.com
set  MON=% date :~0,4%% date :~5,2%                 #定义创建的时间目录
set  DATE=% date :~0,4%% date :~5,2%% date :~8,2%     #定义时间
set  TIME=% date %-% time %
set  LOGDIR=C:\                                 #目录
set  DIR=D:\                                    #数据文件的盘符
echo  "%TIME% 脚本开始执行完毕!" >>%LOGDIR%\OSS\log\backup-oss.log      #输出日志
set  DIRNAME=SAP_BACKUP                                                #数据文件的目录
set  NAME=上海xx客户科技                                               #客户名称
set  PY=C:\Python27\python.exe                  #python可执行程序路径
set  OSSCMD=C:\OSS\osscmd                       #osscmd路径
set  RAR= "C:\Program Files\WinRAR\WinRAR.exe"   #rar路径
set  BUCKET=oss: //dacexinxi/                    #oss上bucket名称
set  ID=LTAIsSraOIxxxxxxxx                      #access ID
set  KEY=40u5sORa9JAVnlWwhekBJxxxxxxxxxx        #access key
set  HOST=oss-cn-shenzhen.aliyuncs.com          #oss所在区,内网可以根据具体来写
  
set  FILE=Data1                                 #压缩的数据文件目录名称
%RAR% a -k -r -s -m1 %DIR%%DATE%-%FILE%.rar %DIR%\%DIRNAME%\%FILE%      #压缩文件
set  TIME=
set  TIME=% date %-% time %
echo  "%TIME% %FILE% 压缩文件执行完毕!" >>%LOGDIR%\OSS\log\backup-oss.log
%PY% %OSSCMD%  mkdir  %BUCKET%%NAME%/%MON%/%DATE%-%DIRNAME% -- id =%ID% --key=%KEY% --host=%HOST%   #创建oss目录
%PY% %OSSCMD% mp %DIR%%DATE%-%FILE%.rar %BUCKET%%NAME%/%MON%/%DATE%-%DIRNAME%/%DATE%-%FILE%.rar -- id =%ID% --key=%KEY% --host=%HOST%    #使用multiupload上次文件
set  TIME=
set  TIME=% date %-% time %
echo  "%TIME% %FILE% 上传文件执行完毕!" >>%LOGDIR%\OSS\log\backup-oss.log
del %DIR%%DATE%-%FILE%.rar                     #删除压缩数据文件
set  TIME=
set  TIME=% date %-% time %
echo  "%TIME% %FILE% 删除文件执行完毕!" >>%LOGDIR%\OSS\log\backup-oss.log
  
set  FILE=
set  FILE=Data2
%RAR% a -k -r -s -m1 %DIR%%DATE%-%FILE%.rar %DIR%\%DIRNAME%\%FILE%
set  TIME=
set  TIME=% date %-% time %
echo  "%TIME% %FILE% 压缩文件执行完毕!" >>%LOGDIR%\OSS\log\backup-oss.log
%PY% %OSSCMD%  mkdir  %BUCKET%%NAME%/%MON%/%DATE%-%DIRNAME% -- id =%ID% --key=%KEY% --host=%HOST%
%PY% %OSSCMD% mp %DIR%%DATE%-%FILE%.rar %BUCKET%%NAME%/%MON%/%DATE%-%DIRNAME%/%DATE%-%FILE%.rar -- id =%ID% --key=%KEY% --host=%HOST%
set  TIME=
set  TIME=% date %-% time %
echo  "%TIME% %FILE% 上传文件执行完毕!" >>%LOGDIR%\OSS\log\backup-oss.log
del %DIR%%DATE%-%FILE%.rar
set  TIME=
set  TIME=% date %-% time %
echo  "%TIME% %FILE% 删除文件执行完毕!" >>%LOGDIR%\OSS\log\backup-oss.log
echo  "-----------%TIME% 脚本执行完毕!---------" >>%LOGDIR%\OSS\log\backup-oss.log

5.Window创建定时任务

创建定时任务

“程序”/“附件”/“系统工具”/“任务计划程序”命令

wKiom1mD5dmwiUjBAAHnLBMOnP0233.png

点击“创建任务”后如图所示:填写好相应的名称和勾选好必要的条件

wKiom1mD5h_DEFz8AAEuz30TiPY828.png

选择“触发器”选项,点击“新建”,创建任务执行时间,“重复任务间隔”这个选择后,后面有时间选择,是每小时,还是每分,可自己选择后再修改时间,再确定。

wKiom1mD5rKTS8KsAAHguKBr2Uw133.png

wKioL1mD55-g8pCDAAG7SV1iEpc969.png

再来配置需要执行的“操作”,就是选择所写的程序或是BAT文件,这里很重要的配置是选择BAT文件后,在“起始于(可选)”这里一定要填写相应执行程序或是BAT文件的所在目录,要不然是执行不成功的。

wKiom1mD59eRZQ9EAACfUoBqnz0791.png

wKioL1mD5_ajv6LWAANFMloffII270.png

wKiom1mD6umjuRiFAAMsb4uWtXo001.png

wKioL1mD6xrQbFwnAAFN3i848Jg808.png


二、阿里云OSS开通

创建Access key,用于使用osscmd上传时bucket认证标识

wKiom1mD62qwQsN1AADOfGXaQyQ226.png

创建bucket

wKiom1mD66zzzgGrAADJs-P3-Yw968.png


二、监控OSS上传数据

1.下载osscmd工具并放置/oss目录下

wKiom1mD7Cbx08I8AAEbIndsm48816.png

oss_check.sh检测脚本如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
DATE=` date  +%Y%m`
OSSCMD= /oss/osscmd
NAME=上海xx公司
PYCMD= /usr/bin/python
BUCKET=oss: //dacexinxi/
TIME=` date  +%Y%m%d`
DATANAME= "${TIME}-SAP_BACKUP"
ID=LTAIsSraOIHyxxx
KEY=40u5sORa9JAVnlWwhekBJzxxxxx
HOST=oss-cn-shenzhen.aliyuncs.com
WEIXIN= /oss/GFweixin .sh
MAILTIME=` date  +%F ' ' %H:%M`
  
if  [ -d  /oss/log  ]; then
mkdir  -p  /oss/log/ ${TIME} 
fi
$PYCMD $OSSCMD  ls  ${BUCKET}${NAME}/${DATE}/${DATANAME} -- id =$ID --key=$KEY --host=$HOST> /oss/log/ ${TIME} /oss-check- ${TIME}.log
NUM=`$PYCMD $OSSCMD  ls  ${BUCKET}${NAME}/${DATE}/${DATANAME} -- id =$ID --key=$KEY --host=$HOST | grep  rar| wc  -l`
echo  $NUM
if  "${NUM}"  !=  "4"  ]; then
    /bin/bash  /oss/GFweixin .sh xuel dace  "上海xx公司-oss_check is fail! TIME:${MAILTIME}"
else
    /bin/bash  /oss/GFweixin .sh xuel dace  "上海xx公司-oss_check is ok! TIME:${MAILTIME}"
fi
ls  /oss/log/ ${TIME} /oss-check- ${TIME}.log
if  "$?"  !=  "0"  ]; then
/bin/bash  /oss/GFweixin .sh xuel dace  "上海xx公司-oss_check is fail! TIME:${MAILTIME}"
else
/bin/mail  -r xuel@51idc.com -s  "达上海xx公司-oss_check"  serviceadmin@51idc.com < /oss/log/ ${TIME} /oss-check- ${TIME}.log
fi

五、结果展示

1.上传日志查看

wKiom1mD7Lui4V9rAABku3ya49k220.png

1.阿里云oss文件查看

wKioL1mD7SCBlW0dAAEtaqkZYnI988.png


可以在oss上是先以客户名称命名的一个目录,其次是一年月来归档数据文件,其次是数据上传备份目录,最终是打包好的数据压缩文件,如何后期需要定时删除,则只需在脚本内写入根据时间来删除即可,极大增强了扩展性,以日期归档方便后续管理操作。

3.邮件日志

wKioL1mD7YHAMIc0AAMiekB9j7A486.png

4.微信通知

wKioL1mD7cTQ6Y3tAABqZ4tB8Ro388.png










本文转自 KaliArch 51CTO博客,原文链接:http://blog.51cto.com/kaliarch/1953744,如需转载请自行联系原作者
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
1月前
|
Java
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
java小工具util系列5:java文件相关操作工具,包括读取服务器路径下文件,删除文件及子文件,删除文件夹等方法
74 9
|
1月前
|
Android开发 数据安全/隐私保护 虚拟化
安卓手机远程连接登录Windows服务器教程
安卓手机远程连接登录Windows服务器教程
88 4
|
1月前
|
NoSQL Linux PHP
如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤
本文介绍了如何在不同操作系统上安装 Redis 服务器,包括 Linux 和 Windows 的具体步骤。接着,对比了两种常用的 PHP Redis 客户端扩展:PhpRedis 和 Predis,详细说明了它们的安装方法及优缺点。最后,提供了使用 PhpRedis 和 Predis 在 PHP 中连接 Redis 服务器及进行字符串、列表、集合和哈希等数据类型的基本操作示例。
64 4
|
2月前
|
前端开发 Docker 容器
主机host服务器和Docker容器之间的文件互传方法汇总
Docker 成为前端工具,可实现跨设备兼容。本文介绍主机与 Docker 容器/镜像间文件传输的三种方法:1. 构建镜像时使用 `COPY` 或 `ADD` 指令;2. 启动容器时使用 `-v` 挂载卷;3. 运行时使用 `docker cp` 命令。每种方法适用于不同场景,如静态文件打包、开发时文件同步及临时文件传输。注意权限问题、容器停止后的文件传输及性能影响。
539 0
|
2月前
|
Apache 数据中心 Windows
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
将网站迁移到阿里云Windows系统云服务器,访问该站点提示连接被拒绝,如何处理?
|
2月前
|
域名解析 缓存 网络协议
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
|
弹性计算 网络协议 Java
阿里云ECS十五日体验记录
本文作于2022/6/4,是为了发表自己的看法和免费续费而撰写.
|
存储 弹性计算 运维
阿里云ECS体验记录
阿里云ECS体验记录
375 0
|
2天前
|
人工智能 JSON Linux
利用阿里云GPU加速服务器实现pdf转换为markdown格式
随着AI模型的发展,GPU需求日益增长,尤其是个人学习和研究。直接购置硬件成本高且更新快,建议选择阿里云等提供的GPU加速型服务器。
利用阿里云GPU加速服务器实现pdf转换为markdown格式
|
1天前
|
开发框架 缓存 .NET
阿里云轻量应用服务器、经济型e、通用算力型u1实例怎么选?区别及选择参考
在阿里云目前的活动中,价格比较优惠的云服务器有轻量应用服务器2核2G3M带宽68元1年,经济型e实例2核2G3M带宽99元1年,通用算力型u1实例2核4G5M带宽199元1年,这几个云服务器是用户关注度最高的。有的新手用户由于是初次使用阿里云服务器,对于轻量应用服务器、经济型e、通用算力型u1实例的相关性能并不是很清楚,本文为大家做个简单的介绍和对比,以供参考。