当前位置: 首页 > 知识库问答 >
问题:

备份bash脚本和tar,排除日志和目录

羿季
2023-03-14

以下脚本将备份目录 /var/www/websites中的所有网站并创建。tar.gz每个网站 /var/backup

WEBROOT="/var/www/websites"
BAKPATH="/var/backup"

for vhost in "$WEBROOT"/*; do
  test -d "$vhost" || continue
  base=$(basename "$vhost")
  ( cd "$WEBROOT" && tar -cpzf "$BAKPATH/$(date +%F)_$base.tar.gz" "$base" )
done

但是,我需要从备份中排除日志文件夹和一个网站,就像我们通常使用tar作为

--exclude=$BAKPATH/*/logs或--EXCLUDES=$BAKBATH/website2.com

我不知道把它放在哪里?我试着跟随但它不工作

WEBROOT="/var/www/websites"
BAKPATH="/var/backup"

for vhost in "$WEBROOT"/*; do
  test -d "$vhost" || continue
  base=$(basename "$vhost")
  ( cd "$WEBROOT" && tar -cpzf "$BAKPATH/$(date +%F)_$base.tar.gz --exclude=$BAKPATH/*/logs --exclude=$BAKPATH/website2.com" "$base")
done

我应该放在哪里

-exclude = $ bak path/*/logs-exclude = $ bak path/website 2 . com

所以它需要影响?

共有2个答案

尹辰沛
2023-03-14

在从不同来源获得一些反馈后,我可以通过添加以下几行if条件来实现这一点

##ADD THIS
  if [[ $vhost = *"website1.com"* || $vhost = *"website2.co.uk"* ]]; then
  continue
  fi
##

所以,最终脚本看起来是这样的

WEBROOT="/var/www/websites"
BAKPATH="/var/backup"

for vhost in "$WEBROOT"/*; do
  test -d "$vhost" || continue
  if [[ $vhost = *"website1.com"* || $vhost = *"website2.co.uk"* ]]; then
  continue
  fi
  base=$(basename "$vhost")
  ( cd "$WEBROOT" && tar -cpzf "$BAKPATH/$(date +%F)_$base.tar.gz" "$base" )
done
韦睿
2023-03-14

$BAKPATH是创建备份进程目标(存档,*.tgz文件)的位置。如果要从源中排除某些内容,则必须指定源中的路径:

tar -cpz --exclude "$base/logs" \
    -f "$BAKPATH/$(date +%F)_$base.tar.gz" "$base"

这将排除与glob模式$base/logs匹配的所有文件(以及下面的所有文件)。

根据您的问题,我假设您想要排除名为< code >/var/www/websites/cardboard webshop/logs/access . log 的文件。如果这是不正确的,请评论,也许我们可以弄清楚你到底需要写什么来排除你想排除的。

 类似资料:
  • 我有一个要求,其中写入日志文件的日志条目需要具有特定格式。 例如: 2016-01-28 21:42:48,399 INFO field d1: value e1;字段2: value e2;字段3: value e3;字段4: value e4 我们正在使用日志返回进行日志记录。字段的值存储在 java 对象中。有关如何使用自定义附加器/布局或任何其他方法实现这一点的任何建议或指针都将有很大的帮

  • 本文向大家介绍Tomcat日志文件定时清理备份的脚本,包括了Tomcat日志文件定时清理备份的脚本的使用技巧和注意事项,需要的朋友参考一下 以下脚本主要备份的日志文件为tomcat的catalina.out、localhost_access_log.yyyy-mm-dd.log日志和项目的日志文件,其中项目的日志文件格式为"projectname-yyyy-mm-dd.log",以下为备份脚本,具

  • 本文向大家介绍用Python写脚本,实现完全备份和增量备份的示例,包括了用Python写脚本,实现完全备份和增量备份的示例的使用技巧和注意事项,需要的朋友参考一下 需求: 在/root/backup下面有两个文件夹dst和src。要求在周一的时候进行完全备份,其余日子进行增量备份。从src备份到dst。 思路及关键点: 建立一个文件,以字典方式记录src的文件名以及文件对应的md5的值 完全备份的

  • 本文向大家介绍Oracle自动备份脚本,包括了Oracle自动备份脚本的使用技巧和注意事项,需要的朋友参考一下 废话不多说了,直接给大家贴代码了,具体代码如下所示: 接下来给大家介绍linux oracle自动备份脚本 1、备份脚本: 2、添加到任务调度 crontab -u oracle -e * 3 * * * /home/bakup/bakup.sh 即每天凌晨3点进行备份 如需每天备份多次

  • Shell 脚本定期备份 mysql_config_editor — MySQL Configuration Utility 需要配置下mysql_config_editor mysql_config_editor set --login-path=client --host=localhost --user=localuser --password backup_parent_dir

  • 问题内容: 我想从dnsmasq收集和处理日志,因此决定使用ELK。Dnsmasq用作DHCP服务器和DNS解析器,因此它为这两种服务创建日志条目。 我的目标是将所有包含请求者IP,请求者主机名(如果有)和请求者mac地址的DNS查询发送到Elasticsearch。这样一来,无论设备IP是否更改,我都可以按mac地址对请求进行分组,并显示主机名。 我想做的是以下几点: 1)阅读以下条目: 2)临