其他分享
首页 > 其他分享> > s3cmd sync命令常用选项说明

s3cmd sync命令常用选项说明

作者:互联网

1. s3cmd sync命令常用选项说明

  • --list-md5:结合list一起使用,打印md5
  • -H, --human-readable-sizes:人性化文件大小
  • -v, --verbose:显示详细的输出
  • -d, --debug:调试信息
  • --limit-rate=LIMITRATE:将上传或下载速度限制为每秒字节数。 数量可以用字节、k 后缀的千字节或 m 后缀的兆字节表示。
  • -n, --dry-run:只显示应该上传或下载的内容,但实际上并不这样做。 仍可能执行 S3 请求以获取存储桶列表和其他信息(仅适用于文件传输命令)
  • --skip-existing:跳过存在于目的地的文件(仅适用于 [get] 和 [sync] 命令)。请谨慎使用此选项!
  • --delete-removed:删除没有对应源文件的目标对象 [sync]。请谨慎使用此选项!
  • -p, --preserve:保留文件系统属性(模式、所有权、时间戳)。 [sync] 命令的默认值。
  • -q, --quiet:不输出信息到标准输出。

文件同步相关:

  • --exclude=GLOB:通配
  • --exclude-from=FILE:从文件读取排除列表
  • --rexclude=REGEXP:正则形式的匹配排除
  • --rexclude-from=FILE:从文件读取正则形式的匹配排除
  • --include=GLOB:通配
  • --include-from=FILE:从文件读取文件列表
  • --rinclude=REGEXP:正则匹配
  • --rinclude-from=FILE:从文件读取正则匹配

ACL:

$ s3cmd modify s3://files/link.png --acl-private
$ s3cmd modify s3://files/link.png --acl-public

生命周期:

# 设置文件1天后过期
$ s3cmd modify s3://testabc/sqr.py --add-header x-delete-after:1

2. 安装s3cmd

$ pip install s3cmd
# 或:
$ yum install python-s3cmd
# 或:
$ yum install s3cmd
推荐版本2.0.1+,2.0.0版本上传大文件时有Bug。

3. 配置s3cmd

执行 s3cmd --configure 生成配置文件,一路Enter,注意跳过认证并保存配置。
......
...
Test access with supplied credentials? [Y/n] n

Save settings? [y/N] y
Configuration saved to '/root/.s3cfg'
修改一下几项:
$ vim /root/.s3cfg
access_key = <access_key>
secret_key = <secret_key>
bucket_location = <region>
host_base = <endpoint>
host_bucket = <endpoint>
use_https = False
human_readable_sizes = True
website_index = index.html
signature_v2 = True
  • 其中,access_key和secret_key是在本地创建S3用户时获得。
  • host_base是S3服务所使用的ip地址(包括端口号)。
  • host_bucket为S3用户下的一个bucket(可在配置之后再创建,但该字段不能为空)。
s3cmd 2.2.0(最新版),在某些不兼容v4的情况下,需要使用signature_v2,否则会发起两次签名重试请求。

4. 例子

      One of the most powerful commands of s3cmd is s3cmd sync used for synchronising complete directory trees to or from
       remote S3 storage. To some extent s3cmd put and s3cmd get share a similar behaviour with sync.

       Basic usage common in backup scenarios is as simple as:
            s3cmd sync /local/path/ s3://test-bucket/backup/

       This  command  will  find  all  files  under  /local/path  directory  and  copy  them  to corresponding paths under
       s3://test-bucket/backup on the remote side.  For example:
            /local/path/file1.ext         ->  s3://bucket/backup/file1.ext
            /local/path/dir123/file2.bin  ->  s3://bucket/backup/dir123/file2.bin

       However if the local path doesn't end with a slash the last directory's name is used on the remote  side  as  well.
       Compare these with the previous example:
            s3cmd sync /local/path s3://test-bucket/backup/
       will sync:
            /local/path/file1.ext         ->  s3://bucket/backup/path/file1.ext
            /local/path/dir123/file2.bin  ->  s3://bucket/backup/path/dir123/file2.bin

       To retrieve the files back from S3 use inverted syntax:
            s3cmd sync s3://test-bucket/backup/ ~/restore/
       that will download files:
            s3://bucket/backup/file1.ext         ->  ~/restore/file1.ext
            s3://bucket/backup/dir123/file2.bin  ->  ~/restore/dir123/file2.bin

       Without the trailing slash on source the behaviour is similar to what has been demonstrated with upload:
            s3cmd sync s3://test-bucket/backup ~/restore/
       will download the files as:
            s3://bucket/backup/file1.ext         ->  ~/restore/backup/file1.ext
            s3://bucket/backup/dir123/file2.bin  ->  ~/restore/backup/dir123/file2.bin

5. 使用注意事项

  • 上传大文件时,使用 --multipart-chunk-size-mb=size 指定的分片大小必须是4的倍数,否则上传会报 400(InvalidPartOrder)。
 

标签:选项,--,bucket,sync,s3cmd,s3,backup
来源: https://www.cnblogs.com/varden/p/16115012.html