1

После резервного копирования с помощью 'rsync --archive --update' моего домашнего каталога из ext4 в btrfs, rsync сообщает об ошибках, подобных этой:

rsync: readdir("/mnt/backup/home/me/.mozilla/firefox/qbdcaxwe.default/sessions/????????? ??????"): Not a directory (20)                
rsync: rename "/mnt/backup/home/me/.mutt/cache/bodies/imaps:myemail@imap.gmail.com/INBOX/.3-13228.NMKGEN" ->                           
+"home/me/.mutt/cache/bodies/imaps:myemaill@imap.gmail.com/INBOX/3-13228": Not a directory (20) 

Когда я пытаюсь удалить эти элементы с помощью «rm» - появляется сообщение об ошибке, что этот элемент является каталогом. Но 'rm -d' завершается ошибкой с сообщением "не удается удалить ...: нет такого файла или каталога." 'btrfs check' и 'btrfs scrub' не обнаружили ошибок файловой системы.

Вот вывод для команд 'file', 'rm' и 'rmdir':

$ file /.../.mutt/cache/bodies/imaps:myemail@imap.gmail.com/INBOX/.3-13228.NMKGEN
/.../.mutt/cache/bodies/imaps:myemail@imap.gmail.com/INBOX/.3-13228.NMKGEN: SMTP mail, Non-ISO extended-ASCII text, with very long lines
$ rm /.../.mutt/cache/bodies/imaps:myemail@imap.gmail.com/INBOX/.3-13228.NMKGEN
rm: remove regular file ‘/.../.mutt/cache/bodies/imaps:myemail@imap.gmail.com/INBOX/.3-13228.NMKGEN’? y
rm: cannot remove ‘/.../.mutt/cache/bodies/imaps:myemail@imap.gmail.com/INBOX/.3-13228.NMKGEN’: Not a directory
$ rmdir /.../.mutt/cache/bodies/imaps:myemail@imap.gmail.com/INBOX/.3-13228.NMKGEN
rmdir: failed to remove ‘/.../.mutt/cache/bodies/imaps:myemail@imap.gmail.com/INBOX/.3-13228.NMKGEN’: Not a directory

Как такие элементы файловой системы могут быть удалены?

2 ответа2

1

Резервное копирование homedir пользователя может иметь проблемы, если оно выполняется пользователем во время работы приложений, так как приложения могут сохранять открытые файлы и / или добавлять / удалять файлы и директории и мешать процессу резервного копирования.

Гораздо лучше (если это возможно) создать резервную копию от имени пользователя root, когда пользователь вышел из системы.

В качестве альтернативы попытайтесь свести к минимуму количество приложений, которые вы запускаете во время резервного копирования (выйдите из графического интерфейса и выполните команду rsync из терминала командной строки).

Наконец, некоторые приложения используют специальные символы в именах файлов / каталогов, что может сбивать с толку различные утилиты. Для этого вам необходимо отслеживать вхождения (лучше всего перенаправить вывод в файл) и обрабатывать их вручную, используя альтернативные решения (экранирование символов, использование клавиши TAB для автозаполнения имен файлов / каталогов или даже других утилит копирования) по мере необходимости.

0

Если вы используете btrfs, почему бы не воспользоваться его возможностями?

сделать снимок:

sudo btrfs sub snap /home/me /home/me/.$(date +%Y-%m-%d_%H%M%S)_snapshot

rsync старой резервной копии в моментальный снимок, а не оперативные данные:

rsync --archive --update /mnt/backup/home/me/ /home/me/$(sudo btrfs subvolume list -c /home/me|tail -n1|awk '{print $NF}')/

(Я в основном использую rsync -mauvPAX из / в / #, но вам может не понадобиться все это.)

Теперь, когда у вас есть btrfs, вы можете сделать резервную копию снимка, а не живых данных, и это должно помочь избежать этой проблемы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .