[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: modificar un archivo en bash



Hola a todos.

	Perdonad, creo que no he sido demasiado claro. :-).

	Se trata de la configuración de postfix y fetchmail, como sabeis hay que 
configurar varios archivos, y como la configuración, alias, etc.

	Lo que prependo hacer es un scripts donde pregunte el nombre de dominio, los 
nombre de usuario, contraseñas... y que el script acceda a los archivos 
(plantillas previamente preparadas y colocadas en cada ruta) y modifique los 
valores que tengo por defecto. ejemplo:

-----------archivo main.cf--------------------------
# NOMBRE, DOMINIO(S) y RED(ES)
myhostname = <var1>
mydomain   = <var2>
relay      = <var3>

# DIRECCION QUE APARECE EN EL FROM
myorigin  = $mydomain
.
.
.

# PROPIETARIO DE COLAS Y PROCESOS 
mail_owner           = postfix
setgid_group         = postdrop

# TRATAMIENTO DE ALIAS
alias_database       = hash:/etc/aliases
alias_maps           = hash:/etc/aliases 

# IDENTIFICACION DE USUARIOS LOCALES
local_recipient_maps = $alias_maps unix:passwd.byname

# ENVIO EN PARALELO A UN MISMO DESTINO
local_destination_concurrency_limit   = 2 
default_destination_concurrency_limit = 10

# OTROS PARAMETROS DE CONFIGURACION
notify_classes       = resource, software, policy
transport_maps       = hash:/etc/postfix/transport
disable_vrfy_command = yes
disable_dns_lookups  = yes
relayhost            = [$relay] 
message_size_limit   = 10485760
mailbox_size_limit   = 0
maximal_queue_lifetime = 5d
#maps_rbl_domains    = relays.ordb.org 

# CONTROL DE CORREO ENTRANTE / SALIENTE 
mynetworks           = <variable4>
mydestination        = $myhostname localhost.$mydomain $mydomain  
relay_domains        = $mydestination
#smtpd_client_restrictions = reject_maps_rbl reject_unknown_client 
#smtpd_helo_required       = yes
#smtpd_helo_restrictions   = reject_invalid_hostname reject_unknown_hostname 
reject_non_fqdn_hostname 
smtpd_recipient_restrictions = permit_mynetworks, check_relay_domains
header_checks              = regexp:/etc/postfix/header_checks 
body_checks                = regexp:/etc/postfix/body_checks 
content_filter             = vscan:
#mailbox_command           = procmail -a "$EXTENSION" 

-----------fin archivo--------------------
	Pues eso, el script modificaría los <var> dependiendo de diversas entradas de 
por el teclado.


El Mar 25 Mar 2003 01:19, Cesar Rincon escribió:
> On Mon, 2003-03-24 at 13:41, Fernando Blat Peris wrote:
> > A alguien se le ocurre algo más elegante que mi chapucilla??
>
> Probablemente no he entendido lo que Rafael quiere, pero me suena
> demasiado simple...  En fin.  Mi solución no es más elegante, pero sí
> más compacta (y quizá más entendible y fácil de mantener):
>
> Asumiendo que el archivo contiene una línea que reza literalmente
> "Nombre: <var1> cuya dirección ip es <var2>":
>
> -----------------------------------------------------------------------
> #!/bin/bash
> if [ -z "$1" -o -z "$2" ]; then
>   echo "Uso: $0 nombre ip" >&2
>   exit 1
> fi
>
> sed -e "s|^Nombre: <var1> cuya dirección ip es <var2>|\
> Nombre: $1 cuya dirección ip es $2|"
>
> exit 0
> -----------------------------------------------------------------------
>
> Y lo usarías como un filtro:
>
>   cat archivo.in | script NOMBRE 123.123.123.123 > archivo.out
>
> O, si te interesa reemplazar el archivo, algo como
>
>   script NOMBRE 123.123.123.123 < archivo > archivo.$$ && \
>     mv archivo.$$ archivo
>
> Decía que "demasiado fácil" porque ésto es realmente un "one liner": no
> es necesario hacer el script, basta con teclear la invocación a sed.
>
> Pero bueno, seguramente no he entendido...
>
>  -CR



Reply to: