- infos = Information about hosts plugin is in keys below
- infos/author = Markus Raab elektra@libelektra.org
- infos/licence = BSD
- infos/provides = storage/hosts
- infos/needs =
- infos/recommends = glob error network
- infos/placements = getstorage setstorage
- infos/status = maintained unittest nodep libc limited
- infos/metadata = order comment/# comment/#/start comment/#/space
- infos/description = This plugin reads and writes /etc/hosts files.
The /etc/hosts
file is a simple text file that associates IP addresses
with hostnames, one line per IP address. The format is described in hosts(5)
.
Canonical hostnames are stored as key names with their IP address as value.
Aliases are stored as sub keys with a read only duplicate of the associated IP address as value.
Comments are stored according to the comment metadata specification (see /doc/METADATA.ini for more information).
The ordering of the hosts is stored in metakeys of type order
.
The value is an ascending number. Ordering of aliases is
not preserved.
Mount the plugin:
$ sudo kdb mount --with-recommends /etc/hosts system/hosts hosts
Print out all known hosts and their aliases:
$ kdb ls system/hosts
Get IP address of ipv4 host "localhost":
$ kdb get system/hosts/ipv4/localhost
Check if a comment is belonging to host "localhost":
$ kdb lsmeta system/hosts/ipv4/localhost
Try to change the host "localhost", should fail because it is not an IPv4 address:
$ sudo kdb set system/hosts/ipv4/localhost ::1
# Backup-and-Restore:/tests/hosts
sudo kdb mount --with-recommends hosts /tests/hosts hosts
# Create hosts file for testing
echo '127.0.0.1 localhost' > `kdb file /tests/hosts`
echo '::1 localhost' >> `kdb file /tests/hosts`
# Check the file
cat `kdb file /tests/hosts`
#> 127.0.0.1 localhost
#> ::1 localhost
# Check if the values are read correctly
kdb get /tests/hosts/ipv4/localhost
#> 127.0.0.1
kdb get /tests/hosts/ipv6/localhost
#> ::1
# Should both fail with error 51 and return 5
kdb set /tests/hosts/ipv4/localhost ::1
# RET:5
# ERROR:51
kdb set /tests/hosts/ipv6/localhost 127.0.0.1
# RET:5
# ERROR:51
# cleanup
kdb rm -r /tests/hosts
sudo kdb umount /tests/hosts