Archivos de la categoría Utilidades

VirtualBox no pasa de 0% starting machine

Por algún extraño motivo de la vida virtualbox deja de funcionar luego de actualizar el sistema ( debian testing ) no he podido investigar si es por la actualización del sistema o del propio virtualbox ya que se actualice todo a la vez.

El tema es que sale un feo mensaje que dice “starting virtual machine 0%” tampoco se puede cerrar la ventana

Virtualbox tampoco deja crear nuevos discos ni parece funcionar nada, un desastre vamos, con una solución sencilla en primera instancia, tampoco he investigado por que, pero el usuario del sistema a salido del grupo de virtualbox, la solución de todo pasa por añadir el usuario al grupo

adduser TU-USUARIO vboxusers

En TU-USUARIO tienes que poner tu usuario, pepito, skamasle, superhacker etc vamos el usuario en el que estas o con el que hayas hecho logín que es lo mismo.

Luego todo fuciona como la seda, el comando hay que ejecutarlo como root esta claro 😉

Backups Caseros – Remotos e Incrementales si el PC esta Encendido.

Los backups son importantes para mi y al tener varias computadoras que mejor que una haga backup dentro de otra, el problema es que hacerlo de forma manual aveces no es conveniente, primero por tiempo y segundo por que se me olvida !

Ahora bien, tener varias computadoras en casa no significa que estén todas encendidas siempre, aunque casi todos los días coinciden y durante un periodo de tiempo llegan a estar encendidas a la vez más de una computadora, así que he pensado en esto durante un tiempo y me dio por hacer un script que aproveche esos periodos de tiempo y haga un backup.

Versión 0.3.3
– Selección de puerto SSH.
– Bugs solucionados.

Versión 0.3.0
– Algunos cambios en el código, ahora funciona con bash solamente, no se puede ejecutar con sh en ubuntu si no con./
– [Bug] Mejora en los backups, revisa códigos de error, si el pc se apaga o el backup no termina no se crea el lock file.
– Se puede escoger puerto para el SSH.

Versión 0.2.2 beta

– Posibilidad de escoger otro puerto ssh.
– Cambios menores.

Continue reading

Instalador de scripts de ConfigServe

No es que sea algo extremadamente necesario ya que la instalación de los programas ce configserve es muy pero muy fácil, pero, si necesitamos instalar varios de ellos hay que buscarlos, descargarlos, instalarlos etc, así que hice un pequeño script que lo hace de forma automática, con la posibilidad de instalar todas las aplicaciones o solamente una.

El script:

Algunos cambios en versión 0.3.1.

Se añadió una opción más, añadir IPs de cloudflare al servidor.

#!/bin/bash
# CSF, CMM, CMQ, CMC, CMM, CSE
# Skamasle.com
# Por Maks - Skamasle
# v 0.3.2 - Añadido rangos de ip a csf, bugs corregidos.
# 31 Enero 2014
# Use bajo su propio riesgo y responsabilidad.
firewall () {
if [ ! -d /etc/csf ]; then
	tput setaf 6
	echo "Instalando CSF - Firewall"
	cd /usr/local/src
	wget http://www.configserver.com/free/csf.tgz >/dev/null 2>&1
	tar -xzf csf.tgz > /dev/null
	cd csf 
	sh install.sh >/dev/null 2>&1
	tput bold
	echo "Listo !"
	tput sgr0
else
	echo "Parece que CSF ya esta instalado"

fi
}

cloudflareip () {
if [ -d /etc/csf ]; then
	echo "Añadiendo IPs de CloudFlare a CSF"
	csf -a 199.27.128.0/21
	csf -a 173.245.48.0/20
	csf -a 103.21.244.0/22
	csf -a 103.22.200.0/22
	csf -a 103.31.4.0/22
	csf -a 141.101.64.0/18
	csf -a 108.162.192.0/18
	csf -a 190.93.240.0/20
	csf -a 188.114.96.0/20
	csf -a 197.234.240.0/22
	csf -a 198.41.128.0/17
	csf -a 162.158.0.0/15
	csf -a 2400:cb00::/32
	csf -a 2606:4700::/32
	csf -a 2803:f800::/32
	csf -a 2405:b500::/32
	csf -a 2405:8100::/32
	tput bold
	echo "Listo rangos de IP de cloudflare añadidos al servidor !"
	tput sgr0
else 
	echo "CSF no esta instalado, instalalo antes con: sh skcs.sh csf"
fi

}

cmq () {
if [ ! -d /usr/local/cpanel/whostmgr/docroot/cgi/configserver/cmq ]; then
	tput setaf 6
	echo "Instalando CMQ - Mail Queues"
	cd /usr/local/src
	wget http://www.configserver.com/free/cmq.tgz >/dev/null 2>&1
	tar -xzf cmq.tgz >/dev/null 
	cd cmq 
	sh install.sh >/dev/null 2>&1
	tput bold
	echo "Listo !"
	tput sgr0
else
	echo "Parece que CMQ ya esta instalado"
fi
}

cmc () {
if [ ! -d /usr/local/cpanel/whostmgr/docroot/cgi/configserver/cmc ]; then
	tput setaf 6
	echo "Instalando CMC - ModSecurity Control"
	cd /usr/local/src
	wget http://www.configserver.com/free/cmc.tgz >/dev/null 2>&1
	tar -xzf cmc.tgz >/dev/null
	cd cmc 
	sh install.sh >/dev/null 2>&1
	tput bold
	echo "Listo !"
	tput sgr0
else
	echo "Parece que CMC ya esta instalado"
fi
}

cmm () {
if [ ! -d /usr/local/cpanel/whostmgr/docroot/cgi/configserver/cmm ]; then
	tput setaf 6
	echo "Instalando CMM - Mail Manage"
	cd /usr/local/src
	wget http://www.configserver.com/free/cmm.tgz >/dev/null 2>&1
 	tar -xzf cmm.tgz >/dev/null
	cd cmm 
	sh install.sh >/dev/null 2>&1
	tput bold
	echo "Listo !"
	tput sgr0
else
	echo "Parece que CMM ya esta instalado"
fi
}

cse () {
if [ ! -d /usr/local/cpanel/whostmgr/docroot/cgi/configserver/cse ]; then
	tput setaf 6
	echo "Instalando CSE- Server Explorer"
	cd /usr/local/src
	wget http://www.configserver.com/free/cse.tgz >/dev/null 2>&1

	tar -xzf cse.tgz >/dev/null
	cd cse
	sh install.sh >/dev/null 2>&1
	tput bold
	echo "Listo !"
	tput sgr0
else
	echo "Parece que CSE ya esta instalado"
fi
}
todo () {
echo "Instalando TODO: CSE, CMM, CSF, CMQ y CMC"
firewall
cse 
cmm 
cloudflareip
cmq 
cmc
}

if [ -z "$1" ]; then
		tput bold
		tput setaf 1
	echo "###################"
	echo "Modo de ejecución:"
	echo "sh skcs.sh opcion"
	echo "###################"
		tput setaf 2
	echo "###################"
	echo "Opciones posibles (en minuscula todo):"
	echo "###################"
	echo "csf, cse, cmm, cmc, cmq, addip todo"
	echo "Ej: para instalar todo ejecuta:"
	echo "sh skcs.sh todo"
	echo "###################"
		tput setaf 6
	echo "###################"
	echo "CSF = Firewall"
	echo "CSE = Server Explorer"
	echo "CMM = Mail Manage"
	echo "CMC = ModSecurity Control"
	echo "CMQ = Mail Queues"	
	echo "ADDIP = Añade los rangos de IP de cloudflare a la lista blanca de CSF"
	echo "TODO = Instalado y hace todo lo anterior"
	echo "###################"
		tput sgr0
	exit
fi

case "$1" in
	csf)
		firewall
            ;;
         
	cse)
		cse
            ;;
         
	cmm)
		cmm
            ;;
	cmc)
		cmc
            ;;
	cmq)
		cmq
            ;;
	addip)
		cloudflareip
            ;;
	todo)	
		todo
		;;
esac

Descarga:

wget mirror.skamasle.com/scripts/skcs.sh

Trabaja así:

Si queremos instalar todos los paquetes ejecutamos:

sh skcs.sh todo

Si solo queremos csf:

sh skcs.sh csf

Y así sucesivamente con los paquetes que queremos instalar.

Como ya he dicho no es que sea la bomba solo facilita el trabajo un poco en algunos casos.

Monitorear servicios (ftp, mysql, apache etc) y levantar si esta caído.

Se que hay muchos monitores de servicios, incluso webmin tiene uno muy bueno, pero tengo servidores muy lite que apenas y ejecutas programas, algunos solo con un FTP y con RAM limitada, otros con nginx nada más y no corren nada más, hacen de proxy o son backup, así que no merece la pena instalar webmin en algunos, por lo tanto hice este pequeño script para levantar servicios caídos automáticamente.

Esta pensando en servidores con Debian, aunque funciona en Centos también, en servidores cPanel no hace falta ya que cpanel tiene su propia herramienta de monitoreo, pero hay que lo querrá poner por cualquier motivo, pero no funciona con apache con httpd status de cPanel y tampoco con exim ( motivo desconocido aún )

El script funciona con cualquier servicio que returne un código de error por defecto, aunque se puede pulir más.

#!/bin/bash
# Monitoreo de servicios.
# Por Skamasle - Maks Usmanov.
# Skamasle.com - kb.skamasle.com
# Contacto [email protected]
# Modificación: 29 dic 2013
# Versión 0.4
# Use bajo su propio riesgo, skamasle.com no se hace responsable del uso que se le de al script
# NOTA: Este script no borra ni hace intentos de borrar ningún archivo, solo revisa que los
# servicios estén corriendo, el único archivo que crea este script es ReporteServicios.txt
# que es donde se guardará el reporte de servicios que han estado caídos.
servicios='proftpd mysql apache2 nginx varnish memcached lighttpd pureftpd pure-ftpd-mysql httpd'
report=/root/ReporteServicios.txt
fecha=$(date)
checkstatus () {
service $1 status > /dev/null 
status="$?"
if [ $status  -eq "1" ] || [ $status  -eq "2" ] || [ $status  -eq "3" ] || [ $status  -eq "4" ]; then
	echo "$1 esta caído" $fecha >> $report
	/etc/init.d/$1 start >> $report
fi
}

existe () {

if [ -e /etc/init.d/$1 ]; then
	checkstatus $1
fi
}

for servicio in $servicios
        do 
                existe $servicio
done

Descargar y ejecutar:

wget mirror.skamasle.com/scripts/sk-monitoring.sh

Cron:

*/5 * * * * sh /ruta/sk-monitoring.sh

Eso es todo, si alguien quiere aportar alguna idea para mejorar el script, bienvenida sea.

Sistemas de monitoreo más completos

Si buscan algo más pro, pueden usar webmin que tiene un servicio de monitoreo completo.

Enlace a SIM
Enlace a CSF
Enlace a Webmin

Esos 3 son sistemas bastante completos si quieren algo mejor, sk-moinitoring es para tener algo propio, pero que no compite con sistemas con años de desarrollo.

Buscar versiones obsoletas de Joomla en Servidores cPanel.

Gracias a una idea que nació en Comunidad Hosting y a unos códigos de IWEB que buscaban todos los joomla que habían en un servidor y mostraban sus versiones he programado este script, que hace algo similar solo que muestra las versiones obsoletas y el usuario que tiene una de ellas.

Es un script muy sencillo y bueno, no soy experto en programación, por eso lo hice en bash, espero pronto hacerlo en python, aunque eso quedará en veremos.

Buscar Scripts Joomla Desactualizados en Servidor con cPanel

Esta es la versión 0.3 beta:

– Busca versiones de joomla 1.5 o anteriores, las marca como criticas ya que no hay más soporte para esa versión.
– Busca versiones anteriores a joomla 2.5.17.
– Busca versiones anteriores a joomla 3.2.1.

Descargar 0.3 beta AQUÍ

Por ahora solo busca.

En las próximas versiones mandará un email ya sea al administrador del servidor o al dueño de la cuenta.

Se que el código es un poco largo para lo poco que hace y se que puede ser mejor, pero no hago muchos scripts como este así que estoy un poco verde en lo que es programación y les aseguro que el script mejorará con el tiempo.

Por otro lado no busca versiones de joomla, por eso quedo tan largo, lo que hace es buscar la fecha de lanzamiento del script cosa que al final da lo mismo, pero en las próximas versiones corregiré eso.

Write Cache – HDPARM y SDPARM – RAID – IO Wait, 10 mb /sec

NOTA — esto es un apunte que supongo que servirá para los que buscan info al respecto y saben de que va, si no es mejor hacer caso omiso.

Revisando un nodo con proxmox nuevo vi que la velocidad de lectura era la adecuada pero la velocidad de escritura no subía de 10 MB.

La velocidad era impeorable ( no se si existe esa palabra )

6384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 135.238 s, 7.9 MB/s

Revisando los logs me encontré con esto:

Sep 20 12:33:39 xxxx kernel: sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA
Sep 20 12:38:37 xxxx kernel: sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA
Sep 20 17:22:21 xxxx kernel: sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA
Sep 20 17:37:40 xxxxx kernel: sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA
Sep 21 07:35:01 xxxxx kernel: sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, supports DPO and FUA

Supuse que el principal motivo de la velocidad de escritura tan lenta era esa, ya que la lectura era normal:

hdparm -tT /dev/sda

/dev/sda:
 Timing cached reads:   24478 MB in  2.00 seconds = 12252.92 MB/sec
 Timing buffered disk reads: 590 MB in  3.01 seconds = 196.26 MB/sec

Intente con hdparm activa el cache:

 hdparm -W 1 /dev/sda

/dev/sda:
 setting drive write-caching to 1 (on)
 HDIO_DRIVE_CMD(setcache) failed: Invalid argument
 HDIO_DRIVE_CMD(identify) failed: Invalid argument

Así que toco recurrir a SDPARM para activar el cache y no hubo ningún problema:

# sdparm --set WCE=1 /dev/sda
/dev/sda: AMCC   

Y automáticamente el resultado con el test de escritura a mejorado:

16384+0 records in
16384+0 records out
1073741824 bytes (1.1 GB) copied, 6.77504 s, 158 MB/s

Herramientas para revisar los discos duros smartmontools,hdparm y sdparm

Smartmontools

Smart moon tools tiene varias cosas interesantes para revisar discos duros, lo básico es

La instalación:

apt-get install smartmontools 

Uso:

smartctl -i /dev/sda 

Mas info: smartctl –help

El asunto es investigar en el help y sacar la combinación que más necesitemos.

Hdparm

Lo miso instalación:

apt-get install  hdparm 

Uso:

hdparm -i /dev/sdb

SDPARM ver información de discos SATA

En principio hdparm funciona bien con los sata, pero fue diseñado en la era IDE (hd0 etc ) por eso se llama hdparm, luego nacio SD parm funciona bastante bien para los sata, aunque no todos los kernels soportan algunas funciones

Instalamos igual

apt-get install sdparm

Uso

sdparm -a -e /dev/sda
sdparm --page=ca --long /dev/sda

Y más info en la ayuda.