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');"

Habilitar HTTPS en JMeter

diciembre 9th, 2016

Una de las situaciones actuales en los momentos de probar un sitio web es poder probar la carga de conexiones hacia el sitio, actualmente muchos de los sitios están ejecutando sobre el protocolo HTTPS por motivos de seguridad.

Para poder hacer las pruebas desde JMeter se tiene que habilitar un certificado para que JMeter pueda conectarse al servidor HTTPS intercambiando sus certificados.

Primero ejecutar el comando
openssl s_client -connect hostname:port -showcerts

Para quienes tienen Mac o Linux el comando viene dentro de la instalación, en windows, recomiendo instalar OpenSSL

Aparecerá el certificado del servidor al cual te estas intentando conectar y un segundo certificado, que es el que utiliza openssl. Esta segunda parte copialo y pégalo en un txt desde BEGIN y END inclusive.

Asumamos que lo guardaste como AppJMeter.cer

Lo segundo es ejecutar keytool de java para guardar el certificado dentro de un almacén seguro

keytool -importcert -alias APPLICATION_NAME_CA_PUBLIC_CERT -file AppJMeter.cer -keystore jmeter_truststore.jks -storepass Password01

Finalmente edita /bin/system.properties e incluye

https.default.protocol=TLSv1
javax.net.ssl.trustStore=C:/jmeter/apache-jmeter-2.13/jmeter_truststore.jks
javax.net.ssl.trustStorePassword=Password01

Esta claro que debes considerar la rutas correctas.
Reinicia JMeter y ahora puedes utilizar puerto 443 y protocolo HTTPS

Errores posibles

javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure : si se recibe este error es porque los certificados de Java están desactualizados, por lo que debes buscar en Oracle la ultima versión de JCE y copiarlo en /lib/security, la actualización viene con dos archivos local_policy.jar y US_export_policy.jar, una vez copiados reinicia JMeter

Es posible también que recibas otro error por protocolo, hay que ver el nivel de encriptación del sitio (casi siempre en el candado que aparece en la dirección) y ver que versión TLS esta utilizando. Los sitios mas nuevos están utilizando TLSv1.2 por lo que se debiese cambiar el protocolo dentro del system.properties de JMeter

https.default.protocol=TLSv1.2

Swift (de Apple) es ahora Open Source

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