Table of Contents

Db command tutorial

NethServer comes with the most used parameters set as variables in its internal configuration databases. These variables are used to store values to be used in the final configuration files. Please, read the Database howto, the template howto and the event howto to understand the template and database process.

These variables are useful to configure your system more easily, as you do not need to modify configuration files directly for most common cases. It also makes it possible to administer the server through its server-manager as the database variables are used to set and change configuration parameters. After editing, the configuration files must be regenerated and affected services need to be restarted.

For example, suppose you need to increase “memory-limit” in php.

You would simply execute these commands at the server console:

db configuration setprop php MemoryLimit 64
signal-event nethserver-php-save

The first line changes the value for the memory limit of PHP, the second line regenerates the configuration file and restart apache.

The signal-event is a mandatory to apply the modification

Database parameters are case sensitive so take great care when typing at the server shell because no error messages are given should you make a typo.

The database system is based on a flat file system, but you should never edit them directly. Instead you should use the db command. More details on using the database system can be found in the Developer Manual

Auto completion

Like in every Linux shell you can use the TAB key when you use the command line to auto complete or propose all available answers

Usage

Use of 'config' is a shorthand version for 'db configuration' and therefore only works with the configuration database

Keys/Properties/values

All turn around A key with properties and values of the properties, no more, no less. You can have a lot of properties under a key which is unique

# db configuration show passwordstrength    <- database => configuration
 passwordstrength=configuration             <- Key (type = configuration) 
   Admin=strong                             <- property (value = strong)
   Ibays=strong                             <- property (value = strong)
   MaxPassAge=180                           <- property (value = 180)
   MinPassAge=0                             <- property (value = 0)
   PassExpires=yes                          <- property (value = yes)
   PassWarning=7                            <- property (value = 7)
   Users=strong                             <- property (value = strong)

Apply the above “reasoning” to any database and the the syntax presented by issuing db then makes sense.

Note that missing (or no) properties and values do not necessarily mean no value is in the /etc/file.conf system, as the template code can have a default value in the absence of a specific db value.

Note to determine what db settings are supported by sme code, or what the default values are, refer to (ie read) the code that is in the particular template or custom template associated with a /etc/file.conf

Look in /etc/e-smith/templates/… and /etc/e-smith/templates-custom/…. and subfolders and template fragments applicable to particular /etc/file.conf configuration files.

show all available databases

To show a list of existing databases do

ls -al /var/lib/nethserver/db/

To show the keys for the two main databases do:

db configuration show |less

That can be abbreviated to

config show |less
db accounts show |less

Note after using the |less switch, press Enter to scroll down a line at a time, or press Space to scroll down a page at a time. 'q' to quit.

Create a key in a database

the generic command is :

db dbfile set key type [prop1 val1] [prop2 val2] ...
dbfile : choose the database in /var/lib/nethserver/db/
key : the name of key
type : generally 'service' or 'configuration' but it can be other things as webbapps or url or ...

If you want to create a keys called 'plop' in the configuration database with a type as 'configuration you can do like this

db configuration set plop configuration Name wordpress PublicAccess private status enabled DbName wordpress DbUser wordpress WpLang en

you can see the result

config show plop

or

db configuration show plop
plop=configuration
  DbName=wordpress
  DbUser=wordpress
  Name=wordpress
  PublicAccess=private
  WpLang=en
  status=enabled

Change values of properties

The generic command line is

db dbfile setprop key prop1 val1 [prop2 val2] [prop3 val3] ...
dbfile : choose the database in /var/lib/nethserver/db/
key : the name of key

Then if you want to modify some values of our example above

db configuration setprop plop PublicAccess public WpLang fr

or

config setprop plop PublicAccess public WpLang fr

We want to verify

config show plop 

or

db configuration show plop
plop=configuration
  DbName=wordpress
  DbUser=wordpress
  Name=wordpress
  PublicAccess=public  <----------Here
  WpLang=fr            <----------Here
  status=enabled

Create a property under a key

Same as above, really not difficult

db configuration setprop plop PlopTheWorld YES             

or

config setprop plop PlopTheWorld YES             

and to display modification

db configuration show plop

or

config show plop
plop=configuration
  DbName=wordpress
  DbUser=wordpress
  Name=wordpress
  PlopTheWorld=YES    <----------Here
  PublicAccess=public
  WpLang=fr
  status=enabled

Setting db variables to default values

Use of 'config' is a shorthand version for 'db configuration' and therefore only works with the configuration database

Any db variable that has a default value can be reset to the default by deleting the variable entirely, then re-initializing the default database values as follows: config delprop <key> <prop> /etc/e-smith/events/actions/initialize-default-databases

for example

db configuration delprop plop WPlang
/etc/e-smith/events/actions/initialize-default-databases

or

config delprop plop WpLang
/etc/e-smith/events/actions/initialize-default-databases

Delete a property value

To delete the property

db dbfile delprop <key> <prop>

for example

db configuration delprop plop WpLang

or

config delprop plop WpLang

Delete a Key

To delete the Key

db dbfile delete <key>

for example

db configuration delete plop

or

config delete plop

Reset a property to an empty value

To reset to an empty value db dbfile setprop <key> <prop> ''

for example

db configuration setprop plop WpLang ''

or

config setprop plop WpLang ''

Database parameters are case sensitive so take great care when typing at the server shell because no error messages are given should you make a mistake.