sábado, 26 de noviembre de 2016

Silencio

Words like violence
Break the silence
Come crashing in
Into my little world
Painful to me
Pierce right through me
Can't you understand

jueves, 9 de junio de 2016

The house of the rising sun



La versión de The House of the Rising Sun de The Animals sonaba nueva. Dave Marsh la describe como el "primer éxito de folk rock".

El escritor Ralph McLean, de la BBC, está de acuerdo con este planteamiento: "Es sin duda la primera canción folk rock", a la que calificó como "un sencillo revolucionario", agregó que "el rostro de la música moderna ha cambiado para siempre".

En algunas versiones, el tema se interpreta desde la perspectiva de una mujer que sigue a un apostador a Nueva Orleans y que termina prostituyéndose en La Casa del Sol Naciente y que aconseja, en fragmentos de la canción, no seguirle los pasos (Not to do what I have done). The Animals la interpretó desde la perspectiva de un hombre, jugador y borracho, que cuenta cómo esta casa es la perdición de varios, y cómo ha perdido su vida inmerso en pecado y miseria.

The Animals comenzó a interpretarla durante una gira de conciertos con Chuck Berry, con quien la utilizó como cierre para diferenciarse de las otras actuaciones que finalizaban con canciones rockeras.3 Generó una reacción sorprendente por parte de la audiencia, inicialmente reacia. El productor Mickie Most vio en esta versión un éxito en potencia.

Grabada en una sola toma el 18 de mayo de 1964, comienza con el famoso arpegio en la menor del guitarrista Hilton Valentine, que ha sido inspiración para muchos guitarristas. La destacada y particular ejecución vocal de Eric Burdon ha sido definida como "aulladora"," conmovedora", y "profunda y gravosa como el carbón del noreste inglés en la ciudad de Newcastle". Finalmente, el palpitante órgano de Alan Price completa el sonido de la canción.

Burdon diría tiempo después:

    "Estábamos buscando una canción que captara la atención de la gente"

Lo lograron: House of the Rising Sun fue un verdadero éxito transatlántico, llegó al primer lugar en el Reino Unido (julio de 1964) y en los Estados Unidos (en septiembre, mes en que resultó ser el primer número 1 de la invasión británica que no era de The Beatles).
https://es.wikipedia.org/wiki/The_House_of_the_Rising_Sun


Hay una casa en Nueva Orleans,
la llaman "El Sol Naciente",
y ha sido la ruina de muchos pobres chicos.
Dios sabe que yo soy uno de ellos.
Mi madre era sastre,
ella cosió mis nuevos pantalones vaqueros,
mi padre era un jugador,
ahí abajo en Nueva Orleans.
Ahora, lo único que necesita un jugador,
es una maleta y un maletero (de un coche).
Y el único momento en que está satisfecho
es cuando está en una borrachera.
Oh madre, dile a tus hijos,
que no hagan lo que yo he hecho,
gastar sus vidas en pecado y miseria,
en la casa del sol naciente
Bueno, tengo un pie en el andén,
el otro pie en el tren.
Voy de vuelta a Nueva Orleans,
a ponerme esa bola y esa cadena (de preso).
Hay una casa en Nueva Orleans,
la llaman "el Sol Naciente",
y ha sido la ruina de muchos pobres chicos.
Y Dios, sé que yo soy uno de ellos.

jueves, 7 de abril de 2016

Mikrotik Address list Limitar ancho de banda por archivos

Mikrotik dispone de la facilidad de crear listas de direcciones para manejar pool de direcciones IP.

Vamos a mejorar el script creado en esta entrada: http://jaskolowski.com.ar/2012/09/mikrotik-limitar-ancho-de-banda-por.html
generamos una nueva lista para evitar que los servidores de email caigan en la clase de bajo ancho de banda.
Para ello creamos la lista download y la lista Emails

# apr/06/2016 12:58:21 by RouterOS 5.20
# software id = W5EY-LHT9
#
/ip firewall filter
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.mpeg disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.mpg disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.dat disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.exe disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.msi disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.gz disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.bin disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.mp3 disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.zip disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.swf disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.deb disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24 \
    src-address-list=download
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.iso disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.avi disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.rm disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.bz2 disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.z disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.dropbox disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.psf disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=.vpx disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-dst-to-address-list address-list=download \
    address-list-timeout=15m chain=forward content=sphoto disabled=no \
    dst-address-list=!Emails protocol=tcp src-address=10.10.10.0/24
add action=add-src-to-address-list address-list=Emails address-list-timeout=\
    0s chain=forward comment="Email :: mail.google.com" disabled=no \
    src-address=172.217.28.37
add action=add-src-to-address-list address-list=Emails address-list-timeout=\
    0s chain=forward comment="Email :: hotmail.com" disabled=no src-address=\
    156.56.172.28
add action=add-src-to-address-list address-list=Emails address-list-timeout=\
    0s chain=forward comment="Email :: hotmail.com" disabled=no src-address=\
    65.55.77.28
add action=add-src-to-address-list address-list=Emails address-list-timeout=\
    0s chain=forward comment="Email :: hotmail.com" disabled=no src-address=\
    65.55.85.12
add action=add-src-to-address-list address-list=Emails address-list-timeout=\
    0s chain=forward comment="Email :: hotmail.com" disabled=no src-address=\
    157.55.152.112
add action=add-src-to-address-list address-list=Emails address-list-timeout=\
    0s chain=forward comment="Email :: live.com" disabled=no src-address=\
    65.55.206.154
add action=add-src-to-address-list address-list=Emails address-list-timeout=\
    0s chain=forward comment="Email :: mail.google.com" disabled=no \
    src-address=172.217.28.5
add action=add-src-to-address-list address-list=Emails address-list-timeout=\
    0s chain=forward comment="Email :: crub.uncoma.edu.ar" disabled=no \
    src-address=170.210.81.23
add action=add-src-to-address-list address-list=Emails address-list-timeout=\
    0s chain=forward comment="Email :: uncoma.edu.ar" disabled=no \
    src-address=170.210.81.106

 Creamos una entrada en nuestro queue tree

# apr/07/2016 11:01:42 by RouterOS 5.20
# software id = W5EY-LHT9
#
/queue tree
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
    max-limit=0 name=download-files packet-mark=download-packet parent=\
    3QoS_down_Web priority=8 queue=default



martes, 25 de agosto de 2015

Ubuntu server 14.04 LTS VirtualBox vdi imagen de 170MB

Ubuntu server dispone de la opción al momento de instalarse, en un host ubuntu, de optar por una instalación mínima para Máquina Virtual.
Cualquier imagen  que uno quiera bajar de los mirrors oficiales de ubuntu pesa entre 1.8GB y 2.5GB.
Ante esta situación, he decidido publicar una imagen de disco virtual (vdi) de un sistema ubuntu server en su instalación básica. El tamaño del mismo, comprimido con 7zip es de 176MB. Obviamente algo más rápido y sencillo para descargarse.
El usuario administrador es "ubuntu" y la clave "ubuntu"

DESCARGAR

Para utilizarlo, lanzamos virtualbox y creamos una nueva VM

Hemos elegído "ubuntu14" por la versión del mismo pero es indistinto el nombre a usar.
Aceptamos las opciones por defecto hasta llegar a la opción de discos.



Aquí seleccionamos  un disco existente y desde el icono de carpeta buscamos la imagen .vdi descargada y descomprimida.

NOTA:
Para tener ordenado el sistema de discos de virtualbox es aconsejable hacer lo siguiente:
a) La imagen descargada en formato 7z la descomprimimos.
b)  al hacerlo seleccionamos extraerlo en el directorio creado por virtualbox en el paso anterior que en nuestro caso es "ubuntu14" y esta en nuestra carpeta personal/VirtualBox VMs/ubuntu14/

Seleccionamos la imagen que acabamos de extraer y creamos la VM



 Una vez terminado iniciamos la nueva VM y en el login ponemos usario: ubuntu password: ubuntu
Es el único usuario y por tanto el administrador del sistema


















sábado, 15 de agosto de 2015

Convertir base de datos de texto a csv

Seguramente en los próximos años, cuando lea este post, terminaré lamentando mi ignorancia en el tema,
O, posiblemente, encuentre aquí la "chuleta" que me permita salir del paso.
Tarea número 1: aprender a usar sed. Claramente es la solución a este problema pero mi manejo del mismo es terriblemente básico.

Aquí el escenario:
Tengo un extracto de un sistema de biblioteca (OMP) que por las limitaciones del mismo no llega a cumplir las necesidades del momento (no se puede filtrar la salida por campos, no se puede seleccionar períodos, no se puede, no se puede, etc)
De este extracto, que termina siendo una página html con formato de base de datos semejante a vcf, tengo que obtener al menos un archivo csv.
Todo parece muy sencillo pero sin conocimiento no hay nigún programa ni conversor en linea que resuelva la necesidad.
Asi es que, de un archivo que tiene este formato:

Texto 
TL : 574.526.323 A327 Resultado 1 de 179
Autor : Albariño, Ricardo J
Título : Análisis de la fracción macrozoobentónica en un cuerpo lótico andino
Ocultar Detalles
Institución : Universidad Nacional del Comahue, Centro Regional Universitario Bariloche
Ciudad : San Carlos de Bariloche
Año : 1994
Páginas : 66 p
Descriptores : LIMNOLOGIA - PATAGONIA - TL -
Grado Académico : TL.
Tengo que obtener un archivo de campos separados por comas.
la forma en que lo logré es la siguiente:

quitamos las lineas vacías:
cat graduados.txt |sed -e '/^$/d'>grad.txt


Sacamos aquellos campos que generan conflicto y rompen el loop:
 grep -v Editorial grad.txt|grep -v Ciudad|grep -v Ocultar|grep -v Páginas>grad1.txt

concatenamos los campos separandolos con el caracter "@"
cat grad1.txt|sed '$!N;s/\n/@/;$!N;s/\n/@/;$!N;s/\n/@/;$!N;s/\n/@/;$!N;s/\n/@/;$!N;s/\n/@/;'>grad2.txt

Depuramos columnas con desprolijidades
 cat sacar.txt |awk '{print $1,$2,$7}'
Y ya tenemos nuestra base de datos para manippularla a placer y hacer estadísticas, etc,etc.

______________________________________________________

Esto no es un tutorial de "copy&paste" sino una bitacora que puede servir de ayuda

Fuentes:
https://jinetedeldragon.wordpress.com/2009/06/22/sed-en-una-linea-sed-one-liners-parte-i/

jueves, 9 de julio de 2015

HFSC. El secreto mejor guardado de Linux controlando el tráfico

La siguiente es una traducción a español del la introducción al script HFSC-SHAPE pubicado por Bradoaks en github


#!/bin/bash
# Como la gente de "bufferbloat" ha recientemente re-descubierto y / o más ampliamente
# publicitado, los algoritmos para evitar la congestión (como las que se encuentran en TCP) hacen
# Un gran trabajo permitiendo a los puntos finales de la red negociar las tasas de transferencia que
# Maximizan el uso de ancho de banda de un enlace sin penalizar indebidamente ningún stream.
# Esto permite a los bulk-stream  utilizar el máximo disponible de Ancho de banda
# sin afectar la latencia del non-bulk (por ejemplo stream interactivo)
#

# En otras palabras, TCP le permite tener su pastel y comérselo también - a la vez Descargas
# rápidas y baja latencia, todo al mismo tiempo.

# Sin embargo, esto sólo funciona si los Algoritmos para evitar la congestión de TCP
# antes mencionada realmente funcionan. El método más fiable de señalización de
# Congestión es descartar paquetes. (Hay otras maneras, tales como ECN, pero
# Lamentablemente todavía no están en amplio uso.)

# Descartar paquetes para que la red funcione mejor es un poco contra-intuitivo.
# Pero, así es como funciona TCP. Y si uno se aprovecha de eso, puede hacer que
# TCP funcione muy bien.

# Descartar paquetes llama rapidamente la atención de TCP. El criterio de valoración del envío
# es revisado para evitar una mayor congestión de la red. En otras palabras, si la
# Descarga rápida se ralentiza se baja la velocidad de envío y, siempre y cuando no haya más congestión,
# El que envia aumenta gradualmente la velocidad de transferencia repitiendo el ciclo.
# Se puede dar una explicación más compleja que esta, pero el Punto principal es:
# descartar paquetes cuando hay congestión es bueno.

# control de tráfico es reducir la velocidad y / o descartar (o marcado ECN) paquetes.
# La cosa es que, es mucho mejor para la latencia simplemente descartar paquetes
# que frenarlos. Linux tiene un par de cotroladores de tráfico que no dudan
# en descartar paquetes. Uno de los más conocido es TBF  "Token Bucket Filter".
# Normalmente se ralentizan paquetes a una tasa específica. Pero también acepta una opción
# de "límite" para especificar el número máximo de paquetes de Cola. Cuando se supera
# el límite, los paquetes se descartan.

# El Algoritmo "tail-drop" de TBF es en realidad uno de los peores tipos de (AQM)
# "Gestión de cola activa"  que se puede hacer. sin embargo, este puede hacer
# Una gran diferencia. Aplicando solo TBF (con un límite lo suficientemente corto) puede hacer un
# enlace de alta latencia utilizable de nuevo en poco tiempo.

# La gran desventaja de TBF es que es un shaper "sin clases". Eso significa que
# No se puede dar prioridad a un flujo TCP sobre otro. Ahí es donde entra HTB, la
# Hierarchical Token Bucket. HTB utiliza el mismo algoritmo general como
# TBF al mismo tiempo que le permite filtrar el tráfico específico de colas de prioridad.

# Pero HTB tiene una gran debilidad: no tiene una buena y fácil forma de especificar un
# límite de Cola como sí TBF. Eso significa que, en comparación con TBF, HTB opta por
# ralentizar paquetes en lugar de descartarlos. lo cual no es bueno para la latencia.

# Así que ahora llegamos al secreto mejor guardado de Linux controlando el tráfico: el shaper HFSC.
# HFSC significa "Curva jerárquica Justa de Servicio". La implementación en Linux es tremendamente
# compleja, lo suficiente como para tener una pregunta de 9 páginas en serverfault
# ( http://serverfault.com/questions/105014/does-anyone-really-understand-how-hfsc-scheduling-in-linux-bsd-works ).
# No obstante, HFSC puede entenderse de una manera simplificada como HTB con límites.
# HFSC le permite clasificar el tráfico (como HTB, a diferencia de TBF), pero también puede
# descartar paquetes (a diferencia de HTB, como TBF).

# HFSC hace un gran trabajo al mantener una baja latencia. Con ella, es posible
# Saturar totalmente un enlace mientras se mantiene una sesión de trafico interactivo .
# Es el santo grial de la modulación del tráfico, y esta en los kernel existentes.

# Para obtener los mejores resultados, HFSC debe combinarse con SFQ (Stochatic
# Fairness Queueing) y opcionalmente un filtro de entrada. Si los tres se utilizan,
# Es posible mantener sesiones interactivas de baja latencia, incluso sin ningúna
# Priorización de tráfico. Si además añadimos priorización entonces maximizamos la
# Interactividad.

# Here's how it's done:

# set this to your internet-facing network interface:
WAN_INTERFACE=eth1

# set this to your local network interface:
LAN_INTERFACE=eth0

# how fast is your downlink?
MAX_DOWNRATE=2550kbit

# how close should we get to max down? e.g. 90%
USE_DOWNPERCENT=0.90

# how fast is your uplink?
MAX_UPRATE=1792kbit

# how close should we get to max up? e.g. 80%
USE_UPPERCENT=0.80

# what port do you want to prioritize? e.g. for ssh, use 22
INTERACTIVE_PORT=22

## now for the magic

# remove any existing qdiscs
/sbin/tc qdisc del dev $WAN_INTERFACE root 2> /dev/null
/sbin/tc qdisc del dev $WAN_INTERFACE ingress 2> /dev/null
/sbin/tc qdisc del dev $LAN_INTERFACE root 2> /dev/null
/sbin/tc qdisc del dev $LAN_INTERFACE ingress 2> /dev/null

# computations
MAX_UPNUM=`echo $MAX_UPRATE | sed 's/[^0-9]//g'`
MAX_UPBASE=`echo $MAX_UPRATE | sed 's/[0-9]//g'`
MAX_DOWNNUM=`echo $MAX_DOWNRATE | sed 's/[^0-9]//g'`
MAX_DOWNBASE=`echo $MAX_DOWNRATE | sed 's/[0-9]//g'`

NEAR_MAX_UPNUM=`echo "$MAX_UPNUM * $USE_UPPERCENT" | bc | xargs printf "%.0f"`
NEAR_MAX_UPRATE="${NEAR_MAX_UPNUM}${MAX_UPBASE}"

NEAR_MAX_DOWNNUM=`echo "$MAX_DOWNNUM * $USE_DOWNPERCENT" | bc | xargs printf "%.0f"`
NEAR_MAX_DOWNRATE="${NEAR_MAX_DOWNNUM}${MAX_DOWNBASE}"

HALF_MAXUPNUM=$(( $MAX_UPNUM / 2 ))
HALF_MAXUP="${HALF_MAXUPNUM}${MAX_UPBASE}"

HALF_MAXDOWNNUM=$(( $MAX_DOWNNUM / 2 ))
HALF_MAXDOWN="${HALF_MAXDOWNNUM}${MAX_DOWNBASE}"

# install HFSC under WAN to limit upload
/sbin/tc qdisc add dev $WAN_INTERFACE root handle 1: hfsc default 11
/sbin/tc class add dev $WAN_INTERFACE parent 1: classid 1:1 hfsc sc rate $NEAR_MAX_UPRATE ul rate $NEAR_MAX_UPRATE
/sbin/tc class add dev $WAN_INTERFACE parent 1:1 classid 1:10 hfsc sc umax 1540 dmax 5ms rate $HALF_MAXUP ul rate $NEAR_MAX_UPRATE
/sbin/tc class add dev $WAN_INTERFACE parent 1:1 classid 1:11 hfsc sc umax 1540 dmax 5ms rate $HALF_MAXUP ul rate $HALF_MAXUP

# prioritize interactive ports
/sbin/tc filter add dev $WAN_INTERFACE protocol ip parent 1:0 prio 1 u32 match ip sport $INTERACTIVE_PORT 0xffff flowid 1:10
/sbin/tc filter add dev $WAN_INTERFACE protocol ip parent 1:0 prio 1 u32 match ip dport $INTERACTIVE_PORT 0xffff flowid 1:10

# add SFQ
/sbin/tc qdisc add dev $WAN_INTERFACE parent 1:10 handle 30: sfq perturb 10
/sbin/tc qdisc add dev $WAN_INTERFACE parent 1:11 handle 40: sfq perturb 10

# install ingress filter to limit download to 97% max
MAX_DOWNRATE_INGRESSNUM=`echo "$MAX_DOWNNUM * 0.97" | bc | xargs printf "%.0f"`
MAX_DOWNRATE_INGRESS="${MAX_DOWNRATE_INGRESSNUM}${MAX_DOWNBASE}"
/sbin/tc qdisc add dev $WAN_INTERFACE handle ffff: ingress
/sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip prio 1 u32 match ip sport $INTERACTIVE_PORT 0xffff flowid :1
/sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip prio 1 u32 match ip dport $INTERACTIVE_PORT 0xffff flowid :1
/sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip prio 50 u32 match ip src 0.0.0.0/0 police rate $MAX_DOWNRATE_INGRESS burst 20k drop flowid :2

# install HFSC under LAN to limit download
/sbin/tc qdisc add dev $LAN_INTERFACE root handle 1: hfsc default 11
/sbin/tc class add dev $LAN_INTERFACE parent 1: classid 1:1 hfsc sc rate 1000mbit ul rate 1000mbit
/sbin/tc class add dev $LAN_INTERFACE parent 1:1 classid 1:10 hfsc sc umax 1540 dmax 5ms rate 900mbit ul rate 900mbit
/sbin/tc class add dev $LAN_INTERFACE parent 1:1 classid 1:11 hfsc sc umax 1540 dmax 5ms rate $HALF_MAXDOWN ul rate $NEAR_MAX_DOWNRATE

# prioritize interactive ports
/sbin/tc filter add dev $LAN_INTERFACE protocol ip parent 1:0 prio 1 u32 match ip sport $INTERACTIVE_PORT 0xffff flowid 1:10
/sbin/tc filter add dev $LAN_INTERFACE protocol ip parent 1:0 prio 1 u32 match ip dport $INTERACTIVE_PORT 0xffff flowid 1:10

# add SFQ
/sbin/tc qdisc add dev $LAN_INTERFACE parent 1:10 handle 30: sfq perturb 10
/sbin/tc qdisc add dev $LAN_INTERFACE parent 1:11 handle 40: sfq perturb 10

### End of Script

Nota:
podemos chequear las estadísticas del queue con:
watch -d -- '/sbin/tc -s qdisc'

martes, 9 de junio de 2015

Actualizar Moodle a nuevas versiones

Una vez que tenemos instalado nuestra plataforma educativa virtual como mostramos en este post va a llegar un momento en que tengamos que realizar actualizaciones parciales o actualizar moodle a una versión superior completa.

Para ello, siguiendo esta  guía podemos preservar las modificaciones y personalización que le realizamos a nuestra instalación durante su utilización.

Debemos cambiarnos al directorio de nuestro repositorio moodle local

cd /opt/moodle/
una vez en él podemos editar desde esa locación cambiarnos directamente al directorio de excepciones

 vi /opt/moodle/.git/info/exclude
alternativamente,

 cd .git/info/
y editamos el archivo exclude:

 vi exclude 

en el mismo vamos a incorporar los archivos y/o directorios que queremos que no sean descargados cuando actualicemos la información del respositorio



por último ejecutamos como usuario root o como sudo "git pull" para actualizar Moodle a la versión más reciente, Git ignorará estos archivos y directorios y solamente actualizará lo restante.


Fuente:
https://docs.moodle.org/all/es/Guia_de_instalacion_paso-a-paso_para_Ubuntu#Paso_5:_Copiar_repositorio_local_a_.2Fvar.2Fwww.2Fhtml.2F