Scripts – Zeque.com.ar | Linux, Mikrotik, Noticias… https://www.zeque.com.ar Temas que me salvaron alguna vez, los comparto acá Fri, 23 Sep 2016 16:02:11 +0000 en-US hourly 1 https://wordpress.org/?v=6.5 Backup muy simple https://www.zeque.com.ar/backup-muy-simple/ https://www.zeque.com.ar/backup-muy-simple/#respond Fri, 23 Sep 2016 16:02:11 +0000 http://www.zeque.com.ar/?p=564 Me han preguntado varias veces como hacer un backup simple, usando alguna herramienta liviana para usar en una única PC.

Una manera muy simple es configurando una tarea programada utilizando las comillas de ejecución para definir el nombre del archivo con la fecha actual en un buen formato.

tar cjf /backups/`date -I`.tar.bz2 /var/www/misitio.com
rm -rf /backups/`date -I --date="10 days ago"`.tar.bz2

Si no encontrás las comillas de ejecución lo podés hacer de esta otra forma

tar cjf /backups/$(date -I).tar.bz2 /var/www/misitio.com
rm -rf /backups/$(date -I --date="10 days ago").tar.bz2

El comando date -I devuelve la fecha en formato YYYY-MM-DD por lo que nos quedará un archivo diario con el nombre 2016-09-23.tar.bz2

Luego aplicamos con date -I –date=”10 days ago” para que calcule la fecha de hace 10 días. De esta manera tendremos un backup diario manteniendo los últimos 10 días, para evitar que se llene el disco.

Obviamente se puede ir mejorando. Hacer que envíe un email si terminó el backup correctamente.

tar cjf /backups/$(date -I).tar.bz2 /var/www/misitio.com && echo "Backup OK"|mail miemail@dominio.com -s "Backup OK""

El && permite que si el tar finaliza correctamente envíe un email. También se puede hacer con || (doble pipe) para que envíe un email solo si el tar falló.

Esto es para algo muy simple, hacer backup en una PC y unos pocos directorios. Para cosas más complejas o múltiples equipos ya pueden utilizar herramientas como Bacula.

Saludos!

]]>
https://www.zeque.com.ar/backup-muy-simple/feed/ 0
Buscar y borrar archivos con find https://www.zeque.com.ar/buscar-y-borrar-archivos-con-find/ https://www.zeque.com.ar/buscar-y-borrar-archivos-con-find/#comments Fri, 14 Mar 2014 16:02:07 +0000 http://www.zeque.com.ar/?p=450 Con el comando find no solo podremos buscar de manera avanzada archivos (por usuario, permiso, fecha de modificación, etc), sino también tomar una acción como borrar, mover, etc.

Ejemplo para borrar todos los achivos .tmp en todo el disco

find / -name "*.tmp" -delete

Borrar todos los archivos que tengan más o menos  N días

#Su fecha de creación mayor a 14 días
find /directorio -ctime +14 -delete
#Su fecha de modificación menor a 20 días
find /directorio -mtime -20 -delete

Mover todos los .mp3 a un directorio

#Busca dentro de home y mueve a /directorio-de-mp3s
#-iname es para insensitive, que no distinga mayúsculas/minúsculas
#OJO la línea termina con \;
find /home -iname "*.mp3" -exec mv {} /directorio-de-mp3s \;

Buscar y Borrar todos los archivos de un usuario

find / -user usuario1 -delete

Se pueden combinar múltiples parámetros como user, ctime y name

]]>
https://www.zeque.com.ar/buscar-y-borrar-archivos-con-find/feed/ 1
Cantidad de conexiones por Puerto https://www.zeque.com.ar/cantidad-de-conexiones-por-puerto/ https://www.zeque.com.ar/cantidad-de-conexiones-por-puerto/#respond Thu, 19 Sep 2013 19:32:51 +0000 http://www.zeque.com.ar/?p=357 Con este script puede saber la cantidad de conexiones por IP a un puerto

#X.X.X.X es la IP de nuestra interfaz pública
#YY es el puerto
#El script solo mostrará aquellas IPs con más de 10 conexiones


netstat -plan|grep X.X.X.X:YY|awk {'print $5'}| cut -d':' -f 1|sort|uniq -c|sort -nk 1 | awk '{if ($1 > 10) print "IP:\t" $2 "\t Conexiones: " $1 }'
Ejemplo:

Si mi servidor tiene configurada la IP 200.0.0.1 y quiero ver la cantidad de conexiones en el puerto 80, ejecuto lo siguiente:


netstat -plan|grep 200.0.0.1:80|awk {'print $5'}| cut -d':' -f 1|sort|uniq -c|sort -nk 1 | awk '{if ($1 > 10) print "IP:\t" $2 "\t Conexiones: " $1 }'


 

]]>
https://www.zeque.com.ar/cantidad-de-conexiones-por-puerto/feed/ 0
Borrar archivos con cierto texto https://www.zeque.com.ar/borrar-archivos-con-cierto-texto/ https://www.zeque.com.ar/borrar-archivos-con-cierto-texto/#respond Fri, 21 Dec 2012 18:58:03 +0000 http://www.zeque.com.ar/?p=230 Para borrar archivos con un determinado texto o contenido se puede realizar lo siguiente:

Opciones grep:

-i ignora diferencia mayúsculas/minúsculas
-r recursivo en los directorios (OJO!)
-l si el patrón coincide, devuelve el nombre del archivo

for archivo in `grep -irl viagra ./`; do  rm “$archivo”;done

Para asegurarse que es lo que se va a borrar, puede añadirse un echo frente al rm

for archivo in `grep -irl viagra ./`; do  echo rm “$archivo”;done

De este modo nos mostrará el listado de archivos a borrar

 

]]>
https://www.zeque.com.ar/borrar-archivos-con-cierto-texto/feed/ 0
Agregar registro a multiples zonas en bind https://www.zeque.com.ar/agregar-registro-a-multiples-zonas-en-bind/ https://www.zeque.com.ar/agregar-registro-a-multiples-zonas-en-bind/#respond Fri, 02 Nov 2012 20:06:19 +0000 http://www.zeque.com.ar/?p=192 Agregar en el BIND DNS un registro SPF a multiples zonas que no lo tengan configurado:

En mi caso cada archivo de zona tiene el nombre del dominio. En algunos casos es db.nombrededominio.conf.


for spf in `egrep -iL 'spf1' *.com.ar`; do echo "$spf. IN TXT \"v=spf1 mx ip4:direccionip mx:mail.$spf -all\"" >> $spf;done

]]>
https://www.zeque.com.ar/agregar-registro-a-multiples-zonas-en-bind/feed/ 0