Compare - linux cli

For some reason I am stuck (again) on the compare command.
I am using linux

The files are located on E2
I tried the following

duplicati-cli compare "s3://theactualserver.com/thebucket/thefolder?auth-username=thekey&auth-password=thepassword" 0 1 --full-result

I am getting

Enter encryption passphrase: 
  Listing remote folder ...
  Listing remote folder ...
  Listing remote folder ...
  Listing remote folder ...
  Listing remote folder ...
The operation ListChanges has failed with error: The AWS Access Key Id you provided does not exist in our records. => The AWS Access Key Id you provided does not exist in our records.

Amazon.S3.AmazonS3Exception: The AWS Access Key Id you provided does not exist in our records. ---> Amazon.Runtime.Internal.HttpErrorResponseException: The remote server returned an error: (403) Forbidden. ---> System.Net.WebException: The remote server returned an error: (403) Forbidden.
  at System.Net.HttpWebRequest.GetResponseFromData (System.Net.WebResponseStream stream, System.Threading.CancellationToken cancellationToken) [0x0017e] in <a85c1a570f9a4f9f9c3d2cfa5504e34f>:0 
  at System.Net.HttpWebRequest.RunWithTimeoutWorker[T] (System.Threading.Tasks.Task`1[TResult] workerTask, System.Int32 timeout, System.Action abort, System.Func`1[TResult] aborted, System.Threading.CancellationTokenSource cts) [0x00118] in <a85c1a570f9a4f9f9c3d2cfa5504e34f>:0 
  at System.Net.HttpWebRequest.GetResponse () [0x00019] in <a85c1a570f9a4f9f9c3d2cfa5504e34f>:0 
  at Amazon.Runtime.Internal.HttpRequest.GetResponse () [0x00000] in <1d5e23fb32014e869fdd576305c21e36>:0 
   --- End of inner exception stack trace ---
  at Amazon.Runtime.Internal.HttpRequest.GetResponse () [0x0003a] in <1d5e23fb32014e869fdd576305c21e36>:0 
  at Amazon.Runtime.Internal.HttpHandler`1[TRequestContent].InvokeSync (Amazon.Runtime.IExecutionContext executionContext) [0x00073] in <1d5e23fb32014e869fdd576305c21e36>:0 
  at Amazon.Runtime.Internal.PipelineHandler.InvokeSync (Amazon.Runtime.IExecutionContext executionContext) [0x0000e] in <1d5e23fb32014e869fdd576305c21e36>:0 
  at Amazon.Runtime.Internal.RedirectHandler.InvokeSync (Amazon.Runtime.IExecutionContext executionContext) [0x00000] in <1d5e23fb32014e869fdd576305c21e36>:0 
  at Amazon.Runtime.Internal.PipelineHandler.InvokeSync (Amazon.Runtime.IExecutionContext executionContext) [0x0000e] in <1d5e23fb32014e869fdd576305c21e36>:0 
  at Amazon.Runtime.Internal.Unmarshaller.InvokeSync (Amazon.Runtime.IExecutionContext executionContext) [0x00000] in <1d5e23fb32014e869fdd576305c21e36>:0 
  at Amazon.Runtime.Internal.PipelineHandler.InvokeSync (Amazon.Runtime.IExecutionContext executionContext) [0x0000e] in <1d5e23fb32014e869fdd576305c21e36>:0 
  at Amazon.S3.Internal.AmazonS3ResponseHandler.InvokeSync (Amazon.Runtime.IExecutionContext executionContext) [0x00000] in <bd464cdb92394af6a8e27f353fa19333>:0 
  at Amazon.Runtime.Internal.PipelineHandler.InvokeSync (Amazon.Runtime.IExecutionContext executionContext) [0x0000e] in <1d5e23fb32014e869fdd576305c21e36>:0 
  at Amazon.Runtime.Internal.ErrorHandler.InvokeSync (Amazon.Runtime.IExecutionContext executionContext) [0x00000] in <1d5e23fb32014e869fdd576305c21e36>:0 
   --- End of inner exception stack trace ---
  at Duplicati.Library.Main.BackendManager.List () [0x00049] in <9b99db820df3422db0aa96d4648dc7b1>:0 
  at Duplicati.Library.Main.Operation.ListChangesHandler.Run (System.String baseVersion, System.String compareVersion, System.Collections.Generic.IEnumerable`1[T] filterstrings, Duplicati.Library.Utility.IFilter compositefilter, System.Action`2[T1,T2] callback) [0x0018b] in <9b99db820df3422db0aa96d4648dc7b1>:0 
  at Duplicati.Library.Main.Controller+<>c__DisplayClass28_0.<ListChanges>b__0 (Duplicati.Library.Main.ListChangesResults result) [0x0001c] in <9b99db820df3422db0aa96d4648dc7b1>:0 
  at Duplicati.Library.Main.Controller.RunAction[T] (T result, System.String[]& paths, Duplicati.Library.Utility.IFilter& filter, System.Action`1[T] method) [0x0036c] in <9b99db820df3422db0aa96d4648dc7b1>:0 
  at Duplicati.Library.Main.Controller.ListChanges (System.String baseVersion, System.String targetVersion, System.Collections.Generic.IEnumerable`1[T] filterstrings, Duplicati.Library.Utility.IFilter filter, System.Action`2[T1,T2] callback) [0x0003e] in <9b99db820df3422db0aa96d4648dc7b1>:0 
  at Duplicati.CommandLine.Commands.ListChanges (System.IO.TextWriter outwriter, System.Action`1[T] setup, System.Collections.Generic.List`1[T] args, System.Collections.Generic.Dictionary`2[TKey,TValue] options, Duplicati.Library.Utility.IFilter filter) [0x0013a] in <9d657b7dc88f485dace9c7c7f0f16ee1>:0 
  at (wrapper delegate-invoke) System.Func`6[System.IO.TextWriter,System.Action`1[Duplicati.Library.Main.Controller],System.Collections.Generic.List`1[System.String],System.Collections.Generic.Dictionary`2[System.String,System.String],Duplicati.Library.Utility.IFilter,System.Int32].invoke_TResult_T1_T2_T3_T4_T5(System.IO.TextWriter,System.Action`1<Duplicati.Library.Main.Controller>,System.Collections.Generic.List`1<string>,System.Collections.Generic.Dictionary`2<string, string>,Duplicati.Library.Utility.IFilter)
  at Duplicati.CommandLine.Program.ParseCommandLine (System.IO.TextWriter outwriter, System.Action`1[T] setup, System.Boolean& verboseErrors, System.String[] args) [0x00342] in <9d657b7dc88f485dace9c7c7f0f16ee1>:0 
  at Duplicati.CommandLine.Program.RunCommandLine (System.IO.TextWriter outwriter, System.IO.TextWriter errwriter, System.Action`1[T] setup, System.String[] args) [0x00002] in <9d657b7dc88f485dace9c7c7f0f16ee1>:0

But at the same time - I created a RO key twice. I even tried with the live key that I am creating the backup and I am still failing.

The other thing that I tried

duplicati-cli compare "e2://theactualserver.com/thebucket/thefolder?auth-username=thekey&auth-password=thepassword" 0 1 --full-result

Not sure why I am stuck this time. If somebody can help me please?

Duplicati - 2.0.8.1_beta_2024-05-07

I solved this one. Ah - it took me some time.

What I used is

duplicati-cli compare "e2://thebucket/thefolder?auth-username=thekey&auth-password=thepassword" 1 0 --full-result

So - no need to enter the server, just specify that it is “e2” then only the bucket and the folder.
I reversed the version from 0 1 to 1 0 and it gives me the incremental changes.

If the backup is configured in the UI and you want to use the commandline, you can add the --dbpath=<path to local db> and --no-encryption arguments. This will just use the database and give you the results faster, without even having the correct authentication details.

If the backup is created via the commandline, the url will be used to locate the database automatically.

1 Like

This works very well! Thank you!