Buscar y reemplazar texto en todos los archivos dentro de un directorio y todos los subdirectorios – TIP Linux

Si buscabas como reemplazar texto dentro de varios archivos en una sola linea de comando, has llegado a la web correcta. Muchas veces tenemos que buscar o hacer cambios a un texto determinado y para empezar no sabemos ni en cual archivo, documento o directorio puede estar.

Digamos que le cambiamos la dirección IP al servidor, o cambiamos de servidor web y es necesario hacer los cambios en todos los archivos de configuracion y los donde aparezca la IP del servidor anterior.

Para no estar buscando durante horas entre todos los archivos de nuestro servidor, les escribo aqui los distintos tips para reemplazar strings alfanumericos en linux.

  • Para reemplazar un texto o string cada vez que aparezca en los archivos:

~# find /path/directorio «*.txt» | xargs perl -pi -e ‘s/texto/reemplazo/g’

  • Para reemplazar la primera vez que aparezca el texto:

~# find /path/directorio «*.txt» | xargs perl -pi -e ‘s/texto/reemplazo/’

  • Para reemplazar todos los archivos dentro de un directorio:

~# for arg in `ls -C1`; do perl -pi -e ‘s/texto/reemplazo/g’; done;

Existe infinidad de combinaciones posibles utilizando el shell de la linea de comandos. Tomemos como ejemplo la primera busqueda:

~# for arg in `find /your/home/dir -name «*.txt»` ; do perl -pi -e ‘s/texto/reemplazo/g’ $arg; done;

Muchas veces solamente es necesario buscar un path o una cadena dentro de multitud de ficheros sobre todo en las migraciones, para ello usaremos los siguientes comandos:

grep Busca cadenas dentro de ficheros»» -n señala el nº de la linea donde está la cadena

Ejemplo: grep -n micadena *

Busqueda recursiva de una cadena dentro de multitud de ficheros:

grep -n micadena * -R

Cambiar IP de dominios en Plesk de forma másiva (Bulk Update)

Tal vez en alguna ocasión, habeis querido cambiar la ip un servidor ( por ejemplo en una migración de una máquina a otro proveedor ) y os encontráis con que no teneis la posibilidad de cambiar la configuración IP para todos los dominios en plesk, si no que lo tenéis que hacer de 1 en 1 , claro para 20 dominios no es tanto trabajo , pero ¿ Qué pasa cuando son 250 ?

Primero deberis aseguraros que todos los clientes que tengais tienen metida la nueva IP en su pool de ip’s, si no os dará error. Yo en mi caso tengo ahora los dominios en /var/www/vhosts ( Que el ruta por defecto para las webs a partir de plesk 8 , Si la vuestra fuese otra tendrías que adaptar el comando .
Continuar leyendo «Cambiar IP de dominios en Plesk de forma másiva (Bulk Update)»

Script para borrar IP de los logs

Aqui os dejo estre script para limpiar y borrar la ip de todos los logs del sistema, servidor, pc, etc….. Un saludo amigos 😀

#!/bin/sh # Ejectuar con ./script IP

#######################################################
# Este script borra todas las lineas de todos los archivos
# que esten en /var que contengan tu ip, conservando la fecha
# de antes de la modificacion .
######################################################################
#El valor de IP es el primer parametro de entrada IP=»$1″

Continuar leyendo «Script para borrar IP de los logs»

Obtener tu ip pública desde la linea de comandos

Esta es una de las múltiples maneras que hay de obtener tu ip pública desde linea de comandos, teneis que editar vuestro fichero .profile o .bashrc o .bash_profile y añadir la siguiente linea:

alias myip=”lynx -dump http://whatismyip.com/automation/n09230945.asp”

Saludos amigos 😀

Redireccionar emails salientes a la IP que queramos

La necesidad de redireccionar hacia otra IP todos los emails salientes en un servidor puede ser debido a que hallan metido la IP principal de salida SMTP en alguna buena jodida lista negra en la que tarden mucho en des-listar la IP. Para solucionar este problema rápidamente hay que redireccionar todo el tráfico saliente del puerto 25 o 587 (o al puerto que tengamos configurado el SMTP) hacia otra IP que tengamos configurada en nuestro servidor. La regla de IPTables es la siguiente:

Regla para el puerto 25:


iptables -t nat -A POSTROUTING -p tcp --dport 25 -j SNAT --to-source AQUI-LA-NUEVA-IP

raiola manda y no el panda