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,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
17天前
|
C# Windows
.NET开源免费的Windows快速文件搜索和应用程序启动器
今天大姚给大家分享一款.NET开源(MIT License)、免费、功能强大的Windows快速文件搜索和应用程序启动器:Flow Launcher。
|
1天前
|
网络协议 对象存储
阿里云oss配置自有域名
阿里云oss配置自有域名
9 1
|
3天前
|
存储 开发工具 对象存储
Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析
Javaweb之SpringBootWeb案例之阿里云OSS服务入门的详细解析
10 0
|
6天前
|
存储 安全 文件存储
Windows系统本地部署HFS并结合内网穿透实现公网访问本地存储文件
Windows系统本地部署HFS并结合内网穿透实现公网访问本地存储文件
Windows系统本地部署HFS并结合内网穿透实现公网访问本地存储文件
|
9天前
|
安全 Java 网络安全
对象存储oss使用问题之使用oss上服务器后显示服务异常如何解决
《对象存储OSS操作报错合集》精选了用户在使用阿里云对象存储服务(OSS)过程中出现的各种常见及疑难报错情况,包括但不限于权限问题、上传下载异常、Bucket配置错误、网络连接问题、跨域资源共享(CORS)设定错误、数据一致性问题以及API调用失败等场景。为用户降低故障排查时间,确保OSS服务的稳定运行与高效利用。
12 0
|
10天前
|
存储 Java API
阿里云oss简介和使用流程
本文档介绍了如何准备阿里云OSS(对象存储服务)并开始使用它。首先,需要注册阿里云账号并进行实名认证,然后购买OSS资源包。在阿里云控制台中,可以创建和管理OSS存储空间(称为“Bucket”)。接着,文章简要介绍了阿里云OSS,它是一个基于云端的对象存储服务,提供高可靠性、高性能、低成本和易于使用的特性。 在阿里云OSS控制台,用户可以进行文件的上传和下载操作。通过API,开发者可以使用各种编程语言(如Java)来创建、删除Bucket以及上传、下载和删除文件。例如,Java代码示例展示了如何创建Bucket、上传文件、删除文件以及下载文件到本地的操作。
|
13天前
|
Windows
【Windows】 手写脚本更快编辑hosts文件
【Windows】 手写脚本更快编辑hosts文件
15 0
|
17天前
|
开发工具 对象存储
阿里云OSS文件上传
阿里云OSS文件上传
59 0
|
Ubuntu Linux 数据库
阿里云服务器ECS操作系统:linux系统与windows系统的区别
阿里云服务器ECS操作系统:linux系统与windows系统的区别.首先,我们要清楚的便是每个系统之间的差别,以及在阿里云上的差别
13134 0
|
1月前
|
Ubuntu JavaScript 关系型数据库
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客
在阿里云Ubuntu 20.04服务器上部署Ghost博客的步骤包括创建新用户、安装Nginx、MySQL和Node.js 18.x。首先,通过`adduser`命令创建非root用户,然后安装Nginx和MySQL。接着,设置Node.js环境,下载Nodesource GPG密钥并安装Node.js 18.x。之后,使用`npm`安装Ghost-CLI,创建Ghost安装目录并进行安装。配置过程中需提供博客URL、数据库连接信息等。最后,测试访问前台首页和后台管理页面。确保DNS设置正确,并根据提示完成Ghost博客的配置。
在阿里云Ubuntu 20.04服务器中搭建一个 Ghost 博客

热门文章

最新文章