簡體   English   中英

duplicity-文件規范…不能與基本目錄中的任何文件匹配

[英]duplicity - The file specification … can not match any files in the base directory

我正在備份與其他分區重復的某些路徑,現在我想排除子目錄。 但是我得到了這個錯誤:

[*] duplicity --full-if-older-than 1M --no-encryption -v4 --volsize 100 --exclude "/home/usera/gemeinfrei/epubs/**" "/home/usera" "file:///var/backups/backup/home/usera"
Import of duplicity.backends.giobackend Failed: No module named gio
Fatal Error: The file specification
    "/home/usera/gemeinfrei/epubs/**
cannot match any files in the base directory
    /home/usera
Useful file specifications begin with the base directory or some
pattern (such as '**') which matches the base directory.

奇怪的是,文件規范的確以基本目錄開頭。 還有其他我要備份的用戶目錄。 我為每個人運行一個重復程序。 或者我應該只使用一個重復進程,該進程使用多個--include選項並作為基本目錄/?

這是實際的備份腳本:

#!/bin/bash

#0 Error, 2 Warning, 4 Notice (default), 8 Info, 9 Debug (noisiest)
VERBOSE=4

BACKUP_PATH=/var/backups/backup

DUP="duplicity --full-if-older-than 1M --no-encryption -v$VERBOSE --volsize 100"

DUP_DEL="duplicity remove-older-than 2M --force -v$VERBOSE"

DUP_EXCLUDE="--exclude \"/home/usera/gemeinfrei/epubs/**\""

DIRECTORIES="/etc /home/usera /home/userb /home/userc /home/userd /home/usere /home/userf /home/userg /home/userh /var/vmail"

function doBackup() {
    for DIRECTORY in $DIRECTORIES; do
        if [ -d "$DIRECTORY" ]; then
            mkdir -p "${BACKUP_PATH}${DIRECTORY}"
            if [ -d "${BACKUP_PATH}${DIRECTORY}" ]; then
                echo "[*] $DUP $DUP_EXCLUDE \"$DIRECTORY\" \"file://${BACKUP_PATH}${DIRECTORY}\""
                $DUP $DUP_EXCLUDE "$DIRECTORY" "file://${BACKUP_PATH}${DIRECTORY}"
            else
                echo "[!] Backuppfad konnte nicht angelegt werden: ${BACKUP_PATH}${DIRECTORY}"
            fi
        fi
    done
}

function doClean() {
    for DIRECTORY in $DIRECTORIES; do
        echo "[*] $DUP_DEL \"file://${BACKUP_PATH}${DIRECTORY}\""
        $DUP_DEL "file://${BACKUP_PATH}${DIRECTORY}"
    done
}

echo -n "[*] "
date
df -h

while [ -n "$1" ]; do
    case $1 in
        "backup")
            doBackup
            ;;
        "clean")
            doClean
            ;;
        *)
            echo "[*] Unbekannter Parameter: '$1'" >&2
            ;;
    esac
    shift
done

df -h
echo -n "[*] "
date

exit 0

如何在命令行上轉義星號,以免它們不被擴展?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM