When I run restic from terminal with --verbose I get a nice running update with the time elapsed and the files/size processed so far; its great to tell how far restic is from finishing.
When I run the same command in a script with “tee” to log the output I no longer get the progress bar. I dont want the progress bar updates in the log file but having it come out on terminal would be handy.
My ultimate intention is to have the script run in a cron job (where progress bar not needed) but also from time to time running interactively so having the progress bar is important to see if restic is still alive/working
Is there a way to get this desired behaviour?
As far as I know restic only shows progress if output is a tty.
If on Linux you could use script tool to workaround this issue:
script -q -c "here your restic command" | tee /path/to/logfile
Then you will see the progress and you get a log. Keep in mind that in the log there will be a lot of “progress garbage” so if you want to get a clean logfile, once restic command ends:
cat /path/to/logfile > /path/to/logfile-without-progress-garbage
Unfortunately, the script tool solution won’t work if you don’t run it in a tty so if you plan to use cron it won’t work (at least in the test I did a few minutes ago).
The ideal is that restic, in a non tty execution, would write only 1%, 5%, 10% progress or something like that to output so we could check what is the backup progress.
There is an open issue regarding this subject https://github.com/restic/restic/issues/2265 but I’m afraid it didn’t receive any attention.
I hope someone else could give a solution to this issue (I’m interested too ).