buildhosts/README.md

2.6 KiB

buildhosts

Build and maintain /etc/hosts while including lists imported from local and remote hosts list sources.

Instructions

Note: All instructions should be performed as the root user, or using the sudo command to run commands with root permissions.

Enable Remote Sources

  1. The first time you run the set command, /etc/hosts will be moved to /etc/hosts.core, and the file /etc/hosts.sources will be created using the default sources list. The /etc/hosts file will then be generated by combining /etc/hosts.core and the resulting contents of the downloaded sources in /etc/hosts.sources.
  2. You can now open /etc/hosts.sources and remove or comment out (by adding # in front) any sources you don't wish to use, as well as add new ones. Sources can remote (ie: http://adaway.org/hosts.txt) as well as local (ie: file:///etc/hosts.d/mylist.txt).
  3. If you want to make any changes to the contents of what used to be /etc/hosts, you should now make them to /etc/hosts.core, and you'll need to rerun the set command to have them applied.
  4. Once you're done customizing your configuration, run the set command again and the /etc/hosts file will be regenerated using the current list of sources and your up-to-date /etc/hosts.core file.

Disable Remote Sources

  1. To disable the configured hosts lists, run the unset command and /etc/hosts.core will be moved back to /etc/hosts.
  2. The /etc/hosts.sources file will continue to exist until it's manually deleted, and it will be used again the next time remote sources are enabled.

Notes on /etc/hosts.sources

  • On each line of /etc/hosts.sources, after # is commented/skipped.
  • Colour output can be disabled by setting the variable NOCOL=1.
  • The $HOSTS_SYSTEM variable can be set to an alternative location to configure a different file to be used for /etc/hosts.
  • Similarly, the $HOSTS_CORE and $HOSTS_SOURCES variables (which default to $HOSTS_SYSTEM.core and $HOSTS_SYSTEM.sources and will automatically change when $HOSTS_SYSTEM is changed), can be set to alternative locations to configure the use of different files.

Commands

  • buildhosts set: generate /etc/hosts using /etc/hosts.core and the configured sources
  • buildhosts unset: remove lists imported from hosts list sources and restore /etc/hosts
  • buildhosts help: display the help

Credits

Written by Kevin MacMartin:

License

Released under the MIT license.