DejaVu Backup не работает для диска Google

Недавно я попытался переключить диск Google, на который загружаю свои резервные копии, но теперь утилита резервного копирования (deja-dup) просто не работает. Когда я пытаюсь сделать резервную копию, она просканирует, а затем истечет время ожидания с

Giving up after 5 attempts. timeout: The read operation timed out

. Как мне решить эту проблему и отладить? Я попытался удалить все свои онлайн-аккаунты и добавить новую учетную запись Google, которую хочу использовать. (и google, и ubuntu one) Я также пробовал переустановить duplicity и deja-dup и сбросить все мои настройки для deja-dup. Пока ничего не работает, и при запуске deja-dup с терминала нет никаких сообщений об ошибках.

Редактировать 1:

Как предложил codlord, я запустил deja dup с ] DEJA_DUP_DEBUG установлен. Вот вывод журнала:

....


DUPLICITY: INFO 1
DUPLICITY: . Added incremental Backupset (start_time: Thu Nov  5 07:57:24 2020 / end_time: Thu Nov 12 08:05:49 2020)

DUPLICITY: DEBUG 1
DUPLICITY: . Added set Thu Nov 12 08:05:49 2020 to pre-existing chain [Thu Aug 20 18:47:31 2020]-[Thu Nov 12 08:05:49 2020]

DUPLICITY: NOTICE 1
DUPLICITY: . Synchronizing remote metadata to local cache...

DUPLICITY: NOTICE 1
DUPLICITY: . Copying duplicity-full-signatures.20200821T014731Z.sigtar.gz to local cache.

DUPLICITY: DEBUG 1
DUPLICITY: . Registering (mktemp) temporary file /tmp/duplicity-2izahox3-tempdir/mktemp-aww0pdv8-2

DUPLICITY: INFO 1
DUPLICITY: . PyDrive backend: found file 'duplicity-full-signatures.20200821T014731Z.sigtar.gz' with id 135UZSkFvRDv7egAogXy6MYaHiH3iopqN on server, adding to cache

DUPLICITY: DEBUG 1
DUPLICITY: . Backtrace of previous error: Traceback (innermost last):
DUPLICITY: .   File "/usr/lib/python3/dist-packages/duplicity/backend.py", line 376, in inner_retry
DUPLICITY: .     return fn(self, *args)
DUPLICITY: .   File "/usr/lib/python3/dist-packages/duplicity/backend.py", line 570, in get
DUPLICITY: .     self.backend._get(remote_filename, local_path)
DUPLICITY: .   File "/usr/lib/python3/dist-packages/duplicity/backends/pydrivebackend.py", line 186, in _get
DUPLICITY: .     drive_file.GetContentFile(util.fsdecode(local_path.name))
DUPLICITY: .   File "/usr/lib/python3/dist-packages/pydrive/files.py", line 210, in GetContentFile
DUPLICITY: .     self.FetchContent(mimetype, remove_bom)
DUPLICITY: .   File "/usr/lib/python3/dist-packages/pydrive/files.py", line 43, in _decorated
DUPLICITY: .     return decoratee(self, *args, **kwargs)
DUPLICITY: .   File "/usr/lib/python3/dist-packages/pydrive/files.py", line 255, in FetchContent
DUPLICITY: .     self.content = io.BytesIO(self._DownloadFromUrl(download_url))
DUPLICITY: .   File "/usr/lib/python3/dist-packages/pydrive/auth.py", line 75, in _decorated
DUPLICITY: .     return decoratee(self, *args, **kwargs)
DUPLICITY: .   File "/usr/lib/python3/dist-packages/pydrive/files.py", line 503, in _DownloadFromUrl
DUPLICITY: .     resp, content = self.http.request(url)
DUPLICITY: .   File "/usr/lib/python3/dist-packages/oauth2client/transport.py", line 173, in new_request
DUPLICITY: .     resp, content = request(orig_request_method, uri, method, body,
DUPLICITY: .   File "/usr/lib/python3/dist-packages/oauth2client/transport.py", line 280, in request
DUPLICITY: .     return http_callable(uri, method=method, body=body, headers=headers,
DUPLICITY: .   File "/home/grant/.local/lib/python3.8/site-packages/httplib2/__init__.py", line 1985, in request
DUPLICITY: .     (response, content) = self._request(
DUPLICITY: .   File "/home/grant/.local/lib/python3.8/site-packages/httplib2/__init__.py", line 1650, in _request
DUPLICITY: .     (response, content) = self._conn_request(
DUPLICITY: .   File "/home/grant/.local/lib/python3.8/site-packages/httplib2/__init__.py", line 1589, in _conn_request
DUPLICITY: .     response = conn.getresponse()
DUPLICITY: .   File "/usr/lib/python3.8/http/client.py", line 1347, in getresponse
DUPLICITY: .     response.begin()
DUPLICITY: .   File "/usr/lib/python3.8/http/client.py", line 307, in begin
DUPLICITY: .     version, status, reason = self._read_status()
DUPLICITY: .   File "/usr/lib/python3.8/http/client.py", line 268, in _read_status
DUPLICITY: .     line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
DUPLICITY: .   File "/usr/lib/python3.8/socket.py", line 669, in readinto
DUPLICITY: .     return self._sock.recv_into(b)
DUPLICITY: .   File "/usr/lib/python3.8/ssl.py", line 1241, in recv_into
DUPLICITY: .     return self.read(nbytes, buffer)
DUPLICITY: .   File "/usr/lib/python3.8/ssl.py", line 1099, in read
DUPLICITY: .     return self._sslobj.read(len, buffer)
DUPLICITY: .  socket.timeout: The read operation timed out
DUPLICITY: . 

DUPLICITY: WARNING 1
DUPLICITY: . Attempt 1 failed. timeout: The read operation timed out

DUPLICITY: INFO 1
DUPLICITY: . PyDrive backend: found file 'duplicity-full-signatures.20200821T014731Z.sigtar.gz' with id 135UZSkFvRDv7egAogXy6MYaHiH3iopqN in ID cache


.... // at this point the error would repeat 4 more times and deja-dup would give up.

Кажется, это означает, что deja-dup может получить доступ к моему диску, но некоторые операции чтения не работают? Я проверил свой диск и обнаружил, что файл duplicity-full-signatures.20200821T014731Z.sigtar.gz не существует. Может, deja-dup пытается его прочитать, но не может, поскольку его не существует? Как мне это исправить?

2
задан 4 December 2020 в 08:33

1 ответ

На самом деле это не ответ на ваш вопрос как таковой, а альтернатива, которая может решить вашу проблему - крепление для диска Google, которое выглядит и действует как любое другое крепление или жесткий диск. Я использую deja-up для резервного копирования файлов, чтобы ездить таким образом, и у меня никогда не было проблем.

В прошлом у меня было множество проблем с использованием диска Google в Ubuntu со встроенной поддержкой. Это может делать основы, но это все. Поэтому я перешел на использование google-drive-ocamlfuse отсюда: https://github.com/astrada/google-drive-ocamlfuse

Все подробности на странице продукта github, но я думаю, что я сделал следующее:

Установить пакет google-drive-ocamlfuse:

sudo add-apt-repository ppa:alessandro-strada/ppa
sudo apt-get update
sudo apt-get install google-drive-ocamlfuse

Войти в веб-браузер, чтобы получить токены доступа:

google-drive-ocamlfuse -label YOUR_GOOGLE_ACCOUNT_HERE

Создать точку монтирования:

mkdir /home/wherever/Documents/mygoogledrive

Смонтировать:

google-drive-ocamlfuse -label mygoogledrive /home/wherever/Documents/mygoogledrive

И использовать fusermount -u /home/wherever/Documents/mygoogledrive для размонтирования или fusermount -uz /home/wherever/Documents/mygoogledrive для отложенного размонтирования, если -u не работает.

Лично у меня есть только сценарий запуска, который запускает команды размонтирования и монтирования, и если у меня возникнут какие-либо проблемы, я просто перезапущу сценарий.

0
ответ дан 3 December 2020 в 18:30

Другие вопросы по тегам:

Похожие вопросы: