GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  CONFCTL (1)

NAME

confctl - sysctl-like tool for config files

CONTENTS

Synopsis
Description
Examples
Author

SYNOPSIS

confctl [-CEIS] -a [-n] config-file
confctl [-CEIS] [-n] config-file variable-name ...
confctl [-CEIS] -w variable-name=value config-file
confctl [-CEIS] -x variable-name config-file

DESCRIPTION

confctl provides access to configuration files in C-like syntax via sysctl(8) -like interface, making it easy to use from shell scripts.

The following options are available:
-a Show all the variables and their values.
-n Show only values, not names.
-w Change value of configuration variable and update the configuration file. Variable is created if it doesn’t yet exist.
-x Delete the variable and update the configuration file.
-C Recognize C++ double slash (’//’) and slash star (’/* ... */’) comment markers.
-E Use equals sign (’ = ’) to separate values from names. Without this option, the equals sign is ignored, i.e. treated as whitespace.
-I Instead of writing a temporary file and then atomically replacing the configuration file, rewrite it in place. It also makes confctl acquire a file lock when reading or writing the configuration file.
-S Use semicolon (’;’) after values. Note that the semicolon is always treated as terminating character when parsing, regardless of this option.

EXAMPLES

Say you have a configuration file that looks like this:

interfaces {
        eth0 {
                ip-address      192.168.1.1
                mtu             9000
        }

        eth1 {                 ip-address      192.168.2.1                 description     "Uplink to Telia"         } }

You can access all the variables like this (note the -a option):

% confctl -a config-file
interfaces.eth0.ip-address=192.168.1.1
interfaces.eth0.mtu=9000
interfaces.eth1.ip-address=192.168.2.1
interfaces.eth1.description="Uplink to Telia"

You can also query individual variables:

% confctl config-file interfaces.eth0.ip-address interfaces.eth1.ip-address
interfaces.eth0.ip-address=192.168.1.1
interfaces.eth1.ip-address=192.168.2.1

To modify a variable, use the -w option:

% confctl -w interfaces.eth0.ip-address=192.168.1.2 config-file

You can pass the -w option multiple times to set several variables at once. You use exactly the same syntax to add new variables:

% confctl -w interfaces.eth2.ip-address=10.0.0.1 -w interfaces.eth2.netmask=24 config-file
% confctl config-file interfaces.eth2
interfaces.eth2.ip-address=10.0.0.1
interfaces.eth2.netmask=24
% cat config-file

interfaces {         eth0 {                 ip-address      192.168.1.1                 mtu             9000         }

        eth1 {                 ip-address      192.168.2.1                 description     "Uplink to Telia"         }

        eth2 {                 ip-address      10.0.0.1                 netmask         24         } }

Note that file modification preserves formatting and indentation. It also preserves all the comments, including ones for variables modified in place.

Also note that by default, modification is done by writing a temporary copy of the file, in the same containing directory, and then renaming it, replacing the old file. This will fail if it’s impossible to create new files, and won’t do the right thing when the file name is a symlink. In that case, use -I option to rewrite configuration file in place.

AUTHOR

Edward Tomasz Napierala <trasz@FreeBSD.org>

SEE ALSO

sysctl(8)
Search for    or go to Top of page |  Section 1 |  Main Index


confctl CONFCTL (1) 20 May 2012

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.