我一直在尝试找出如何备份文件服务器(通过smb的CentOS)用户文件夹中的内容,而忽略某些文件类型和目录的方法。看起来这应该很容易,但是我在弄清楚如何忽略多个目录方面一无所获。
我想忽略以下内容:
.
或_
开头的文件和目录~$*
).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/