There are two ways to configure the programs.
We'll discuss these two possiblities now.
To put this to use, you need to supply several variables (and their values, of course) and store these items into the file ~/.wcginitrc.
(That is to say, if you follow the direction WCGINITRC=~/.wcginitrc in each individual program of the WCGtools package. This is where the filename ~/.wcginitrc is determined. If you desire to use a different filename there, then this documentation applies to that different filename.)
For wcgformat there is no special variable to configure.
Nonetheless …
This is a good moment to create the file ~/.wcginitrc and to limit access to it as it may contain vulnerable information:
$ touch ~/.wcginitrc && chmod 600 ~/.wcginitrc
For wcglog there are two special variables to configure:
Variable-name | Default value | Explanation |
---|---|---|
SEARCHDIRS | .BOINC BOINC WCG wcg www tmp | This variable indicates the subdirectories to search when trying to locate the logfile |
SEARCHNAMS | wcgresults results WCG wcg | This variable indicates the prefixes of the filename to search when trying to locate the logfile |
The final location and name of the logfile is constructed by wcglog from one of the words in each individual value of $SEARCHDIRS and $SEARCHNAMS, so $SEARCHDIRS/$SEARCHNAMS may yield "tmp/wcg" in the end, as an example. The words in each individual value, like e.g. "WCG" and "wcg", are separated by spaces only.
Note: Since wcglog doesn't know the exact location of the logfile, therefore there are two ways to specify the location of the logfile; one way is to specify its path/name on the commandline, the other way is through the configuration, using the variables SEARCHDIRS and SEARCHNAMS. In the latter case, wcglog will add the string ".log" to the end of the name of the logfile.
You could also specify an alternative value of the variable WCGRESULTS here. Its default value is "wcgresults", i.e. the name of the program [wcgresults]. You will only need it if you want to call [wcglog] with the option -i. The variable WCGRESULTS must then point to (the alternative name of) the program [wcgresults] (from the page WCGtools). If the program [wcgresults] is not in your $PATH, you must specify the full path of [wcgresults].
Variable-name | Default value | Explanation |
---|---|---|
WCGRESULTS | wcgresults | The name of the program wcgresults (from WCGtools) in your $PATH |
For wcgmembercmp there are two special variables to configure:
Variable-name | Default value | Explanation |
---|---|---|
USERNAME | (none) | This variable indicates the name of your account with which you're crunching |
TEAMNAME | (none) | This variable indicates the name of the team in which you're participating |
For wcgresults there are at least two special variables to configure:
Variable-name | Default value | Explanation |
---|---|---|
MEMBER | (none) | This variable is used to specify the name of your account with which you're crunching |
VERIFY | (none) | This variable is used to specify your verificationcode |
You will need these variables if you want to download data from your results from the BOINC-server of World Community Grid.
Other variables are:
Variable-name | Default value | Explanation |
---|---|---|
RETRY_EXCLUDING_PATTERN | (empty) | This variable defines a pattern pertaining to option -x; its value says to not retry the filenames that adhere to the specified pattern. (An empty pattern will allow retrying any filename.) |
RETRY_SLEEPING_TIMER | 90 | This variable pertains to option -x, too; it defines the number of seconds between subsequent iterations of retries; one iteration handles all filenames (all files that are in transfer) once |
Some examples when using RETRY_EXCLUDING_PATTERN are:
Example 1: a value of "\.7z$" would skip retrying a file when its name ends in ".7z".
Example 2: a value of "^ARP1_|\.job$" would skip any filename that begins with "ARP1_" or ends in ".job".
Example 3: a value of "^(OPN[G1]_)|\.txt$" would skip retrying a file when its name begins with "OPNG_" or "OPN1_" or ends in ".txt".
For wcgstats there are at least two special variables to configure, in addition you can also add variables for your device(s):
Variable-name | Default value | Explanation |
---|---|---|
MAILADDR | (none) | This variable is used to specify your e-mailaddress |
PASSWORD | (none) | This variable is used to specify the password of your account |
DEVICE_ID[1] | (none) | This variable indicates the numerical ID of your first device |
DEVICENAME[1] | (none) | This variable indicates the name of your first device |
DEVICES | 0 | This variable indicates the number of devices that you have configured |
Note: Once you have configured the variables MAILADDR and PASSWORD successfully, you'll be able to generate a list of your devices, like so as an example:
$ wcgstats -ZZZ
DEVICES=0; let n=0; # Start counting the number of devices.
let n++; DEVICE_ID[$n]=1234567; DEVICENAME[$n]="desktop"
let n++; DEVICE_ID[$n]=2345678; DEVICENAME[$n]="laptop"
let n++; DEVICE_ID[$n]=3456789; DEVICENAME[$n]="smartphone"
DEVICES=$n # The total number of devices.
This will also give you the opportunity to add the output to your configuration file:
$ wcgstats -ZZZ >> ~/.wcginitrc
Note that the special variable-names are in capitals.
In the end, the contents of your file ~/.wcginitrc may look something like this:
SEARCHDIRS="BOINC data logdir misc"
SEARCHNAMS="WCG wcg results"
USERNAME=my_username
TEAMNAME=my_teamname
MEMBER=my_username
VERIFY=c0de1234567890987654321ed0c
MAILADDR=my_address@example.com
PASSWORD=Impossible2Guess
DEVICES=0; let n=0; # Start counting the number of devices.
let n++; DEVICE_ID[$n]=1234567; DEVICENAME[$n]="desktop"
let n++; DEVICE_ID[$n]=2345678; DEVICENAME[$n]="laptop"
let n++; DEVICE_ID[$n]=3456789; DEVICENAME[$n]="smartphone"
DEVICES=$n # The total number of devices.
In this case you will have to edit each individual program that you want to put to good use.
There is a section designated by the word "CONFIGURE" surrounded by hashtags in each program where you can edit the values of the variables.
It might also be a good idea to limit access to the individual programs as they may contain vulnerable information, e.g. like so:
$ for s in format log membercmp results stats; do f=~/bin/wcg$s; [ -f $f ] && chmod 700 $f; done
After configuring each individual program there is no need to configure it again when you download a newer version of the program: each executable program that needs configuring has an option -U to update the old version of the program to the new version.
If you have more than one account to administer, then there are ways to take care of this when using variables in the configuration.
Probably best practice is to number your other accounts 1, 2, 3, etc., so that you can use the options -u1, -u2, -u3, etc. for the programs [wcglog], [wcgresults] and [wcgstats]. (For [wcgmembercmp] you'll have to use the full name of other members' accountnames.)
The name of the logfile for other accounts corresponds with the value of the option -u (see also option -u of [wcgresults]), so it is most useful to tune the names of the logfiles used bywcgresults and wcglog to each other. As mentioned above, wcglog uses two special variables.
If you number your other accounts 1, 2, 3, etc., you can use the names of the variables MEMBER and VERIFY and append a 1, 2, 3, etc.:
MEMBER1="your_other_account"
VERIFY1="some_other_verificationcode"
If you number your other accounts 1, 2, 3, etc., you can use the names of the variables MAILADDR, PASSWORD, DEVICE_ID, DEVICENAME and DEVICES and append a 1, 2, 3, etc.:
MAILADDR1="e-mailaddress_of_account_1"
PASSWORD1="password_for_account_1"
Note: once you have configured the variables MAILADDR1 and PASSWORD1 for account 1 successfully, you'll be able to generate a list of devices for that account, like so: wcgstats -u1 -ZZZ
. The output could look something like this:
DEVICES1=0; let n=0;
let n++; DEVICE_ID1[$n]=2345678; DEVICENAME1[$n]="computer_of_account_1"
DEVICES1=$n
You can add that to the configuration then.
Blog: 2022/11/recent-revisions-for-wcgresults
Wiki: wcglog
Wiki: wcgmembercmp
Wiki: wcgresults
Wiki: wcgstats