假设有一个名为domains
in的文件夹glassfish
。它有domain1
,domain2
...。domainN
我想从目录中取出所有内容domain1
并将logs
它们保存到/home/user/backup
目录中。
我可以手动执行此操作,
cp -R /home/user/glassfish/domains/domain1 /home/user/backup
rm -rf /home/user/backup/domain1/logs
但我怎样才能更轻松地做到这一点呢?
您可以使用
rsync
代替cp
. 除了有一个排除选项外,本地到本地副本的基本相同您可以使用该
cp
命令并排除包含日志的文件夹,!(excluded_folder)
如果您不想使用rsync
或tar
或者
如果你想排除更多文件夹,你可以使用
|
类似的!(excluded_folder1|excluded_folder2|excluded_folder3)
确保您的 shell 支持扩展模式匹配(例如,启用该
extglob
选项的 Bash)。如果你想在 bash 脚本中使用它:
如果您收到类似错误
!": event not found"
检查这个帖子:
什么是“-bash:!”: 未找到事件”
您可以使用
zip
或tar
来制作存档副本:等等。或者与
zip
:通过这种方式,您可以根据日期命名档案,这样您就可以在那里保留记录的历史记录。
如果您不能依赖 shell 语法,您可以使用
find
和cpio
传递模式:以下
cpio
选项可能更令人感兴趣(如果您的实现支持它们):服务器上没有 rsync,并且不允许安装访问。同样地
该命令不起作用。
有效的是:(来自您要备份的目录)