一、前言
因运维过程中,经常会借助于很多工具来实现我们的监控、备份、校验,安全测试,批量操作,可视化辅助,集中管理等,甚至AI相关,本文特对常用工具进行梳理记录,以备不时之需及后来者参考应用,欢迎留言补充和建议。
二、文件管理或备份工具
2.1、 Rclone
它是一款免费的云存储管理工具,Rclone是一个采用 Go 语言开发的命令行程序,具有与unix命令rsync、cp、mv、mount、ls、ncdu、tree、rm和cat相当的强大功能,主用于管理云存储上的文件,超过70种云存储产品支持rclone,包括S3对象存储、商业的文件存储服务以及标准传输协议(支持复制,同步,移动,删除文件。它还支持文件加密和压缩,支持分块上传和分块下载,可以暂停和恢复传输,支持文件的校验和合并。),它允许在文件系统和云存储服务之间或在多个云存储服务之间访问和同步文件,它具有单向同步功能,使目录完全相同,它具有加密、缓存和联合后端,支持 Fuse 安装,并且可以通过 HTTP、WebDAV、FTP、SFTP 或 DLNA 服务本地或远程文件。它可以用来做很多事情,包括备份,文件同步,数据迁移等,它可以在各种平台上运行,包括 Windows,macOS,Linux,FreeBSD,NetBSD 等。在云存储场景,我们能够像使用本地文件一样便捷的使用云存储,它也被誉为“云存储界的瑞士军刀”。我们可以使用Rclone工具,对移动云对象存储EOS进行数据导入、数据同步、迁移备份或者挂载等操作。
注:rclone sync 只支持本地向远程无条件的同步,远程的永远会被覆盖;
相关资源:官网、rclone GitHub、rclone Gitee、软件下载
1)配置说明
默认配置完成的后配置文件都保存在:/root/.config/rclone/rclone.conf 目录下:
#查看默认配置文件位置
rclone config paths
# 编辑配置,配置对象存储EOS数据源
[EOS] #配置项名称,用户自定义
type = s3
provider = ChinaMobile
access_key_id = XXXXXXXX
secret_access_key = XXXXXXXXXXXXXXXX
endpoint = XXXXXXXX.cmecloud.cn #对象存储服务接口地址,一般endpoint地址设置的是内网地址,注意对应资源池是否支持https,否者使用http
location_constraint = XXXXXXXX #需与接口一致,仅在创建桶时使用,如无需创建桶,可不设置
acl = private #默认值:private,可选值: private、public-read、public-read-write、authenticated-read
#向导配置
rclone config --config [config-file-path] #初始如下
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
#列举桶内的对象
rclone ls [config-name]:[bucket-name] --config [config-file-path]
2)部署安装
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.rpm
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
sudo unzip rclone-current-linux-amd64.zip
sudo cp rclone /usr/bin/
sudo chown root:root /usr/bin/rclone
sudo chmod 755 /usr/bin/rclone
rclone version
3)常用命令
rclone config - 以控制会话的形式添加rclone的配置,配置保存在rclone.conf文件中。
rclone copy - 将文件从源复制到目的地址,默认跳过已复制完成的。
rclone sync - 将源数据同步到目的地址,只更新目的地址的数据。可添加–dry-run标志来检查要复制、删除的数据
rclone move - 将源数据移动到目的地址。
rclone delete - 删除指定路径下的文件内容。
rclone purge - 清空指定路径下所有文件数据。
rclone mkdir - 创建一个新目录。
rclone rmdir - 删除空目录。
rclone check - 检查源和目的地址数据是否匹配。
rclone ls - 列出指定路径下所有的文件以及文件大小和路径。
rclone lsd - 列出指定路径下所有的目录/容器/桶。
rclone lsl - 列出指定路径下所有文件以及修改时间、文件大小和路径。
rclone md5sum - 为指定路径下的所有文件产生一个md5sum文件。
rclone sha1sum - 为指定路径下的所有文件产生一个sha1sum文件。
rclone size - 获取指定路径下,文件内容的总大小。
rclone version - 查看当前版本。
rclone cleanup - 清空remote。
rclone dedupe - 交互式查找重复文件,进行删除/重命名操作。
rclone mount - 挂载云盘为本地硬盘
fusermount -qzu LocalFolder - 卸载挂载的云盘
### 同步本地目录或文件到远端bucket
rclone sync <LOCAL_PATH> romote:bucket-name/target-path/
# 同步远端bucket目录到本地
rclone sync romote:bucket-name/target-path/ <LOCAL_PATH>
#两个桶之间数据同步
rclone sync source:bucket-name target:bucket-name
# 将本地文件同步到远端,并备份过程中被删除或修改的文件到备份存储桶中,加 --progress 显示迁移的进度及校验的结果
rclone sync <LOCAL_PATH> romote:bucket-name --backup-dir romote:backup-bucket-name/backup-dir
# 数据校验:-P = --progress可显示实时传输进度,500 ms刷新一次,否则默认1分钟刷新一次
rclone check source:bucket-name/source-path/ target:bucket-name/target-path/ -P
rclone命令常用参数:
参数 | 说明 |
---|---|
-n = --dry-run | 测试运行,查看 rclone 在实际运行中会进行哪些操作 |
-P = --progress | 显示实时传输进度,500 ms刷新一次,否则默认1分钟刷新一次 |
–cache-chunk-size 5M | 块的大小,默认 5M 越大上传越快,占用内存越多,太大可能会导致进程中断 |
–onedrive-chunk-size 100M | 提高 OneDrive 上传速度适用于G口宽带服务器 |
–drive-chunk-size 64M | 提高 Google Drive 上传速度适用于G口宽带服务器 |
–cache-chunk-total-size SizeSuffix | 块可以在本地磁盘上占用的总大小 |
–transfers=N | 并行文件数,默认为4。在比较小的内存的VPS上建议调小这个参数,比如 128M 的小鸡上使用建议设置为1。 |
–config string | 指定配置文件路径,string为配置文件路径 |
–ignore-errors | 跳过错误 |
–size-only | 根据文件大小校验,不校验hash |
–drive-server-side-across-configs | 服务端对服务端传输 |
–exclude-from | 排除文件或目录列表来自某个文件指定 |
–include-from | 包含文件或目录来自某个文件指定 |
–filter-from | 文件过滤规则来自某个文件指定 |
–exclude | 排除文件或目录;–exclude “{Video,Software}/” 排除所有目录下的 Video 和 Software 目录 |
–include | 包含文件或目录 |
–filter | 文件过滤规则,相当于上面两个选项的其它使用方式。包含规则以+开头,排除规则以-开头;–filter "+ *.{png,jpg}"等同于–include “*.{png,jpg}” |
–min-size num | 过滤小于指定大小的文件。比如 --min-size 50 表示不会传输小于 50k 的文件。 |
–max-size num | 过滤大于指定大小的文件。比如 --max-size 1G 表示不会传输大于 1G 的文件。 |
-q | -rclone将仅生成 ERROR 消息。 |
-v | rclone将生成 ERROR,NOTICE 和 INFO 消息,推荐此项。 |
-vv | -rclone 将生成 ERROR,NOTICE,INFO和 DEBUG 消息。 |
–log-level LEVEL | 标志控制日志级别 |
2.2、Restic
Restic 是一款 GO 语言开发的开源免费快速、高效、安全的跨平台备份工具。Restic 使用AES-256加密技术来保证我们的数据安全性和完整性,可以将本地数据加密后传输到指定的存储。Restic 支持增量备份,还可利用重复数据删除来节省宝贵的存储空间。Restic 目前可与大多数主要的云提供商兼容,支持常见操作系统(Linux、macOS、Windows、FreeBSD、OpenBSD)。
关联资源:restic GitHub、文档
1)部署安装
#YUM
yum install yum-plugin-copr -y
yum enable copart/restic -y #copr enable启用 Copr 存储库,该存储库包含 Restic 备份工具的最新版本
yum install restic -y
2)使用
#创建一个备份仓库,密码丢失会导致文件无法访问和找回
restic init --repo ./backup #输出
enter password for new repository:
enter password again:
created restic repository a6801fab57 at ./backup
Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.
#查看备份库中的所有备份快照
restic -r ./backup snapshots
#使用快照还原
restic -r ./backup restore snapshot_ID --target ./mywork_restore