s3cmd - 如何使用s3cmd进行备份,而忽略多个目录和文件类型

标签 s3cmd

我一直在尝试找出如何备份文件服务器(通过smb的CentOS)用户文件夹中的内容,而忽略某些文件类型和目录的方法。看起来这应该很容易,但是我在弄清楚如何忽略多个目录方面一无所获。

我想忽略以下内容:

  • 所有以._开头的文件和目录
  • 所有MS Office临时文件(例如~$*)
  • 锁定文件(例如.lock)

  • 我尝试了--exclude标志的许多不同组合,但无法正常工作。

    这是最有意义的命令,但并不排除任何内容:
    s3cmd sync --dry-run --verbose --delete-removed --exclude '.*' '_*' '~$*' '*.lock' /home/user-folder s3://bucket-name/
    

    最佳答案

    如果您已经在使用.gitignore,则可以执行类似的操作

    s3cmd sync --exclude '.git/*' --exclude-from .gitignore <local_dir> s3://<bucket>/
    

    this blog post中所述,并由official docs中的--exclude-from文档确认(Ctrl + F并搜索“exclude-from”)。

    它运作良好,但有一个小缺点:如果要排除.gitignore中的文件夹,则还必须排除其内容,否则s3cmd将抢占其内容。但是,这很容易,您可以在<foldername>/*内添加类似于.gitignore的行,一切正常。

    编辑:

    好吧,比这更好。设置一个.s3ignore文件,并从sync命令中引用它:
    s3cmd sync --exclude-from .s3ignore <local_dir> s3://<bucket>/
    
    .s3ignore示例:
    .git
    .git/*
    .gitignore
    node_modules
    node_modules/*
    *.swo
    *.swp
    *.pyo
    *.pyc
    

    关于s3cmd - 如何使用s3cmd进行备份,而忽略多个目录和文件类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18963124/

    相关文章:

    centos - 没有可用的包 s3cmd

    linux - S3CMD 超时

    linux - 除了 s3cmd 之外,自动同步两个 Amazon S3 存储桶?

    amazon-s3 - 使用 s3cmd 覆盖文件

    amazon-web-services - Amazon s3 – 403 Forbidden with Correct Bucket Policy

    amazon-s3 - 来自 s3cmd 的 POST 或 PUSH 操作在某个 Internet 连接上失败

    hadoop - s3cmd不是 “Getting” distcp jar文件

    ubuntu - S3Cmd 作为 www-data 失败并以 root 身份工作

    amazon-s3 - s3cmd 获取整个目录

    python - 如何在Python中导入S3cmd