# Welcome to the forum

**URL:** https://forum.duplicati.com/t/welcome-to-the-forum/1664
**Category:** Support
**Created:** [December 6, 2017, 9:48pm UTC](https://forum.duplicati.com/t/welcome-to-the-forum/1664 "2017-12-06T21:48:28Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![rafficer](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/r/3da27b/32.png) [@rafficer](https://forum.duplicati.com/u/rafficer)
#### Post date: [December 6, 2017, 9:48pm UTC](https://forum.duplicati.com/t/welcome-to-the-forum/1664/1 "2017-12-06T21:48:28Z")

</div>

welcome to the forum

---

<div class="post-metadata">

### Author: ![JonMikelV](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/j/439d5e/32.png) [@JonMikelV](https://forum.duplicati.com/u/JonMikelV)
#### Post date: [December 7, 2017, 5:23am UTC](https://forum.duplicati.com/t/welcome-to-the-forum/1664/2 "2017-12-07T05:23:07Z")

</div>

Hi @rafficer, welcome to the forum!

I’m glad to hear you like Duplicati, but sorry to hear you’re frustrated be the command-line interaction.

There is a `--thread-priority` parameter you can use to have Duplicati be more or less polite with the CPU. And the `--throttle-download` and `--throttle-upload` parameters can limit bandwidth use.

However there are not currently any disk usage limiters so temp file processing and local disk / USB access will always be max available. Note that temp file disk access can be mitigated a bit by using a RAM drive.

As far as command-line progress notification, the problem you’re running into is that Duplicati.CommandLine.exe passes actual execution off to whatever Duplicati server (service or Tray Icon) you’re running.

So you’d need to pull the server for status info, which is what the web GUI does. Unfortunately. I don’t know how to do that from the command line. ☹

---

<div class="post-metadata">

### Author: ![kees-z](https://forum.duplicati.com/user_avatar/forum.duplicati.com/kees-z/32/29_2.png) [@kees-z](https://forum.duplicati.com/u/kees-z)
#### Post date: [December 7, 2017, 8:46am UTC](https://forum.duplicati.com/t/welcome-to-the-forum/1664/3 "2017-12-07T08:46:54Z")

</div>

> [@rafficer](#):
>
> I want to occasionally do full verifications (using the command line). Without a progress indicator this is ridiculous though, it will work for days, weeks at worst, and I need to know where it’s at so I can calculate estimates.

How do you perform a full verification? By doing a restore of all files to a temporary location? Or by using the `test` command and supplying the number of `.dblock` files to `--backup-test-samples`? Can you provide an obfuscated version of the command you use for verification?

The commandline tools do not return detailed information when running. You can try to use the `--verbose` option to get more output.

> [@JonMikelV](#):
>
> As far as command-line progress notification, the problem you’re running into is that Duplicati.CommandLine.exe passes actual execution off to whatever Duplicati server (service or Tray Icon) you’re running.

That’s not exactly how it works. The commandline tools are fully independent from the server/service/trayicon. You even don’t have to install/start the server at all to use the commandline tools.  
The server part (that’s also included in the Tray Icon tool) is nothing more or less than a webserver and scheduler to control, schedule and start backup tasks.

Information about backend files is stored in an SQLite database. If the commandline backup points to the same SQLite database as the task in the Web UI, you can restore backups from the Web UI that are made with the commandline and vice versa.

---

<div class="post-metadata">

### Author: ![JonMikelV](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/j/439d5e/32.png) [@JonMikelV](https://forum.duplicati.com/u/JonMikelV)
#### Post date: [December 7, 2017, 2:09pm UTC](https://forum.duplicati.com/t/welcome-to-the-forum/1664/4 "2017-12-07T14:09:47Z")

</div>

> [@kees-z](#):
>
> That’s not exactly how it works. The commandline tools are fully independent from the server/service/trayicon.

Whoops! Thanks for setting me straight on that! 😊

So the server (either type) just runs the web interface and schedules / kicks off command line calls as appropriate?

In that case I assume the web UI periodically queries the server about “what’s happening” and the server directly (or via command line call) pulls entries from one of the .sqlite DB logs to be fed back for the GUI to display?

---

<div class="post-metadata">

### Author: ![kees-z](https://forum.duplicati.com/user_avatar/forum.duplicati.com/kees-z/32/29_2.png) [@kees-z](https://forum.duplicati.com/u/kees-z)
#### Post date: [December 7, 2017, 3:47pm UTC](https://forum.duplicati.com/t/welcome-to-the-forum/1664/5 "2017-12-07T15:47:03Z")

</div>

Yes, that’s about how it works. As far as I know, the commandline tools itself are not called by the server, but the same code is executed when a backup runs.

---

<div class="post-metadata">

### Author: ![kees-z](https://forum.duplicati.com/user_avatar/forum.duplicati.com/kees-z/32/29_2.png) [@kees-z](https://forum.duplicati.com/u/kees-z)
#### Post date: [December 9, 2017, 6:33pm UTC](https://forum.duplicati.com/t/welcome-to-the-forum/1664/7 "2017-12-09T18:33:55Z")

</div>

> [@rafficer](#):
>
> I’ve copied the command from “export configuration”, removed “backup” and added “test”. Easier than figuring out what it needs manually. 🙂

If you change the command to `test` from a to commandline exported backup configuration, you’re **not** doing a full verification.

Basically, you supply all options used to make a backup to the `test` command. Some of them are required (URL, credentials, passphrase), but most of the options used for the backup are ignored by the `test` command.

The `test` command does exactly the same as verifying the backup after each backup operation is completed: it downloads a number of DBLOCK files (default 1) and checks the integrity and contents of that DBLOCK file. If the file looks as expected, the verification completes successfully.

So instead of a full verification of your backup, you probably let Duplicati download **just one random DBLOCK file** and let it check if the contents are what Duplicati expects.

If you want to test and be 100% sure that all files can be restored, the only option is doing a full restore. Another option is to supply the `--backup-test-samples` option to the `test` command and give it a value that is the same as the current number of DBLOCK files at the backend. This will force Duplicati to download **all** DBLOCK files and check the integrity of these files.

---

<div class="post-metadata">

### Author: ![kenkendk](https://forum.duplicati.com/user_avatar/forum.duplicati.com/kenkendk/32/5305_2.png) [@kenkendk](https://forum.duplicati.com/u/kenkendk)
#### Post date: [December 10, 2017, 10:51pm UTC](https://forum.duplicati.com/t/welcome-to-the-forum/1664/9 "2017-12-10T22:51:30Z")

</div>

There is no real progress reporting for the check part. You can add `--verbose` to the command to see a bunch of internal messages that also reveal what it is doing.

You may also want to use `--full-remote-verification` as that will look inside the files and check the content, as opposed to just checking the external file hash (default).

If you can run code on the storage node, you can also use the option `--upload-verification-file` which will put a small `.json` file in the destination folder. There is a Python script that reads this file and does the (external) verification on the remote server.

---

<div class="post-metadata">

### Author: ![JonMikelV](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/j/439d5e/32.png) [@JonMikelV](https://forum.duplicati.com/u/JonMikelV)
#### Post date: [December 11, 2017, 5:19pm UTC](https://forum.duplicati.com/t/welcome-to-the-forum/1664/11 "2017-12-11T17:19:34Z")

</div>

> [@rafficer](#):
>
> Sorry for the dumb question but: If the file’s hash is correct, how could the content be not?

Hashes are not guaranteed unique - the more bits in the hash (and the less in the item being hashed) combined with the type of hash, the less likely there will be a collision, but it can happen.

For example, if I had a hashing technique that replaced all duplicate letters with a single instance of that letter (e.g. “aaaab” → “ab”) then there’d be a collision if I was hashing both “aaaab” and “aaaaaaaaaaaab”.

Of course with real hashing algorithms, this is not very likely. In fact I believe in the last year or so Google proved that two different documents could produce the same SHA-1 hash - and it only took them 9,223,372,036,854,775,808 computations over 6,610 years of processor time to do it. 🙂

If you’re interested in learning more, a web search of “hash collision” should get you started.

---

<div class="post-metadata">

### Author: ![kenkendk](https://forum.duplicati.com/user_avatar/forum.duplicati.com/kenkendk/32/5305_2.png) [@kenkendk](https://forum.duplicati.com/u/kenkendk)
#### Post date: [December 11, 2017, 9:56pm UTC](https://forum.duplicati.com/t/welcome-to-the-forum/1664/12 "2017-12-11T21:56:03Z")

</div>

> [@rafficer](#):
>
> Sorry for the dumb question but: If the file’s hash is correct, how could the content be not?

I can happen if the file is broken when being written (disk glitch, broken zip library, etc).

> [@JonMikelV](#):
>
> Of course with real hashing algorithms, this is not very likely. In fact I believe in the last year or so Google proved that two different documents could produce the same SHA-1 hash - and it only took them 9,223,372,036,854,775,808 computations over 6,610 years of processor time to do it.

Yeah, and they deliberately tried to get it. And they got it by appending a lot of junk to the PDF file. And Duplicati uses SHA-256 by default.

> [@rafficer](#):
>
> How does the web GUI check the progress? Or is that not something I could manually reproduce?

It calls `/api/v1/progressstate`, and you can do the same from the Python script:

> <https://github.com/duplicati/duplicati/blob/master/Duplicati/Server/webroot/ngax/scripts/services/ServerStatus.js#L132>

---

<div class="post-metadata">

### Author: ![JonMikelV](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/j/439d5e/32.png) [@JonMikelV](https://forum.duplicati.com/u/JonMikelV)
#### Post date: [December 11, 2017, 11:19pm UTC](https://forum.duplicati.com/t/welcome-to-the-forum/1664/13 "2017-12-11T23:19:09Z")

</div>

> [@kenkendk](#):
>
> Yeah, and they deliberately tried to get it

Oh, absolutely - it just shows that it’s POSSIBLE, even if EXTREMELY unlikely to happen in normal use. That’s part of what makes SHA-256 so much of an improvement over SHA-1.

If somebody were trying to use it for security purposes, it could be dangerous to assume that matching SHA-1 hashes means matching content.

---

<div class="post-metadata">

### Author: ![JonMikelV](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/j/439d5e/32.png) [@JonMikelV](https://forum.duplicati.com/u/JonMikelV)
#### Post date: [December 12, 2017, 5:00am UTC](https://forum.duplicati.com/t/welcome-to-the-forum/1664/15 "2017-12-12T05:00:16Z")

</div>

Assuming the downloads are the most expensive part (with might be incorrect) it would be cool if we could have the restore selector window include the number (or size) of archives needing to be downloaded for the selected files to be restored.

---

<div class="post-metadata">

### Author: ![kenkendk](https://forum.duplicati.com/user_avatar/forum.duplicati.com/kenkendk/32/5305_2.png) [@kenkendk](https://forum.duplicati.com/u/kenkendk)
#### Post date: [December 12, 2017, 12:33pm UTC](https://forum.duplicati.com/t/welcome-to-the-forum/1664/16 "2017-12-12T12:33:46Z")

</div>

> [@rafficer](#):
>
> I’ve tried making the request myself, even with the xsrf-token cookie from the web interface, but I always get a 400.

You should get some kind of error message along with the `400` code.

---

<div class="post-metadata">

### Author: ![rafficer](https://forum.duplicati.com/letter_avatar_proxy/v4/letter/r/3da27b/32.png) [@rafficer](https://forum.duplicati.com/u/rafficer)
#### Post date: [December 15, 2017, 9:42am UTC](https://forum.duplicati.com/t/welcome-to-the-forum/1664/17 "2017-12-15T09:42:02Z")

</div>

(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)

---

<div class="post-metadata">

### Author: ![kenkendk](https://forum.duplicati.com/user_avatar/forum.duplicati.com/kenkendk/32/5305_2.png) [@kenkendk](https://forum.duplicati.com/u/kenkendk)
#### Post date: [December 20, 2017, 10:58am UTC](https://forum.duplicati.com/t/welcome-to-the-forum/1664/18 "2017-12-20T10:58:16Z")

</div>

> [@rafficer](#):
>
> What is annoying is that the forum apparently blocks known TOR nodes.

That must be a default Discourse setting to avoid spamming.
