autorestic icon indicating copy to clipboard operation
autorestic copied to clipboard

Showing during the backup the progress in percentage of every single location

Open nicfab opened this issue 1 year ago • 5 comments

Hi! I am new to autorestic. I didn't find any resources related to the subject. It will be helpful, during the backup, to show the percentage related to the progress status. Currently, after running the backup of a single location via the command autorestic -v backup -l locationname I see only:

Backing up location "locationname"

Running hooks
> echo "Checks"
> Executing: /opt/homebrew/bin/bash -c echo "Checks"
Checks

Running hooks
> curl -m 10 --retry 5 -X POST -H "Content-Type: text/plain" --data "Starting backup for location: ${AUTORESTIC_LOCATION}" https://hc-ping.com/<code>/start
> Executing: /opt/homebrew/bin/bash -c curl -m 10 --retry 5 -X POST -H "Content-Type: text/plain" --data "Starting backup for location: ${AUTORESTIC_LOCATION}" https://hc-ping.com/<code>/start
OK
Backend: backendname
> Executing: /opt/homebrew/bin/restic backup --tag locationname --tag ar:location:locationname PATH
no parent snapshot found, will read all files

As you can see, the last two rows show only that the backup started, but I cannot know how many files, the percentage status, etc.

nicfab avatar May 14 '24 15:05 nicfab

AFAICS, you need to do two things to make autorestic echo restic's progress info:

  1. Pass the --verbose flag to autorestic.

  2. Set the RESTIC_PROGRESS_FPS env var, which tells restic how frequently to show progress information. As described in the restic docs:

    When running from a non-interactive console progress reporting is disabled by default to not fill your logs. For interactive and non-interactive consoles the environment variable RESTIC_PROGRESS_FPS can be used to control the frequency of progress reporting. Use for example 0.016666 to only update the progress once per minute.

    When restic is being run via autorestic, it detects it's in a non-interactive console progress, so it disables progress reporting by default; this env var lets you switch it back on.

So e.g. you could have an .autorestic.yml something like this, to give updates every 10 seconds:

version: 2

global:
  all:
    verbose: true

extras:
  env: &access
    AWS_ACCESS_KEY_ID: XXX
    AWS_SECRET_ACCESS_KEY: XXX
    RESTIC_PROGRESS_FPS: 0.1

locations:

  foo:
    from: /mnt/foo
    to: s3-foo

  bar:
    from: /mnt/bar
    to: s3-bar
 
backends:

  foo:
    type: s3
    path: XXX
    env:
      <<: *access

  bar:
    type: s3
    path: XXX
    env:
      <<: *access

HTH.

gimbo avatar Sep 12 '24 12:09 gimbo

Thank you. I was actually referring to a progress bar, which says the percentage.

nicfab avatar Sep 12 '24 19:09 nicfab

OK but you get something like this:

[0:23] 1.07%  149 files 105.819 MiB, total 1200 files 9.619 GiB, 0 errors ETA 35:17

That isn't a progress bar, but it does show a percentage, file count, size, ETA...? 🤷‍♂️

gimbo avatar Sep 13 '24 09:09 gimbo

I want to be clear: you know that there are expert, medium, and newbie users. I consider myself an expert user., although I am not a technical. My comment is only a suggestion to provide users the opportunity (optional) for a more straightforward process view. During the backup process, with the verbose mode, you see a lot of information scrolling that (probably) makes it difficult for a medium or newbie user to follow. In the past, I used "resticprofile", which shows a progress bar with the percentage; that way, the user knows the situation and whether it will take a few or a long time. A simple progress bar with some additional backup and transfer information (e.g., on S3) might be a solution for a simpler view.

nicfab avatar Sep 14 '24 06:09 nicfab

Aha. Yes, in that case: agreed, that would be useful.

gimbo avatar Sep 14 '24 11:09 gimbo