Как вы отслеживаете прогресс DejaDup?
У меня есть приложение "Резервное копирование" DejaDup для резервного копирования моей домашней папки на зашифрованный внешний жесткий диск USB, но это занимает несколько часов. Кнопка GUI "резервное копирование сейчас" выделена серым цветом, что означает, что она запущена, а Gnome говорит "запуск резервного копирования по расписанию". Однако я понятия не имею, сколько времени это займет. Есть ли способ получить информацию о прогрессе от DejaDup?
Вверху показано, что процесс дублирования выполняется с опцией --log-fd=16
, Страница руководства Duplicity указывает, что это дескриптор файла журнала, в который он записывает обновления статуса. Однако, если я бегу tail -f 16
Я получаю ошибку tail: no files remaining
, Как мне прочитать этот дескриптор файла журнала?
2 ответа
Я думаю, что вы можете контролировать это так:
используя ps, получите PID и log fd, например
$ ps aux | grep duplicity
username 12345 97.2 4.9 878235 345123 ? Rsl 02:21 15:02 python2 /usr/bin/duplicity --exclude=/run/media/..... --tempdir=/home/username/.cache/deja-dup/tmp --log-fd=18
PID - 12345, а дескриптор файла - 18.
Затем перейдите к /proc/PID/fd (/proc/12345/fd)
и вместо того, чтобы пытаться привязать дескриптор файла 18, используйте cat или grep.
$ cat 18
Это показывает слишком много информации для меня. 90% из этого - мои исключенные шары.
$ grep "examining path" 18
хорошо работает, чтобы увидеть, какой файл проверяется. Если вы посмотрите на вывод, вы также можете сосредоточиться на том, когда он находит файлы совпадающими (и не нуждаются в резервном копировании) или когда они отличаются.
На основе решения, предоставленного @RichardSchwarting, я создал следующую команду, которая проверяет, запущен ли процесс и выполняет ли кот /proc/x/fd/y
:
pid=$(pgrep -n duplicity); if [ $pid ]; then fd=$( ps -o cmd --no-headers $pid | sed -E 's/.+(log-fd=[0-9]+).?/\1/' | cut -f2 -d =); if [ $fd ]; then cat /proc/$pid/fd/$fd; else echo "fd not found"; fi else echo "pid not found"; fi
Я расширил ответ Ричарда. /questions/18054/kak-vyi-otslezhivaete-progress-dejadup/18061#18061
cat /proc/$(pgrep duplicity)/fd/$(ps aux | grep duplicity | perl -lne 'push @a,/fd=(\d+)/g;END{print "@a"}')