2015-01-03 5 views
0

일부 경로를 다른 파티션에 백업하고 이제 하위 디렉토리를 제외하려고합니다. 하지만이 오류가 발생했습니다 :이중성 - 파일 사양 ... 기본 디렉토리의 파일과 일치하지 않음

[*] 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 
+0

죄송 합니다만, 나는 '중복성'에 대해 많이 알지 못하지만 첫 번째 오류 메시지를 먼저 처리해야합니다 ;-)'실패 : gio라는 모듈이 없습니다. ' 설치 문제 같은 것 같습니다. 행운을 빕니다. – shellter

답변

-1

어떻게 확장되지 않도록 명령 줄에 별표를 탈출 어떻습니까?