Alter zabbix conf still respecting default values and documentation

This is a great way how to automatically alter default configuration file, still respecting its structure and documentation:
#define conf file
server=/etc/zabbix/zabbix_server.conf

grep "^CacheUpdateFrequency=" $server
if [ $? -eq 0 ]; then

#modifies already customized setting
sed -i "s/^CacheUpdateFrequency=.*/CacheUpdateFrequency=4/" $server

else

#calculate the the line number after default setting
ln=$(grep -n "CacheUpdateFrequency=" $server| egrep -o "^[0-9]+")
ln=$((ln+1))
#adds new line
sed -i "`echo $ln`iCacheUpdateFrequency=4" $server

fi
Or with agent configurations:
agent=/etc/zabbix/zabbix_agentd.conf

grep "^EnableRemoteCommands=" $agent
if [ $? -eq 0 ]; then
sed -i "s/^EnableRemoteCommands=.*/EnableRemoteCommands=1/" $agent #modifies already customized setting
else
ln=$(grep -n "EnableRemoteCommands=" $agent | egrep -o "^[0-9]+"); ln=$((ln+1)) #calculate the the line number after default setting
sed -i "`echo $ln`iEnableRemoteCommands=1" $agent #adds new line
fi

No comments: