使用COSCLI将文件自动同步到腾讯云对象存储

引子

COSCLI是腾讯云官方提供的对象存储客户端命令行工具,支持多种操作,具体介绍请见COSCLI简介。为了实现自动将本地文件变动同步到腾讯云,使用inotify工具监视文件变动,并在文件变动时通过COSCLI自动上传到对象存储。

安装COSCLI

参考下载与安装配置,以amd64架构为例:

wget https://cosbrowser.cloud.tencent.com/software/coscli/coscli-linux-amd64 && mv coscli-linux-amd64 /usr/local/bin/coscli && chmod 755 /usr/local/bin/coscli

检查是否安装成功:

coscli --version

配置COSCLI工具

开始交互式配置COSCLI

coscli config init

首先需要设置身份模式Mode,可选的枚举值有:SecretKeyCvmRole,由于是在腾讯云服务器中使用,因此选择CvmRoleCvm Role Name选择设置的CVM角色实例名称(需提前管理实例角色并添加对应的权限),其余按照提示配置存储桶名称和存储桶所在地域的域名即可。

使用inotify监控文件变动并自动上传

安装inotify(Debian系):

apt install inotify-tools -y

编写同步脚本:

#!/bin/sh

# 需要同步的文件夹
LOCAL_DIR="/target/"
# 目标对象存储桶
COS_TARGET="cos://target/"
LOG_FILE="/www/cos/logs/cos_sync.log"
COSCLI_OPTIONS="--recursive --delete --force --snapshot-path"
SNAPSHOT_PATH="/www/cos/snapshot/target"

echo "[$(date "+%Y-%m-%d %H:%M:%S")] 信息: 启动COS实时同步服务,监控目录: $LOCAL_DIR" | tee -a "$LOG_FILE"

inotifywait -m -r --timefmt '%Y-%m-%d %H:%M:%S' --format '[%T] %w %e %f' \
  -e create,modify,move,delete "$LOCAL_DIR" |
while read -r time event_dir event file; do
    echo "[$(date "+%Y-%m-%d %H:%M:%S")] 检测到变化: $event $event_dir$file" | tee -a "$LOG_FILE"
    echo "[$(date "+%Y-%m-%d %H:%M:%S")] 开始同步到 $COS_TARGET ..." | tee -a "$LOG_FILE"
    /usr/local/bin/coscli sync "$LOCAL_DIR" "$COS_TARGET" $COSCLI_OPTIONS "$SNAPSHOT_PATH" 2>&1 | tee -a "$LOG_FILE"
    COS_EXIT_CODE=$?
    if [ $COS_EXIT_CODE -eq 0 ]; then
        echo "[$(date "+%Y-%m-%d %H:%M:%S")] 成功: 同步完成。" | tee -a "$LOG_FILE"
    else
        echo "[$(date "+%Y-%m-%d %H:%M:%S")] 错误: 同步失败,退出代码: $COS_EXIT_CODE" | tee -a "$LOG_FILE"
    fi
done

以上脚本会将文件夹内所有文件(--recursive)包含删除在内(--delete)的所有变更同步(sync)到对象存储桶中,由于默认过程中还需要手动确认,因此还需要加入--force强行跳过,并保存快照信息(–snapshot-path)以加速目录文件同步。

将同步脚本设置为开机启动

通常使用Systemd服务设置脚本开机自启,此处省略。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇