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

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: Windows服务器数据文件自动上传至阿里云OSS背景:客户需求:实现将Windows服务器上的SQLServer数据库文件上传至阿里云OSS内,实现数据长期备份。需求难点:网络波动对上次数据完整性的影响,如何在前期规划好后期新增的数据文件的归档分组与优化管理,如何确保数据文件上传的完整性检查。

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文件内容如下:

@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检测脚本如下:

#!/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


相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
5月前
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
1月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
4月前
|
文字识别 算法 API
视觉智能开放平台产品使用合集之上传素材文件不在同一地域的OSS,怎么上传多张图片
视觉智能开放平台是指提供一系列基于视觉识别技术的API和服务的平台,这些服务通常包括图像识别、人脸识别、物体检测、文字识别、场景理解等。企业或开发者可以通过调用这些API,快速将视觉智能功能集成到自己的应用或服务中,而无需从零开始研发相关算法和技术。以下是一些常见的视觉智能开放平台产品及其应用场景的概览。
48 1
|
4月前
|
存储 机器学习/深度学习 弹性计算
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
阿里云EMR数据湖文件系统问题之OSS-HDFS全托管服务的问题如何解决
|
4月前
|
存储 运维 Serverless
函数计算产品使用问题之OSS触发器是否可以只设置文件前缀
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
5月前
|
消息中间件 分布式计算 DataWorks
DataWorks产品使用合集之如何使用Python和阿里云SDK读取OSS中的文件
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之在使用MaxCompute进行数据集成同步到OSS时,出现表名和OSS文件名不一致且多了后缀,该如何处理
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
5月前
|
存储 运维 安全
阿里云OSS的优势
【7月更文挑战第19天】阿里云OSS的优势
213 2
|
5月前
|
存储 API 开发工具
阿里云OSS
【7月更文挑战第19天】阿里云OSS
198 1
|
5月前
|
存储 弹性计算 对象存储
预留空间是什么?阿里云OSS对象存储预留空间说明
阿里云OSS预留空间是预付费存储产品,提供折扣价以锁定特定容量,适用于抵扣有地域属性的Bucket标准存储费用及ECS快照费。通过购买预留空间,如500GB通用预留+100GB标准-本地冗余存储包,用户可优化成本。
221 4