menuimage

Description

Usage

Example

Example_ignores_file

Options

Dependencies

License

Changelog

Download

My_Other_Sites

My_Programs

Comments

dl-config-compare v1.4 [29 Mar 2012] by Dominic

Description

Specific program for users of Devil-Linux (http://www.devil-linux.org) to view differences between the default Devil-Linux configuration files and your own configurations. Intended for running after a Devil-Linux system upgrade, so you can compare your retained configuration files (at /shm/etc-mods/*) with the default files (at /etc-cd/*), and then (manually) update your configuration files with any changes rather than having them fall behind with deprecated or no-longer-supported settings. Trivial variations (comments, blank lines) are ignored.

This is not a replacement or alternative to the file selection process offered upon first boot when upgrading Devil-Linux; but it is normal (and advisable) during such process to retain any configuration files identified for retention (because otherwise you might break something.) Yet by retaining old configurations in this way you might fail to adopt new settings or continue to use deprecated ones. This is where dl-config-compare.sh can help.

Based upon the output from dl-config-compare.sh (which doesn't itself make any changes to your configuration files), you can either manually delete an identified differing configuration file (e.g. /shm/etc-mods/lpd/lpd.conf), thus substituting the default file at /etc-cd/ or manually update the configuration file, retaining any specific settings of your own but adopting any other 'latest and greatest' settings and eliminating deprecated or broken settings.

As explained below you can 'tune' dl-config-compare.sh to ignore, in any given file, specific differences that you are ok with, so that it only warns you about other unexpected differences.

A standard list of files to be ignored entirely is automatically used (this can be seen by running with -s option). As part of the process of using dl-config-compare.sh you should also create your own 'ignores' file (see examples below) which lists configuration files (regex format, one pattern per line) which can be ignored, or, if you add a sed command after a comma on the same line, which are to be compared with the 'default' version at /etc-cd/ *after* applying your sed command(s) to both file versions.

Listing a file pattern without a sed command means that files matching the pattern are ignored entirely - use this for files which contain no important 'default' settings. Listing a file with a sed command (or commands) means that you will be warned about any differences that remain between your configuration file at /etc-mods/ and the equivalent default file at /etc-cd/ *after* the sed command has been applied to both files.

Your 'ignores' listed in your own 'ignores' file have higher priority than the standard 'ignores', so for instance you can force a file listed as a standard ignore (say /etc/crontab) to be processed by adding a line with a comma and a dummy sed pattern, for example:
/etc/crontab,/asdkfjadfha/d

No original files are modified by this program. The exit code is the number of files which do not match (after applying any sed commands) or which exist in both locations but are the same (and therefore could be deleted from /shm/etc-mods/). With verbose output '-v' the differences between the files are also shown. Normal output is formatted for a console with colors, use the plain option '-p' if you want to save the output.

Start by running dl-config-compare.sh with -v option, then with the information returned you can build your ignores_file which you then specify on the command line when you re-run dl-config-compare.sh. In the case of configuration files in which you have *some* special settings (as well as other settings inherited as defaults) it is better to add a sed command to a line in your ignores_file which excludes your special settings from the comparison, rather than excluding the file from comparison altogether, so that if the default settings change in a later release of Devil-Linux they will be flagged up when you run this program.

Usage

dl-config-compare.sh [options] [ignores_file]

Example

./dl-config-compare.sh ./dl-config-compare.ignores

Example ignores file

# lines beginning with hash are comments - do not append
# hashes and comments to active lines
# note that periods & other special characters should be escaped
/etc/init\.d/firewall\.rules
/etc/vsftpd\.conf
# process ntp.conf (for xntpd), ignoring lines starting 'server'
/etc/ntp.conf,/^server/d
# a more complex example involving multiple sed commands:
/etc/syslog-ng/syslog-ng.conf,s/stats_freq(7200); //;/destination logfile /d;/log . source(src). destination(logfile)/d

Options

-a i.e. 'all': list skipped files too
-d i.e. 'debug': don't remove temporary files
-h show this help and exit
-l show changelog and exit
-p plain output format (no colors, ANSI sequences)
-s show the standard or default 'ignores' and exit
-v i.e. 'verbose': if files differ, show the differences

Dependencies

Devil-Linux OS, awk, basename, bash, diff, find, fold, save-config, sed, stty, tar

License

Copyright 2014 Dominic Raferd. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Changelog

1.4 [29 Mar 2012] - improved help text
1.3 [11 Feb 2012] - check only /etc-mod/ files saved by save-config
1.2 [10 Feb 2012] - check all /etc/ files, with 'ignores' file
1.1 [09 Feb 2012] - use conf file, allow non-verbose output
1.0 [08 Feb 2012] - initial release

Download dl-config-compare.sh

My Other Sites

My Programs

Here is a selection of some (other) programs I have written, most of which run from the command line (CLI), are freely available and can be obtained by clicking on the links. Dependencies are shown and while in most cases written for a conventional Linux server, they should run even on a Raspberry Pi, and many can run under Windows using Cygwin. Email me if you have problems or questions, or if you think I could help with a programming requirement.

Backup Utilities

Kernel, Boot and Device Utilities

LVM Utilities

Dellmont / Three / Vodafone - VoIP and Mobile Phone Account Utilities

Miscellaneous Programs

Comments

No comments yet
*Name:
Email:
Notify me about new comments on this page
Hide my email
*Text:
 
Powered by Scriptsmill Comments Script