zoukankan      html  css  js  c++  java
  • 腾讯云 COS 对象存储使用

    目前使用腾讯云的对象存储cos服务,将本地的文件同步到cos中,看了腾讯云的用户文档,发现使用COS Migration 工具还是挺适合的。

    原因

     因为服务器已经安装有java环境,而cos的几个用户工具中,用于自动同步的只看到这个工具,其他工具都需要额外的代码去调用命令,

    从开箱即用的角度看,还是这个工具好用的。

    使用

    配置下./conf/config.ini。指定好同步周期后,运行脚本

    1 sh start_migrate.sh

    因为是需要常驻运行,所以我这边是后台运行的

    nohup sh start_migrate.sh >/dev/null 2>&1 &

    命令大体意思是 

    1.  nohup 表示后台运行
    2. sh start_migrate.sh 是具体的命令
    3. >/dev/null 2>&1   标准输出到空,标准错误输出重定向(等同于)标准输出,即不保存脚本运行中产生的日志,也不保存错误信息(比如脚本不合法。。文件不存在)
    4.    是与nohup一起的,表示不受终端关闭信号影响,保持后台运行。如果没有&,在终端关闭时,当前终端执行的nohup进程也会被stop

    日志

    工具的日志默认是保存在./log下的,有info.log,warn.log,error.log 三个级别的日志。

    1 migrateLocal over! op statistics:
    2                      op_status : ALL_OK
    3                     migrate_ok : 0
    4                   migrate_fail : 0
    5                   migrate_skip : 1094
    6    migrate_condition_not_match : 0
    7                     start_time : 2018-07-14 11:05:57
    8                       end_time : 2018-07-14 11:05:59
    9                      used_time : 2 s

     上面是脚本运行成功后的输出,因为我之前已经同步过了,所以这里是显示 migrate_skip 跳过的文件数。如果有新文件同步成功了,会在migrate_ok显示成功文件数的。

    同步结果中还有可以看到些文件是没有同步成功的,具体的失败原因从error.log中就会详细说明。

    utf-8

    我这边遇到的失败原因全都是文件名乱码,或者是说不是utf-8字符格式,导致工具找不到文件。日志中的信息基本是这个内容,就路径不一样

    。。。
    localpath /data/xxxxxx not exist! maybe the path contail illegal utf-8 letter
    ...

    官方文档已经明确指出

    但我们的文件是从本地开发机中通过ftp上传到服务器的。通过对比,那些乱码文件都是含有中文的。

    1. 通过ftp到服务器后全部乱码。
    2. 通过shell远程touch中文名的文件,正常可同步。

    搜索之后知道了ftp是需要设置语言环境的,即字符格式。正在使用的ftp是用默认语言环境,应该是跟系统一样,windows是GBK。linux默认是utf-8

      接下来就是删除乱码文件,修改ftp环境,重新同步文件了。

    发现了乱码文件后,想在终端中手动删除文件,但无法选定。可以使用文件id进行指定。

    ls -i  ./  # 列出文件id及文件名
    find ./ -inum xxxxx -print -exec rm {} ;  # 获取xxx文件id的文件名传给附加命令 rm 删除 如果是文件夹 -rf 需要加在{}后面

    通知

    有文件需要同步时,不想还要查看日志知道是否成功,打算通过webhook的方式自动通知同步结果。就像git有代码提交后,有消息推送的webhook。目前是使用钉钉平台的自定义机器人

    1. 在群聊中添加自定义机器人,获取webhook地址。
    2. 修改cos migration工具的源码,在成功同步后添加通知任务,向webhook地址post数据
    3. 群聊中显示同步结果,有成功的文件数,还有失败的文件路径及原因

    具体代码请查看我的另外一篇。

  • 相关阅读:
    BZOJ 3132: 上帝造题的七分钟 树状数组+差分
    PAT Advanced 1006 Sign In and Sign Out (25 分)
    PAT Advanced 1011 World Cup Betting (20 分)
    PAT Basic 1032 挖掘机技术哪家强 (20 分)
    PAT Basic 1028 人口普查 (20 分)
    PAT Basic 1004 成绩排名 (20 分)
    大数据数据库HBase(二)——搭建与JavaAPI
    PAT Advanced 1009 Product of Polynomials (25 分)(vector删除元素用的是erase)
    PAT Advanced 1002 A+B for Polynomials (25 分)(隐藏条件,多项式的系数不能为0)
    PAT Basic 1041 考试座位号 (15 分)
  • 原文地址:https://www.cnblogs.com/duoxuan/p/9283959.html
Copyright © 2011-2022 走看看