kopia备份软件的使用方法(图形化和命令行)

一、容器化安装

官网:Kopia

下载地址:下载和安装 |kopia (kopia.io)

windows、mac、linux、docker的都有,自己找合适的版本

github上各个历史版本,Releases · kopia/kopia (github.com)

容器化安装docker-compose

version: '3.7'
services:
    kopia:
        image: kopia/kopia:latest
        hostname: Hostname
        container_name: Kopia
        restart: unless-stopped
        privileged: true
        ports:
            - 51515:51515
        # Setup the server that provides the web gui
        command:
            - server
            - start
            - --disable-csrf-token-checks
            - --insecure
            - --address=0.0.0.0:51515
            - --server-username=USERNAME           # 登录用户
            - --server-password=SECRET_PASSWORD    # 登录密码
        environment:
            # Set repository password
            KOPIA_PASSWORD: "SECRET"               # 存储库密码,丢失后无法找回数据
            USER: "User"                           # 存储库用户
        volumes:           # 备份过程中用到的所有文件都需要持久化挂载至容器内部
            # Mount local folders needed by kopia
            - /path/to/config/dir:/app/config        
            - /path/to/cache/dir:/app/cache
            - /path/to/logs/dir:/app/logs
            # Mount local folders to snapshot        
            - /path/to/data/dir:/data:ro
            # Mount repository location
            - /path/to/repository/dir:/repository
            # Mount path for browsing mounted snaphots
            - /path/to/tmp/dir:/tmp:shared
networks:
  default:
    external:
      name: docker_Network

docker-compose up -d 

浏览器输入 IP:51515 即可登录

登录后的界面

二、图形化界面

1、本地备份

① 选中上图中第一个( local Directory or NAS )

② 输入存储备份数据的目录

③ 创建存储库,输入密码(忘记密码后不可登录这个库),设置完成点击 Create Repository

④ 点击 New Snapshots ,创建新的快照

⑤ 输入需要备份的文件或目录,设置备份策略,一般只需设置备份文件个数,文件压缩方式,备份时间。

至少保存最近几次的备份,保存最近几小时的各一份,保存最近几天的各一份,保存最近几周的各一份,保存最近几月的各一份,保存最近几年的各一份

无特殊要求选默认,有特殊要求可以去官网查看各个压缩方式的特点

设置每天的几点执行备份,设置完成点击 Snapshop Now,Estimate选项可以检测文件个数和大小

⑥ 点击目录即可进入,查看备份的文件快照

⑦ 选择需要恢复到的时间点

⑧ 选择需要恢复的目录或文件

⑨ 输入需要恢复到的路径,设置需要的选项(一般默认即可),点击开始还原,即可将数据恢复到输入的路径,等待恢复完成即可输入的目录下查看恢复的数据

⑩ 直接点击文件还可以下载至本地

2、SFTP备份

SFTP和本地备份只有创建存储库不同,其他都一样,这里只讲创建存储库的方法

连接成功之后,选择SFTP Server

host:存储库所在服务器的IP

user:存储库所在服务器的一个用户

port:该服务器ssh协议所暴露的端口

password:该用户的密码

path to key file :key 文件所在路径   path to known_hosts file :known_hosts文件所在路径

key date :key file的内容(秘钥)    known_hosts date:known_hosts的内容

两个红框中的内容不需要都填

如果没有做免密登录,可以创建一个专门用来备份的用户,只填写密码即可,但是需要注意该账号密码的有效期;如果做了免密登录,key file和known_hosts的文件路径和内容二选一即可

三、命令行

命令行需要输入命令完成图形化界面中提到的各个步骤,比较麻烦,一般不能暴露端口的情况下才会使用,以sftp为例

① 创建存储库

kopia repository create sftp --no-check-for-updates --path=/opt/backup-kopia --host=192.168.117.122 --port=22 --username=kopia --sftp-password=madebiao123? --known-hosts=/root/.ssh/known_hosts -p=bvbNP2BecZQfV8OskQZ2
	  -p, --password=PASSWORD        		指定存储库密码
	  --[no-]check-for-updates   			是否自动检查更新kopia
	  --description=DESCRIPTION  			存储库描述(可不设置)
      --[no-]enable-actions      			是否允许拍摄快照(默认可以)
      --path=PATH                			存储库路径
      --host=HOST                			sftp存储库所在主机名
      --port=22                  			sftp存储库主机端口
      --username=USERNAME        			sftp存储库主机用户
      --sftp-password=SFTP-PASSWORD  		sftp存储库主机密码
      --keyfile=KEYFILE          			path to private key file for SFTP/SSH server
      --key-data=KEY-DATA        			免密登录时的 key file 路径
      --known-hosts=KNOWN-HOSTS  			known_hosts 文件路径
      --known-hosts-data=KNOWN-HOSTS-DATA   免密登录时的 known_hosts file 内容

export KOPIA_PASSWORD=节点密码 #默认密码
export KOPIA_CHECK_FOR_UPDATES=false # 禁止kopia自动更新

创建存储库时的返回信息

Enter password to create new repository:      # 创建时未指定存储库密码会在创建后要求输入
Re-enter password for verification: 
Initializing repository with:
  block hash:          BLAKE2B-256-128
  encryption:          AES256-GCM-HMAC-SHA256
  splitter:            DYNAMIC-4M-BUZHASH
Connected to repository.

NOTICE: Kopia will check for updates on GitHub every 7 days, starting 24 hours after first use.  # 自动更新
To disable this behavior, set environment variable KOPIA_CHECK_FOR_UPDATES=false
Alternatively you can remove the file "/root/.config/kopia/repository.config.update-info.json".

Retention:  # 备份策略
  Annual snapshots:                 3   (defined for this target)
  Monthly snapshots:               24   (defined for this target)
  Weekly snapshots:                 4   (defined for this target)
  Daily snapshots:                  7   (defined for this target)
  Hourly snapshots:                48   (defined for this target)
  Latest snapshots:                10   (defined for this target)
  Ignore identical snapshots:   false   (defined for this target)
Compression disabled.

To find more information about default policy run 'kopia policy get'.
To change the policy use 'kopia policy set' command.

NOTE: Kopia will perform quick maintenance of the repository automatically every 1h0m0s
and full maintenance every 24h0m0s when running as root@k8s-master01.

② 连接存储库 ,只需要把creat更换位connect

kopia repository connect sftp  --path=/opt/backup --host=192.168.117.111 --port=22 --username=kopia --sftp-password=madebiao123? --known-hosts=/root/.ssh/known_hosts -p=bvbNP2BecZQfV8OskQZ2

③ 创建快照

kopia snapshot create [<flags>] [<source>...]
      --log-file=LOG-FILE                指定日志文件
      --log-dir="/root/.cache/kopia"      Directory where log files should be written. ($KOPIA_LOG_DIR)
      --log-level=info                   日志等级
      --file-log-level=debug             File log level
      --config-file="repository.config" Specify the config file to use ($KOPIA_CONFIG_PATH)
kopia snapshot list  列出快照

④ 设置策略

kopia policy set [<flags>] [<target>...]

	<flags>   
	--compression=deflate-default
    --snapshot-time=拍摄快照的时间
    --keep-latest=10           Number of most recent backups to keep per source (or 'inherit')
    --keep-hourly=48           Number of most-recent hourly backups to keep per source (or 'inherit')
    --keep-daily=7             Number of most-recent daily backups to keep per source (or 'inherit')
    --keep-weekly=4            Number of most-recent weekly backups to keep per source (or 'inherit')
    --keep-monthly=24          Number of most-recent monthly backups to keep per source (or 'inherit')
    --keep-annual=3            Number of most-recent annual backups to keep per source (or 'inherit')
    
    <target>  Select a particular policy ('user@host','@host','user@host:path' or a local path). Use --global to target the global policy.
    指定一个特定的策略('user@host','@host','user@host:path' or a local path)或者使用 --global 定义全局的策略

kopia policy edit -           # 为单个目录、user@host或全局策略编辑快照策略
kopia policy list -           # 列出所有的策略
kopia policy delete -         # 删除单个目录、user@host或全局策略的快照策略
kopia policy set -            # 为单个目录、user@host或全局策略设置快照策略
kopia policy show -           # 显示快照策略

⑤ 查看/data/test的快照策略

kopia policy show /data/test
Policy for root@ecs-dso-pro-db-0002:/data/test:

Retention:
  Annual snapshots:                     3   inherited from (global)
  Monthly snapshots:                   24   inherited from (global)
  Weekly snapshots:                     4   inherited from (global)
  Daily snapshots:                      7   inherited from (global)
  Hourly snapshots:                    48   inherited from (global)
  Latest snapshots:                    10   inherited from (global)
  Ignore identical snapshots:       false   inherited from (global)

Files policy:
  Ignore cache directories:          true   inherited from (global)
  No ignore rules:
  Read ignore rules from files:             inherited from (global)
    .kopiaignore
  Scan one filesystem only:         false   inherited from (global)

Error handling policy:
  Ignore file read errors:          false   inherited from (global)
  Ignore directory read errors:     false   inherited from (global)
  Ignore unknown types:              true   inherited from (global)

Scheduling policy:
  Scheduled snapshots:
  Run missed snapshots:              true   inherited from (global)
  Snapshot times:                           (defined for this target)
    1:00
  Manual snapshot:                  false   inherited from (global)

Uploads:
  Max parallel snapshots (server/UI):   1   inherited from (global)
  Max parallel file reads:              -   inherited from (global)
  Parallel upload above size:      2.1 GB   inherited from (global)

Compression:
  Compressor:             deflate-default   (defined for this target)
  Compress files regardless of extensions.
  Compress files of all sizes.

No actions defined.

Logging details (0-none, 10-maximum):
  Directory snapshotted:                5   inherited from (global)
  Directory ignored:                    5   inherited from (global)
  Entry snapshotted:                    0   inherited from (global)
  Entry ignored:                        5   inherited from (global)
  Entry cache hit:                      0   inherited from (global)
  Entry cache miss:                     0   inherited from (global)

⑥ 恢复

kopia snapshot restore [<flags>] <sources>
--snapshot-time=SNAPSHOT-TIME				# 指定从哪个快照恢复,默认最新快照

以下是一些可能会用到的命令,官网也有

存储库类型
filesystem s3 b2 gcs gdrive webdav sftp rclone 

将存储库数据同步至其他存储库
kopia repository sync-to

diff -                           显示两个存储库对象(文件或目录)之间的差异
list -                           列出存储在存储库对象中的目录
restore -                        还原目录或文件
show -                           显示存储库对象的内容
mount -                          将存储库对象挂载为本地文件系统

export KOPIA_PASSWORD=<密码>     shell中免输入储存库密码

用于快照的命令
snapshot copy-history -          从其他用户或主机执行快照历史记录的副本
snapshot move-history -          从其他用户或主机执行快照历史记录的移动
snapshot create -                创建本地目录或文件的快照
snapshot delete -                通过提供快照 ID 显式删除快照
snapshot estimate -              估计快照大小和上传时间
snapshot expire -                根据定义的过期策略删除旧快照
snapshot fix invalid-files -     从快照中删除对任何无效(不可读)文件的引用
snapshot fix remove-files -      从快照中删除对指定文件的引用
snapshot list -                  列出文件和目录的快照
snapshot migrate -               从其他存储库迁移快照
snapshot pin -                   添加或删除防止快照删除的引脚
snapshot restore -               还原目录或文件
snapshot verify -                验证存储的快照的内容

用于操作快照策略的命令
policy edit -                    为单个目录、user@host或全局策略设置快照策略
policy list -                    列出策略
policy delete -                  删除单个目录、user@host或全局策略的快照策略
policy set -                     为单个目录、user@host或全局策略设置快照策略
policy show -                    显示快照策略
        
连接至存储库
repository connect server -      连接到存储库 API 服务器
repository connect from-config - 连接到提供的配置文件中的存储库
repository connect azure -       连接到 Azure Blob 存储中的存储库
repository connect b2 -          连接到 B2 存储桶中的存储库
repository connect filesystem -  连接到文件系统中的存储库
repository connect gcs -         连接到 Google Cloud Storage 存储分区中的存储库
repository connect gdrive -      连接到 Google Drive 文件夹中的存储库
repository connect rclone -      连接到基于 rclone 的存储库
repository connect s3 -          连接到 S3 存储桶中的存储库
repository connect sftp -        连接到 SFTP 存储中的存储库
repository connect webdav -      连接到 WebDAV 存储中的存储库
 
创建存储库    
repository create from-config -  在提供的配置文件中创建存储库
repository create azure -        在 Azure blob 存储中创建存储库
repository create b2 -           在 B2 存储桶中创建存储库
repository create filesystem -   在文件系统中创建存储库
repository create gcs -          在 Google Cloud Storage 存储分区中创建存储库
repository create gdrive -       在 Google Drive 文件夹中创建存储库
repository create rclone -       在基于 rclone 的提供中创建存储库
repository create s3 -           在 S3 存储桶中创建存储库
repository create sftp -         在 SFTP 存储中创建存储库
repository create webdav -       与存储库的连接
    
恢复存储库
repository repair from-config -  在提供的配置文件中修复存储库
repository repair azure -        修复 Azure Blob 存储中的存储库
repository repair b2 -           修复 B2 存储桶中的存储库
repository repair filesystem -   修复文件系统中的存储库
repository repair gcs -          修复 Google Cloud Storage 存储分区中的存储库
repository repair gdrive -       修复 Google 云端硬盘文件夹中的存储库
repository repair rclone -       在基于 rclone 的存储库中修复提供的存储库
repository repair s3 -           修复 S3 存储桶中的存储库
repository repair sftp -         修复 SFTP 存储中的存储库
repository repair webdav -       修复 WebDAV 存储中的存储库
    
repository set-client -          设置存储库客户端选项
repository set-parameters -      设置仓库参数
repository status -              显示已连接存储库的状态

    
repository sync-to from-config - 将存储库数据同步到提供的配置文件中的另一个存储库
repository sync-to azure -       将存储库数据同步到 Azure Blob 存储中的另一个存储库
repository sync-to b2 -          将存储库数据同步到 B2 存储桶中的另一个存储库
repository sync-to filesystem -  将存储库数据同步到文件系统中的另一个存储库
repository sync-to gcs -         将存储库数据同步到 Google Cloud Storage 存储分区中的另一个存储库
repository sync-to gdrive -      将存储库数据同步到 Google 云端硬盘文件夹中的另一个存储库
repository sync-to rclone -      储库数据同步到 S3 存储桶中的另一个存储库
repository sync-to sftp -        将存储库数据同步到 SFTP 存储中的另一个存储库
repository sync-to webdav -      将存储库数据同步到 WebDAV 存储中的另一个存储库
    
repository throttle get -        获取存储库的限制参数
repository throttle set -        设置存储库的限制参数
repository change-password -     更改存储库密码
repository validate-provider -   验证存储库提供程序是否与 Kopia 兼容

有错误还望大家多多指正,感谢!!!

  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值