一、Google Cloud Storge 介绍

Google Cloud Storage,是 Google Cloud Platform 的一项服务,为广泛的数据类型提供了统一的对象存储,包括活跃数据和存档数据。它可分为中个存储类别:区域、多区域、近线和远线。所有类别都提供了无限数据、用于数据访问的相同工具和 API、OAuth 和细粒度访问控制、访问其他 Google Cloud Storage 服务和按使用付费模式的功能。

1.1、四种存储类别的比较

您可能无法马上确定我们四种类别中的哪一种适合您的项目。但您可以随意挑选一种开始使用,以后可以轻松切换方案。随着您的需求出现变化,对象生命周期管理功能可以帮助您自动运用各种类别来优化性价比。

存储类别 Multi-Regional Regional Nearline Coldline
价格 每月每 GB $0.026 - $0.036 每月每 GB $0.02 - $0.035 每月每 GB $0.01 - $0.02 每月每 GB $0.007 - $0.014
适用场景 适合为频繁访问的数据提供最高的可用性 适合在单个区域内频繁访问的数据 适合访问频率低于一月一次的数据 适合访问频率低于一年一次的数据
冗余 地理位置冗余 区域级,跨可用性地区实现冗余 区域级 区域级
可用性 服务等级协议承诺为 99.95% 服务等级协议承诺为 99.9% 服务等级协议承诺为 99% 服务等级协议承诺为 99%
耐用性 99.999999999% 99.999999999% 99.999999999% 99.999999999%
响应速度 毫秒级访问速度,一致的 API 毫秒级访问速度,一致的 API 毫秒级访问速度,一致的 API 毫秒级访问速度,一致的 API
使用场景 内容存储和分发、业务连续性 在区域内存储数据和进行数据分析 存储不常访问的内容 归档存储、备份和恢复
应用 视频、多媒体、业务连续性 转码、数据分析、计算密集型数据处理 备份长尾内容、极少访问的文档 归档源文件备份、灾难恢复

1.2、需求

我们现在需要把我们在 Google 虚拟机上面的文件备份到 GCS(Google Cloud Storage) 上面去,我们这是使用 Gsutil工具,Gsutil工具是一个通过Google云软件开发工具包提供的Python应用。管理员可以使用此工具从命令行中执行存储桶和对象管理任务,例如删除对象和存储桶。

1.3、给虚拟机添加授权认证

我们登陆到虚拟机上面,默认已经给我们添加了gsutil命令,如果没有,请安装 Google Cloud SDK 。
然后我们登陆虚拟机使用命令gcloud auth login进行授权。

[root@sspanel ~]# gcloud auth loginYou are running on a Google Compute Engine virtual machine.
It is recommended that you use service accounts for authentication.You can run:$ gcloud config set account `ACCOUNT`to switch accounts if necessary.Your credentials may be visible to others with access to this
virtual machine. Are you sure you want to authenticate with
your personal account?Do you want to continue (Y/n)?  YGo to the following link in your browser:https://accounts.google.com/o/oauth2/auth?redirect_uri=uxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Faptype=offlineEnter verification code:


然后生成随机码,我们输入到终端,然后就授权完成了。

Enter verification code: 4/RQGq4RAUBrp0pA_R3SvuREXyLtczDuy-WLi1sqo23jJhAxEgchEMsos
WARNING: `gcloud auth login` no longer writes application default credentials.
If you need to use ADC, see:gcloud auth application-default --helpYou are now logged in as [wzlinux18@gmail.com].
Your current project is [proxy1-179115].  You can change this setting by running:$ gcloud config set project PROJECT_ID

现在授权已经完成。

注意:如果您使用的是 Google Cloud Shell 或 Google Compute Engine 实例,则会预先安装并验证 Python 和 gsutil。如果您设置的 Google Compute Engine 实例没有范围限定为 Cloud Storage 的服务帐号,请运行 gsutil config 并按照说明操作。

二、备份操作

2.1 创建存储分区

存储分区是 Cloud Storage 中用于存放数据的基本容器。
要创建存储分区,请执行以下操作:使用gsutil mb命令创建一个存储分区并为其指定一个唯一的名称:

[root@sspanel ~]# gsutil mb -l asia-east1 gs://myweb-backup/
Creating gs://myweb-backup/...

我们也可以在 Google Cloud Platform Console 看到创建的存储分区,可以对存储分区进行详细的设定。

比如我们的数据是很少访问的,可以修改一下存储类别为 Coldline,也可以添加对象生命周期,以节省我们的空间。

2.2 上传对象到存储分区

命令的操作和我们平时在 Linux 的操作命令差不多,我们把我的整个网站目录上传上去,对一些多任务的操作,我们可以添加一个-m参数。

[root@sspanel wwwroot]# gsutil cp -r www.wzlinux.xyz gs://myweb-backup/
Copying file://www.wzlinux.xyz/index.html [Content-Type=text/html]...
Copying file://www.wzlinux.xyz/404.html [Content-Type=text/html]...
Copying file://www.wzlinux.xyz/.htaccess [Content-Type=application/octet-stream]...
Copying file://www.wzlinux.xyz/.gitattributes [Content-Type=application/octet-stream]...
- [4 files][  1.6 KiB/  1.6 KiB]
==> NOTE: You are performing a sequence of gsutil operations that may
run significantly faster if you instead use gsutil -m cp ... Please
see the -m section under "gsutil help options" for further information
about when gsutil -m can be advantageous.Copying file://www.wzlinux.xyz/.gitignore [Content-Type=application/octet-stream]...

然后我们到 Console 上面查看一下上传的文件,为了增加传输速度,建议大家给文件打包之后再进行传输。

2.3 从存储分区下载对象

下载也很简单,我这里就拿着官方的案例写上吧,偷个懒。

gsutil cp gs://my-awesome-bucket/kitten.png Desktop/kitten2.png
如果操作成功,此命令会返回以下内容:Copying gs://my-awesome-bucket/kitten.png...
Downloading file://Desktop/kitten2.png:               0 B/164.3 KiB
Downloading file://Desktop/kitten2.png:               164.3 KiB/164.3 KiB

2.4 将对象复制到存储分区的文件夹

gsutil cp gs://my-awesome-bucket/kitten.png gs://my-awesome-bucket/just-a-folder/kitten3.png

2.5 列出存储分区或文件夹内容

gsutil ls gs://my-awesome-bucket

三、备份计划

我们已经了解了备份的命令,非常简单,那我们做一个脚本,添加到定时任务中,每天同一时间把数据备份到存储中。

#! /bin/bash
export HOME="/home/wangzan"cd /root/
tar -zcPf www.wzlinux.xyz$(date +%Y%m%d).tar.gz /www/wwwroot/www.wzlinux.xyz;
/bin/gsutil cp www.wzlinux.xyz$(date +%Y%m%d).tar.gz gs://myweb-backup/;
rm -f www.wzlinux.xyz$(date +%Y%m%d).tar.gz;

添加定时任务,让其每天凌晨2点钟进行备份。

0 2 * * * /home/data/scripts/www_backup.sh

我们测试了一下,看下效果。

之前一直上传不成功,缺少一个环境变量HOME,加上就可以,证书在什么路径就加在哪里。

参考文档: https://cloud.google.com/storage/docs/quickstart-gsutil

使用 bash 脚本把 Google 虚拟机的数据备份到 GCS相关推荐

  1. 使用 bash 脚本把 GCE 的数据备份到 GCS

    目录 一.Google Cloud Storge 介绍 1.1.四种存储类别的比较 1.2.需求 1.3.给虚拟机添加授权认证 二.备份操作 2.1 创建存储分区 2.2 上传对象到存储分区 2.3 ...

  2. 正则表达式及bash脚本(一)

    目录 1 基本正则表达式元字符 1.1 字符匹配 1.2 匹配次数 1.3 位置锚定 1.4 分组其它 1.4.1 分组 1.4.2 或者 2 扩展正则表达式元字符 2.1 字符匹配 2.2 次数匹配 ...

  3. 生产力工具:shell 与 Bash 脚本

    生产力工具:shell 与 Bash 脚本 作者:吴甜甜 个人博客网站: wutiantian.github.io 微信公众号: 吴甜甜的博客 注意:本文只是我个人总结的学习笔记,不适合0基础人士观看 ...

  4. bash脚本 sleep_如何使用Linux Sleep命令暂停Bash脚本

    bash脚本 sleep Fatmawati Achmad Zaenuri/Shutterstock.com Fatmawati Achmad Zaenuri / Shutterstock.com T ...

  5. 正则表达式及bash脚本(二)

    目录 3.51查找 Linux 系统中的僵尸进程 3.52提示用户输入年份后判断该年是否为闰年 3.53生成随机密码(urandom 版本) 3.54生成随机密码(字串截取版本) 3.55测试用户名与 ...

  6. linux的逻辑运算参数,Linux基础之bash脚本编程初级-逻辑运算与测试

    引言 前面介绍了bash编程的基础变量与算术表达式,本文介绍在脚本中的进阶知识:测试 在bash中测试大体分两部分:条件测试.组合测试. 而条件测试又分:数值测试.字符串测试.文件测试. 组合测试则有 ...

  7. 完成工作表-使用Google Spreadsheets作为数据后端

    by Gilad Dayagi 通过吉拉德·达亚吉 完成工作表-使用Google Spreadsheets作为数据后端 (Get Sheet Done - using Google Spreadshe ...

  8. [分享]写出健壮的Bash脚本

    许多人用shell脚本完成一些简单任务,而且变成了他们生命的一部分.不幸的是,shell脚本在运行异常时会受到非常大的影响.在写脚本时将这类问题最小化是十分必要的.本文中我将介绍一些让Bash脚本变得 ...

  9. 处理除第一个之外的所有参数(在bash脚本中)

    本文翻译自:Process all arguments except the first one (in a bash script) I have a simple script where the ...

最新文章

  1. Spring+Hibernate的典型配置
  2. VMware workstation 网络设置详解
  3. python调用其他程序或脚本方法(转)
  4. CSS进阶(二)——特性
  5. hadoop hive集群_Hive的优化和压缩
  6. .NET - Diving into System Programming - Part 2[转贴]
  7. 2020美赛MCM/ICM参赛及获奖分析
  8. 思科模拟器路由器配置
  9. 高项、高级项目管理师论文-成本管理
  10. 【JAVA高级技术】Java 处理结构化数据多种解决方案
  11. 李宏毅自然语言处理——GPT3简介
  12. 演讲者模式投影到幕布也看到备注_演讲者备注怎么显示
  13. 96道前端面试题,作出的职业规划建议
  14. 《西游记》中唐僧团队
  15. java截取屏幕指定范围内的图片并识别图片内的文字
  16. android解锁动画效果,android 关于自定义解锁动画和实现全屏的解决方案
  17. Vue 实现前端银行卡隐藏中间的数字,及隐藏姓名后两位
  18. Oracle使用数据泵expdp导出和impdp导入
  19. 完美国际地图文件在服务器那个文件夹,完美世界的安装目录在什么地方啊
  20. 大数据时代,我们都是透明人!

热门文章

  1. 网络的性能指标:带宽和延迟
  2. html并排div可重叠,html – 并排堆叠div
  3. 华工历次数学实验源代码
  4. 【绘画素材】Q版线稿参考,欢迎临摹嗷
  5. 苹果官方首曝iOS 15!这些经典iPhone都要被弃
  6. Excel删除文本中任意位置所有空格的3种方法比较
  7. C语言之stroke_s()
  8. 如何实现windows命令提示符的tab补全
  9. SQLServerDBA十大必备工具
  10. Worthington胰蛋白酶解决方案