Archivos de la categoría Sysadmin

Actualizar Mysql a 5.6 en Centos 6

Un post rápido:

Actualizar mysql en centos.

He de suponer que ya tienen centos 6.7 y un backup de las bases de datos que siempre viene bien, pueden usar este script para respaldar bases de datos.

O de respaldar todo en un solo archivo:

mysqldump -u root -p --all-databases > backup.sql

Vamos al lio descargamos el repo:

wget http://repo.mysql.com/mysql-community-release-el6-7.noarch.rpm

Instalamos el repo:

rpm -i mysql-community-release-el6-7.noarch.rpm

Actualizamos mysql

yum update mysql-server

Reiniciamos mysql:

service mysqld restart

Hacemos un upgrade:

mysql_upgrade

O bien mysql_upgrade -u root -p

Les pedirá la clave y listo.

Sirve también para actualizar el mysql de plesk, aunque en este caso hay que cambiar el usuario por admin a la hora de conectar, también lo he usado sin problemas para actualizar el mysql en vestacp y centos en general ( menos cpanel )

Mysql Monitor – Levantar MYSQL cuando se cae y enviar email si no inicia.

Dejo aquí uno de los últimos script, en este caso casi a pedido.

Función:
– Revisar si MYSQL esta online-
– En caso de que MYSQL esté caído levantarlo.
– Si esta caído y lo inicia manda las ultimas 30 lineas del log al email e informa de que esta off.
– En caso de no poder iniciar manda un email adicional para informar de que no pudo iniciar.

Versión: beta 0.1 funcional

Descargar:

wget mirror.skamasle.com/scripts/sk-mysql-monitor.sh

Editar lineas, 11, 12 y 13.

LOG='/var/lib/mysql/HOSTNAME.err'
EMAIL1='[email protected]'
EMAIL2='[email protected]'

Permisos:

chmod +x sk-mysql-monitor.sh

Cron:

*/2 * * * * /root/sk-mysql-monitor.sh

Para monitorizar otros servicios pueden ver sk-monitoring en este enlace.

Instalar IonCubeLoader – Links de descarga. [Centos – Debian – Ubuntu]

Bueno ya sea en centos, debian / ubuntu u otra distro el procedimiento de la instalación es el mismo.. y la verdad que es muy sencillo, hago este post solo para que no se me olvide el enlace de descarga que siempre tengo que andar buscándolo.

Para descargarlo:

wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

Descomprimir:

tar zxvf ioncube_loaders_lin_x86-64.tar.gz

Mover, se puede poner en cualquier ruta, ya sea donde tenemos las extenciones o a /var/lib o /usr, /opt, a la que prefieran.

Yo la moveré a opt que nunca hay nada ahí.

Continue reading

FreeBSD: PHP-FPM y NGINX Página en Blanco | White Page

PHP-FPM Página en Blanco | White Page

He estado montado unos servidores con FreeBSD con NGINX y PHP-FPM y me he encontrado que no funcionaba el PHP con la configuración habitual, tampoco salia nada en los logs, el único síntoma era una página en blanco al acceder a cualquier archivo PHP.

La solución al problema, añadir el PATH_TRASLATED que no esta definido a la configuración de fcgi:

fastcgi_param PATH_TRANSLATED $document_root$fastcgi_script_name;

Esto se tiene que añadir o bien al vhost de la web o directamente en fastcgi_params para que tome efecto en todas las páginas, luego reiniciamos nginx y listo ( no hace falta reiniciar php-fpm)

Error Luego de Actualizar Mysql: install_driver(mysql) failed: Can’t load ‘/usr/lib64/perl5/auto/DBD/mysql/mysql.so

install_driver(mysql) failed: Can’t load ‘/usr/lib64/perl5/auto/DBD/mysql/mysql.so

Si tenemos una web que trabaje con perl puede que nos de ese error al actualizar mysql, es por que las versiones del cliente y del mysql no son iguales.. ( en php aveces pasa lo mismo aunque no afecta a todas las webs, vbulletin es la más delicada al respecto )

En fin, para solucionarlo en perl podemos ejecutar los siguientes comandos:

Nos logueamos a la consola de perl:

perl -MCPAN -e shell

Y forzamos la instalación de los módulos:

force install DBI

force install DBD::mysql

Tarda un poco en instalar pero el problema se resolverá cuando acabe con los dos 🙂

Más información en la documentación de perl:

http://cpansearch.perl.org/src/JWIED/DBD-mysql-2.1015/INSTALL.html

Añadir una palabra delante de cada linea en un fichero.

Estaba trabajando con el webmaster tools y la nueva herramienta para deshabilitar enlaces de google que la actualizo de vez en cuando.

En esta ocasión iba a deshabilitar 250 dominios spamers, pero el problema es que tenia los dominios en un archivo de texto:

dominio.com
lalal.net
blabla.com
etc.com

Bien, el asunto es que para mandar los dominios a google hay que hacerlo de esta forma:

domain:dominio.com
domain:lalal.net
domain:blabla.com
domain:etc.com

Así que antes de buscar nada hice un sencillo script que hiciera el trabajo y que seguramente a alguien le servirá también.

#!/bin/bash
fichero=$(cat $1 | tr "\n" " ")
for palabra in $fichero
do
     echo domain:$palabra >> $2
done

Si, eso es todo y en menos de un segundo tenemos domain: delante de todas las lineas.

Lo guardamos con cualquier nombre ej: cambio.sh y lo ejecutamos así:

sh cambio.sh FicheroConTextos.txt FicheroNuevo.txt

Se pueden hacer cambios en el script para que sea más fácil de usar o bien para que sea más complejo y comente solo las primeras lineas del fichero o las últimas, pero vamos, que lo por necesidad, no debería ni haber escrito este tema pero, queda para el recuerdo y tal vez le sirva a alguien.

Sacar todos los correos asignados a las cuentas cpanel

He estado trabajando en un script para el cual necesito la lista de eMails de los usuarios de cPanel y ya que hice la función y tal lo converti en un script aparte por si alguien necesita sacar los emails de todos los usuarios de cPanel.

Tal vez haya algo default en cPanel para hacer esto, pero como ya estaba haciendo algo para mi lo hice.

El script hace dos cosas, primero muestra los emails de los usuarios y segundo muestra los usuarios que no tienen email asignado, por defecto crea el archivo /tmp/UsuariosSinEmailDefinido.txt y ahí guarda todos los usuarios de cPanel que no tengan un correo asignado a su cuenta, se puede añadir un archivo similar para agregar ahí los usuarios que si tienen un eMail o bien solo los usuarios.

Correo Principal de todas las cuentas de cPanel

#!/bin/bash
# Sacar lista de emails de usuarios cpanel.
# Skamasle.
ruta=/var/cpanel/users
ListaSinMails=/tmp/UsuariosSinEmailDefinido.txt
if [ -e $ListaSinMails ]; then
	cat /dev/null > $ListaSinMails
else
	touch $ListaSinMails
fi
imp () {
mail=$1
td=$(cat $mail |grep "CONTACTEMAIL" |cut -d"=" -f2)
if [[ $td == *@* ]]; then
        echo "El Correo del usuario: $mail es" $td
else
    	tput bold
        tput setaf 1
echo "Usuario $mail no tiene asignado un eMail"
        tput sgr 0
        echo "$mail" >> $ListaSinMails
fi
}
correo () {
cd $ruta
for i in *
	do
 		imp $i
done
}
correo
	tput bold
	tput setaf 2
echo "Usuarios que no tienen un email definido"
tput sgr 0
cat $ListaSinMails
exit 1

Si usan windows y copian y pegan puede que tengan problemas, igual el scipt lo pueden bajar desde aquí: CP-Mail.sh

wget http://mirror.skamasle.com/scripts/CP-Mails.sh

Espero les sirva 🙂

Bash generar contraseñas – letras y números aleaorios

Estaba simplificando mi auto instalador de ISPCONFIG para que sea más sencillo y más automático de usar y una de las cosas que tiene es la clave de mysql, así que que me a dado por generar la contraseña para que el usuario no tenga que escribirla y he llegado hasta este comando:

Generar claves aleatorias en bash

cat /dev/urandom| tr -dc '0-9a-zA-Z'|head -c 8

La salida:

XiunRWVM

También podemos añadirle simbolos:

cat /dev/urandom| tr -dc '[email protected]#'|head -c 8

j2q6P#gs

O hacerla más larga

cat /dev/urandom| tr -dc '[email protected]#-'|head -c 22

ofSMeuWYdDVl3zMVMyLSDe

Y tengo que adminitirlo el comando tr es nuevo para mi:

man tr

NAME
tr – translate or delete characters

SYNOPSIS
tr [OPTION]… SET1 [SET2]

DESCRIPTION
Translate, squeeze, and/or delete characters from standard input, writing to standard output.

-c, -C, –complement
use the complement of SET1

-d, –delete
delete characters in SET1, do not translate

-s, –squeeze-repeats
replace each input sequence of a repeated character that is listed in SET1 with a single occurrence of that character

-t, –truncate-set1
first truncate SET1 to length of SET2

–help display this help and exit

–version
output version information and exit

Para mi es más que suficiente, aunque buscando y buscando he encontrado esta web en la que explica varios metodos y hasta una variante del comando que deje más arriba: 10 formas de generar claves en bash

Con uno de los que me quedo que hay en esa web es con este:

randpw(){ < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;}

Y con esta otra que las dos son variantes del de arriba:

strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo

Espero les sirvan tanto como a mi 🙂

¿Me configuraron mal mysql?

He escrito en el blog principal algo que tal vez muchos se preguntan y es si les han configurado mysql mal cuando han contratado a alguien para que les configurará el servidor hace varios meses.

Con este tema podrán pensar, ¡¿va mal por que me lo han configurado mal? o ¿va mal por que nunca más le he dicho a alguien que lo revise y lo re configure para mis nuevas webs?

Pueden ver el tema completo en este enlace: ¿mysql mal configurado?