Почему папка /home отсутствует в моем резервном архиве, созданном tar?

Почему папка /home отсутствует в моем резервном архиве, созданном tar?

Итак, я делаю полное резервное копирование своего VPS с помощью следующей команды (конечно, как root):

tar czvf 20120604.tar.gz /

Все вроде бы в порядке, все файлы отображаются в списке. Размер архива 6 Гб, а сжатой версии 11 Гб, включая /home, поскольку у меня всего 11 Гб данных на VPS. Но когда я пытаюсь распаковать архив или открыть его с помощью mc или WinRAR, папки /home нет. И WinRAR сообщает 20120604.tar.gz - TAR+GZIP archive, unpacked size 894 841 346 bytes. Это не может быть ошибкой WinRAR, поскольку при вводе tar xzvf 20120604.tar.gz, /homeпапка тоже не распаковывается.

Почему /homeпапка отсутствует в моем архиве? И что я могу сделать, чтобы включить ее туда?

tar --versionвыводит следующее:tar (GNU tar) 1.15.1

решение1

Я очень подозреваю, что исключение каталога /homeв вашей резервной копии tar'd является результатом выполнения от имени root (домашний каталог root - /root/). Взглянув на страницу руководства (взятую изhttp://linux.die.net/man/1/tar), следующие вариантыможетпотенциальная причина/решение/отладка вашей ситуации:

  Main operation mode: 
    -C, --directory=DIR
        change to directory DIR 
    -p, --preserve-permissions
        extract information about file permissions (default for superuser) 
    -v, --verbose
        verbosely list files processed 

  Operation modifiers:
    -g, --listed-incremental=FILE
        handle new GNU-format incremental backup 
    -G, --incremental
        handle old GNU-format incremental backup 

  Handling of file attributes: 
    --group=NAME
        force NAME as group for added files 
    --mode=CHANGES
        force (symbolic) mode CHANGES for added files 
    --no-same-owner
        extract files as yourself (default for ordinary users) 
    --no-same-permissions
        apply the user's umask when extracting permissions from the archive (default for ordinary users) 
    --no-xattrs
        Don't extract the user/root xattrs from the archive 
    --numeric-owner
        always use numbers for user/group names 
    --owner=NAME
        force NAME as owner for added files 
    -p, --preserve-permissions, --same-permissions
        extract information about file permissions (default for superuser) 
    --same-owner
        try extracting files with the same ownership as exists in the archive (default for superuser) 
    --xattrs
        Save the user/root xattrs to the archive 

  Device selection and switching:
    --force-local
        archive file is local even if it has a colon 

  Archive format selection:
    -H, --format=FORMAT
        create archive of the given format--FORMAT is one of the following: 
    gnu, oldgnu, pax, posix, ustar, v7, --old-archive, --portability, 
    --pax-option=keyword[[:]=value][,keyword[[:]=value]]... , --posix, 
    -V, --label=TEXT
        <see webpage/ man page for details>

  Local file selection:
    --add-file=FILE
        add given FILE to the archive (useful if its name starts with a dash) 
    -C, --directory=DIR
        change to directory DIR 
    -h, --dereference
        follow symlinks; archive and dump the files they point to 
    --hard-dereference
        follow hard links; archive and dump the files they refer to 
    -K, --starting-file=MEMBER-NAME
        begin at member MEMBER-NAME in the archive 
    --one-file-system
        stay in local file system when creating archive 
    -P, --absolute-names
        don't strip leading '/'s from file names 
    --recursion
        recurse into directories (default) 

  File name transformations:
    --no-anchored
        patterns match after any '/' (default for exclusion) 
    --no-ignore-case
        case sensitive matching (default) 
    --no-wildcards
        verbatim string matching 
    --no-wildcards-match-slash
        wildcards do not match '/' 
    --wildcards
        use wildcards (default) 
    --wildcards-match-slash
        wildcards match '/' (default for exclusion) 

  Informative output:
    --index-file=FILE
        send verbose output to FILE 
    -l, --check-links
        print a message if not all links are dumped 
    --show-defaults
        show tar defaults 
    --show-omitted-dirs
        when listing or extracting, list each directory that does not match search criteria 
    --show-transformed-names, --show-stored-names
        show file or archive names after transformation 
    -v, --verbose
        verbosely list files processed 
    -w, --interactive, --confirmation
        ask for confirmation for every action 

Конечно, МНОГО чего нужно рассмотреть, но команды Linux — это ничто, если они не гибкие и мощные. Я полагаю, что если вы изучите каждый из этих вариантов, используя тестовый ящик с ограниченной структурой файловой системы, запустив дистрибутив, который вы собираетесь использовать, вы наткнетесь на точную комбинацию, которую нужно включить в ваш скрипт, чтобы получить именно тот результат, который вы хотите.

Ради создания общих знаний, не могли бы вы опубликовать решение, которое обеспечивает желаемое вами поведение?

Связанный контент