Creando un archivo swap para Linux de AWS

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.

Consultas sobre las plataformas en Oracle con su Little o Big Endian

mayo 1st, 2023

Esta es la consulta para listar las plataformas que Oracle tiene disponibles para ser instalada, pero además esta consulta expone el formato Endian en que están. Esto ultimo es sumamente importante al momento de una migración, ya que los script de Oracle lo utilizan para saber la plataforma origen.

SELECT platform_name, endian_format, platform_id
FROM v$transportable_platform
ORDER BY platform_name;

La respuesta normal debiese ser

PLATFORM_NAME                                                                                         ENDIAN_FORMAT  PLATFORM_ID
----------------------------------------------------------------------------------------------------- -------------- -----------
AIX-Based Systems (64-bit)                                                                            Big                      6 
Apple Mac OS                                                                                          Big                     16 
Apple Mac OS (x86-64)                                                                                 Little                  21 
HP IA Open VMS                                                                                        Little                  19 
HP Open VMS                                                                                           Little                  15 
HP Tru64 UNIX                                                                                         Little                   5 
HP-UX IA (64-bit)                                                                                     Big                      4 
HP-UX (64-bit)                                                                                        Big                      3 
IBM Power Based Linux                                                                                 Big                     18 
IBM zSeries Based Linux                                                                               Big                      9 
Linux IA (32-bit)                                                                                     Little                  10 
Linux IA (64-bit)                                                                                     Little                  11 
Linux x86 64-bit                                                                                      Little                  13 
Microsoft Windows IA (32-bit)                                                                         Little                   7 
Microsoft Windows IA (64-bit)                                                                         Little                   8 
Microsoft Windows x86 64-bit                                                                          Little                  12 
Solaris Operating System (x86)                                                                        Little                  17 
Solaris Operating System (x86-64)                                                                     Little                  20 
Solaris[tm] OE (32-bit)                                                                               Big                      1 
Solaris[tm] OE (64-bit)                                                                               Big                      2 

Notepad++

julio 29th, 2021

Una de las herramientas esenciales es procesar log, txt u otros rápidamente. Notepad++ cumple con las características de «no esperar» para que se cargue el programa, y con ello la velocidad de editar rápidamente un archivo de texto, con funcionalidades mayores que las que ofrece los editores por defecto.

Página oficial https://notepad-plus-plus.org/

Impedir doble ejecución del cron de moodle

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

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

Instalación de composer en CEntOS 7… la linea adicional

septiembre 12th, 2017

La instalación que se despliega en el sitio de composer es totalmente válida (si tienes instalado php en tu equipo) para CEntOS 7, pero recomiendo una linea adicional:

mv composer.phar /usr/local/bin/composer

Esto para que quede como ejecutable en linea de mando para cualquier usuario. Sino tendrá que utilizar la fórmula

php composer.phar ... y lo demas

NOTA: Las lineas originales del sitio de composer al escribir este artículo son

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"