Archive for the ‘Linux’ Category

Creando un archivo swap para Linux de AWS

jueves, mayo 4th, 2023

Una de las cosas que no tienen las máquinas linux en AWS es el disco Swap, por lo que en algunos casos algunas instalaciones de software generar warning , error o derechamente no hacen nada, bien es cierto que lo que puedes hacer es crear un nuevo disco, adjuntarlo a la máquina y créalo como disco swap, pero existen oportunidades donde no hay tanto tiempo y un conjunto de comando puede crear un swap rápidamente

sudo dd if=/dev/zero of=/swapfile bs=128M count=32
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo swapon -s

finalmente editas el archivo /etc/fstab y agregas la linea

/swapfile swap swap defaults 0 0

Y tienes ya tu espacio swap.

Impedir doble ejecución del cron de moodle

jueves, marzo 15th, 2018

En las experiencias con Moodle me han sucedido ya varias cosas que contar, una de ellas es la ejecución del cron. En ambientes donde no se conoce bien la carga que va a tener el uso de Moodle se actua bajo la percepción de un mejor o peor caso, basado en lo cual se decide un tiempo entre ejecuciones del cron de Moodle, por ejemplo 20 minutos, lo que sucede es que en ambientes grandes 20 minutos muchas veces no resulta ser suficiente, para lo cual hay que buscar un mecanismo para evitar la doble ejecución del cron, ya que en algunas oportunidades la ejecución queda «tomada» o «pegada» y nunca termina o no termina correctamente.

Encontré en Preventing Duplicate Cron Jobs Execution la forma de hacerlo, pero incluyendo las lineas que llaman al cron de Moodle en una instalación que se asume está en /var/www/html/, adicionando ademas la posibilidad de guardar el log en la carpeta de logs de apache.

PIDFILE=/var/run/moodle_cron.pid
if [ -f $PIDFILE ]
then
  PID=$(cat $PIDFILE)
  ps -p $PID > /dev/null 2>&1
  if [ $? -eq 0 ]
  then
    echo "El proceso ya se esta ejecutando"
    exit 1
  else
    ## El proceso no se encuentra por lo que se asume que no se esta ejecutando
    echo $$ > $PIDFILE
    if [ $? -ne 0 ]
    then
      echo "No se puede crear el PID"
      exit 1
    else
      NOW=$(date +"%Y-%m-%d_%H-%M-%S")
      FILE=/var/log/httpd/moodle_cron.$NOW.log
      /usr/bin/php /var/www/html/admin/cli/cron.php > $FILE 
    fi
  fi
else
  echo $$ > $PIDFILE
  if [ $? -ne 0 ]
  then
    echo "No se puede crear el PID"
    exit 1
  fi
fi

rm $PIDFILE

Cambiar ruta de maillog en Centos

miércoles, marzo 14th, 2018

Muchas veces uno comete el error de dejar particiones pequeñas o particiones no separadas dentro de un ambiente Linux, la problematica esencial es cuando la realidad supera las espectativas de uso dentro de una plataforma.
En mi caso particular en una instalación no dimensione el correcto tamaño para la carpeta /var/log/ porque en realidad desconocía el uso masivo que tenía como envío de correo con la consecuencia que el archivo /var/log/maillog ocupaba demasiado espacio llenando la partición, por lo que me vi forzado a moverlo a otro lugar.

Para ello hay que editar el archiv /etc/rsyslog.conf buscar la linea en donde se encuentra la referencia mail.* y exactamente en la misma linea se encuentra referenciado /var/log/maillog

En mi caso la cambié por /nfs/log/maillog que es un servidor NFS con el suficiente espacio para soportar el crecimiento

Finalmente se ejecuta systemctl restart rsyslog y listo

Swift (de Apple) es ahora Open Source

jueves, diciembre 3rd, 2015

Como esta siendo la tónica de todos los grandes Apple ahora se une al Open Source a través de su nueva estrella Swift, de forma que este lenguaje ya puede ser utilizado como lenguaje multiplataforma.

La verdad es que con las alianzas con IBM y otros, Apple logra portar su codigo a Linux y proximamente a otros sistemas operativos, aun cuando esta claro que los principales (Windows, OS X y Linux) serán los beneficiados en este cuento.

Leer más

https://www.theverge.com/2015/12/3/9842854/apple-swift-open-source-released

Habilitar el profiling en Moodle a través de Xhprof

domingo, noviembre 29th, 2015

La opción de Moodle para habilitar el modo profiling esta ubicada en Administracion del sitio > Desarrollo > Profiling

En este caso en imagen debes establcer la opción de habilitación y además establecer un ‘*’ para que pueda hacer un profiling a todas las paginas.

moodle_profiling

Luego en Profiling runs, podras ver la lista de ejecuciones de los distintos accesos a las pagina, al ver el detalle te podrás encontrar con cosas como las siguientes

moodle_profiling2

Instalando xhprof para profiling de PHP

domingo, noviembre 29th, 2015

Una de las herramientas para hacer profiling en PHPes xhprof. Al momento de escribir este articulo estaba en su versión 0.9.4

Los pasos a seguir en su instalacion en mi caso en CEntOS son:

yum install graphviz
wget https://pecl.php.net/get/xhprof-0.9.4.tgz
tar xzf xhprof-0.9.4.tgz 
cd xhprof-0.9.4/extension/
phpize
./configure
make
make install

Luego editas el INI

vi /etc/php.d/xhprof.ini

Le estableces

[xhprof]
extension=xhprof.so
xhprof.output_dir="/tmp/xhprof"

Antes de reiniciar apache crea la carpeta para que guarde los datos del profiling

cd /tmp
mkdir xhprof
chown apache.apache xhprof/
ln -s /var/log/xhprof-0.9.4/xhprof_html xhprof
systemctl restart httpd