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,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
7天前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
13天前
|
Windows
【Windows】 Win10下报错:该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创建关联
【Windows】 Win10下报错:该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创建关联
91 1
|
24天前
|
Shell Linux 开发工具
解决windows系统下运行.sh文件
【6月更文挑战第15天】
36 4
|
26天前
|
敏捷开发 弹性计算 Kubernetes
阿里云云效产品使用问题之自定义新的编排文件该怎么操作
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
6天前
|
敏捷开发 测试技术 持续交付
阿里云云效产品使用合集之Helm Chart文件可以从什么地方获取
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
13天前
|
Windows
【Windows】 Win10文件目录的删除,新建等需要手动刷新操作 亲测有效
【Windows】 Win10文件目录的删除,新建等需要手动刷新操作 亲测有效
26 0
|
16天前
|
安全 网络协议 Linux
【Windows】已解决:修改本地host文件异常的正确解决方法
【Windows】已解决:修改本地host文件异常的正确解决方法
27 0
|
20天前
|
数据安全/隐私保护
xshell通过堡垒机连接服务器和winscp 通过堡垒机传输文件
【7 月更文挑战第 3 天】xshell通过堡垒机连接服务器和winscp 通过堡垒机传输文件
|
21天前
|
JavaScript API
前后端数据交互.js文件的axios的写法,想要往后端发送数据,页面注入API,await的意思是同步等待服务器数据,并返回,axios注入在其他页面,其他页面调用的时候,同步作用
前后端数据交互.js文件的axios的写法,想要往后端发送数据,页面注入API,await的意思是同步等待服务器数据,并返回,axios注入在其他页面,其他页面调用的时候,同步作用
|
21天前
|
存储 数据库 数据安全/隐私保护
Windows系统部署AnyTXT Searcher并实现远程搜索本地内网设备中文件
Windows系统部署AnyTXT Searcher并实现远程搜索本地内网设备中文件