我有一个非常简单的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
答案 0 :(得分:1)
我相信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
目录本身,但目录下没有任何内容。 (即,您在tar中有一个空目录。)