Le 23/12/2012 15:28, Robert Moskowitz a écrit : > > On 12/23/2012 09:20 AM, Noel Jones wrote: >> On 12/23/2012 7:17 AM, Robert Moskowitz wrote: >>>> You can chase these with something like: >>>> >>>> # postconf -n | while read parameter equal value; do >>>> default_value=`postconf -d $parameter 2>&1`; >>>> if [ "$value" = "$default_value" ]; then >>>> echo "NOTICE: Useless setting: $parameter = $value"; >>>> fi; >>>> done >>>> >>> I have been running this against the base Centos 6 install that has >>> a main.cf with lots of comments and a few parameter lines. >>> >>> postconf -n shows about 20 parameters, and when I compare these >>> against postconf -d only 9 of them are different. >> That sounds about right. A basic postfix install needs only a few >> non-default settings. >> >> >>> parameters like mailq_path is now /usr/bin/mailq.postfix and the >>> default is /usr/bin/mailq >> sounds reasonable. >> >>> I look at the script and I am not able to tell what is wrong; can >>> you help me get it right? I think this is a real useful tool. >> It's unclear what problem you are having. Please explain. > > When I run the script shown above, there is no output. Yet I know > there are lines in the main.cf that differ from the defaults.
> That is there are 9 lines shown in the -n option that are different > from shown in the -d option. I would think that the above script > should have printed those lines. No. the only output of the script is the one in the 'echo' line: it only prints anything if the value is the same in main.cf and in `postconf -d`. To see local settings, use 'postconf -n'. that's its job. If you really insist, here is a modified version of the script: postconf -n | while read parameter equal value; do default_value=`postconf -d $parameter 2>&1`; if [ "$value" = "$default_value" ]; then echo "NOTICE: Useless setting: $parameter = $value"; else echo "$parameter = $value" fi; done but this is too complex for the task. > > I ran the script both as me and as root. >