No arranca xampp error: Port 80 in use by “Unable to open process” with PID 4!

El otro dia me sucedio una cosa extraña y era que no me arrancaba el apache en el XAMPP, al parecer habia el PID4 estaba utilizando el puerto 80.

En el al adminsitrador de tareas y observe que el PID4 pertenecia al sistema, con lo que no se trataba de una aplicación en concreto.

Investigando me encuentro con que hay un servicio llamado BranchCache que es el que esta utilizando el puerto 80, con lo que para solucionarlo, solo he tenido que parar y deshabilitar el servicio con los siguientes pasos.

Buscador de  Windows > Servicios > Click botón derecho > Ejecutar como administrador

 Click botón derecho BranchCache > Propiedades > Tipo de inicio > Deshabilitado

Con estos pasos ya solucione el error y pude arrancar el apache del XAMPP.

Cómo mover base de datos temporal ‘TempDB’ a una nueva unidad en SQL Server

En ocasiones el espacio en disco es limitado y se nos llenan las unidades y puede ocasionar una parada de servicio.

Con esta entrada voy a explicar como mover base de datos temporal ‘TempDB‘ a una nueva unidad en SQL Server realizando los siguientes pasos.

Identificamos la ubicación de los datos y archivos de registro de la base de datos temporal TempDB.

SELECT 
name AS [LogicalName]
,physical_name AS [Location]
,state_desc AS [Status]
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb');

Cambiamos la ubicación de los archivos de registro y datos de TempDB mediante ALTER DATABASE.

ALTER DATABASE tempdb 
MODIFY FILE (NAME = tempdev, FILENAME = 'T:\MSSQL\DATA\tempdb.mdf');

ALTER DATABASE tempdb 
MODIFY FILE (NAME = templog, FILENAME = 'T:\MSSQL\DATA\templog.ldf');

Detenemos y reiniciamos el servicio de SQL Server (desde el cmd)

net stop mssqlserver

net start mssqlserver

Verificamos el cambio de la ubicación de los ficheros.

SELECT 
name AS [LogicalName]
,physical_name AS [Location]
,state_desc AS [Status]
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb');

Y por ultimo eliminamos los archivos antiguos tempdb.mdf y templog.ldf.

Solucionar erorr mysql8: Your password does not satisfy the current policy requirements.

Es posible que intentando poner una contraseña en mysql8 os haya saltado el error “Your password does not satisfy the current policy requirements.” o directamente en castellano “Su contraseña no cumple con los requisitos de la política actual.”, que claramente indica que la contraseña no cumple las politicas de seguridad.

No siendo lo recomendable se puede dar el caso que queramos poner una contraseña insegura y os lo voy a explicar a hacer a continuación.

Nos conectamos en la consola de mysql8 y deshabilitamos la politica de seguridad.

SET GLOBAL validate_password.policy = 0;

Y despues de lanzar esta instrucción ya podemos poner nuestra contraseña insegura.

ALTER USER 'root'@'localhost' IDENTIFIED BY 'T3mporal';

Si queremos volver a dejar la configuración como estaba bastara con habilitar la politica de seguridad.

SET GLOBAL validate_password.policy = 0;

¿Como recuperar espacio en ficheros ya eliminados?

En varias ocaciones nos hemos visto en la situación de que hemos borrado ciertos ficheros en linux y no se ha liberado el espacio y lo que es peor es que vemos valores diferentes al calcuar el espacio con df y ls

Voy a explicar como hacerlo de una manera muy sencilla.

Comprobamos que no se este usando el fichero y se puede liberar el espacio.

lsof | grep deleted
postdrop   9155                 root    4u      REG                8,2         0     114958 /var/spool/postfix/maildrop/AC9221C10E (deleted)
postdrop   9927                 root    4u      REG                8,2         0     118127 /var/spool/postfix/maildrop/E9A721CD6F (deleted)
postdrop  11171                 root    4u      REG                8,2         0     118540 /var/spool/postfix/maildrop/8F4D31CF0C (deleted)

[root@base]# ls -lh /proc/9155/fd/*
lrwx------ 1 root root 64 Jun 20  2021 /proc/9155/fd/4 -> /var/spool/postfix/maildrop/AC9221C10E (deleted)

Con los resultados obtenidos, ejecutamos el comando con el id que deseemos borrar

: > /proc/9155/fd/4

Y con estos pasos ya habremos liberado el espacio.

Guardar una cadena de varias lineas en un archivo en bash con EOF

Seguramente nos ha pasado en alguna ocasión que tenemos que copiar y pegar texto en linux y no sabemos como guardarlo en un fichero nuevo del tiron.

Para este cometido podemos utilizar EOF, que nos permite guardar todo el contenido que vayamos pegando por pantalla encosertado entre las cadenas EOF.
A continuación pongo un ejemplo de como pegando por pantalla las siguientes lineas creamos un scrips que una vez ejecutado nos indica la fecha (date) y el espacio libre en disco (df -h).
cat <<EOF > fecha-espacio.sh
#!/bin/bash
date
df -h
EOF
/bin/bash/ print.sh
Wed Nov 10 10:23:55 CET 2021
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1             2.0G 1002M  887M  54% /


Como limpiar memoria cache, inodes y dentries

Habitualmente en linux, nos encontramos que alguna aplicación denamica no funciona correctamente y es debido que no libera memoria cacheada.

Voy a explicar como liberar memoria cache, inodes y dentries y asi poder resolver este angustioso problema.

Si queremos eliminar cache ejecutaremos:

sync; echo 1 > /proc/sys/vm/drop_caches

Si queremos eliminar inodes y dentries ejecutaremos:

sync; echo 2 > /proc/sys/vm/drop_caches

Si queremos elimiar cache, inodes y dentries ejecutaremos:

sync; echo 3 > /proc/sys/vm/drop_caches

Todo esto podemos incluirlo como tarea nocturna programada en el crontab y olvidarnos de este problema:

crontab -e

0 2 * * * sync; echo 3 > /proc/sys/vm/drop_caches

Cómo ajustar el uso de la memoria virtual (swap) en centos con Swappiness

Los sistemas somo muy de instalar todo por defecto y nunca miramos para estos problemas, pero se puede dar el caso de un mal ajuste de la memoria virtual (swap) y vernos en la necesidad de tener que ajustarla.

Voy a explicar como cambiar en un s.o centos.

Lo primero de todo vemos cual es el porcentaje actual utilizado:

cat /proc/sys/vm/swappiness
30

En el ejemplo vemos que esta configurado en el 30%, pongamos el caso de que nos parezca demasiado alto y lo queremos pasar al 10%.

La haremos con el siguiente comando.

sysctl vm.swappiness=10

Que nos gusta el compartimento y quremos dejar el cambio persistente, para que se utlice tras un reinicio, etc.

Pues editamos el fihero /etc/sysctl.conf y añadimos vm.swappiness=10 .

vi /etc/sysctl.conf

vm.swappiness=10

Y asi poco a poco podemos ir ajustando la memoria swap a nuestras necesidades.

Activar rc.local en CentOS 7

En las distribuciones de linux es muy habitual arrancar servicios al inicio directamente desde el archivo rc.local.
Desde la versión CentOS 7 ya no funciona de manera predefinida y tenemos que habilitar el servicio rc-local con los siguientes pasos.

Habilitamos permisos de ejecución al fichero.

chmod +x /etc/rc.d/rc.local

Activamos el servicio.

systemctl enable rc-local

Arrancamos el servicio.

systemctl start rc-local

Con estos pasos ya se arrancaran los scripts al inicio.

Corregir error yum en centos 6: YumRepo Error: All mirror URLs are not using ftp, http[s] or file

El otro dia me propuse a instalar software con yum en mi viejo centos 6 y me di cuenta que no era posible, ya que me salia este error: YumRepo Error: All mirror URLs are not using ftp, http[s] or file

Investigando di con la noticia de que el ciclo de vida de centos 6 termino el 30 de noviembre de 2020, total que me vi con la necesidad de actualizar los repositorios de yum, para poder seguir instalando software.

Para corregir el erorr basta con seguir estos pasos:

Editamos el fichero /etc/yum.repos.d/CentOS-Base.repo y sustituimos los bloques:

vi /etc/yum.repos.d/CentOS-Base.repo

[base]
[updates]
[extras]

Por los bloques:

vi /etc/yum.repos.d/CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
# baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
baseurl=https://vault.centos.org/6.10/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

# released updates
[updates]
name=CentOS-$releasever - Updates
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
# baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
baseurl=https://vault.centos.org/6.10/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

# additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
# mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
# baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
baseurl=https://vault.centos.org/6.10/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

Realizamos un yum clean all y ya tendemos disponible el yum para instalar todo lo que necesitemos.

Editar y reinicar crontab vmware esxi

El otro dia estube cambiando el crontab en un esxi y me volvi loco porque no se ejecutaban las tareas, al final descubri que era debido a que despues de editar el crontab hay que reiniciar el servicio y no lo estaba haciendo.

Siendo tan sencillo como realizar los siguientes pasos:

Editamos el crontab:

vi /var/spool/cron/crontabs/root

Comprobamos el id del demonio / servicio crontab:

cat /var/run/crond.pid

Matamos el proceso:

/bin/kill $(cat /var/run/crond.pid)

Reiniciamos el servicio crontab (esxi 5.0 o menor)

/bin/busybox crond

Reiniciamos el servicio crontab (esxi 5.1en adelante)

/usr/lib/vmware/busybox/bin/busybox crond 

Comprobamos que el id del servicio crontab ha cambiado:

cat /var/run/crond.pid

Con estos sencillo pasos , podemos editar el crontab y actualizar el servicio asociado.