Исключая каталог при использовании tar - PullRequest
0 голосов
/ 14 февраля 2019

У меня довольно простой bash-скрипт, который запускается каждую ночь через crontab.

Проблема, с которой я сталкиваюсь, - игнорирование одного из каталогов при архивировании моего сайта с использованием tar.Кажется, оно все еще включено.

Есть мысли?

#!/bin/bash

NOW=$(date +"%Y-%m-%d-%H%M")

DB_USER=""
DB_PASS=""
DB_NAME=""
DB_HOST=""

TREE_FILE="$NOW.tar.gz"
DB_FILE="$DB_NAME.$NOW.sql"

BACKUP_DIR="/var/www/html/site/backups/"
WWW_DIR="/var/www/html/site/"

mkdir -p $BACKUP_DIR
tar -czvf $BACKUP_DIR/$TREE_FILE --exclude=/var/www/html/site/backups/ $WWW_DIR

mysqldump -h$DB_HOST -u$DB_USER -p$DB_PASS $DB_NAME > $BACKUP_DIR/$DB_FILE

find $BACKUP_DIR -type f -mtime +7 -delete

1 Ответ

0 голосов
/ 14 февраля 2019

Я считаю, что tar удаляет любые косые черты из путей к каталогам, поэтому я думаю, что вы просто хотите оставить косую черту в своем шаблоне:

tar -czvf $BACKUP_DIR/$TREE_FILE --exclude=/var/www/html/site/backups $WWW_DIR

Это исключит каталог backups и все, что под ним., но не (например) файл с именем backupsthing.

Вы также можете сделать что-то вроде этого:

tar -czvf $BACKUP_DIR/$TREE_FILE --exclude="/var/www/html/site/backups/*" $WWW_DIR

Это будет включать в себя сам backups dir, но ничего подЭто.(То есть у вас будет пустой каталог в смоле.)

...