Mostrando entradas con la etiqueta LINUX. Mostrar todas las entradas
Mostrando entradas con la etiqueta LINUX. Mostrar todas las entradas

miércoles, 30 de marzo de 2022

KMS Server con VLMCSD

 

Sistema OperativoVersión VLMCSD
Debian 11svn1113
Instalar paquetes necesarios mínimos
apt install wget openssh-server dnsutils
 
Descargar el último paquete (en este caso la versión svn1113

wget https://github.com/Wind4/vlmcsd/releases/download/svn1113/binaries.tar.gz

Configurar iptables
iptables -I INPUT -p tcp -m tcp --dport 1688 -j ACCEPT
systemctl restart nftables

Descomprimir
tar -zxvf binaries.tar.gz

Ir al directorio del ejecutables
cd binaries/Linux/intel/static/
 
Probar
./vlmcsd-x64-musl-static
 
Del lado de un cliente windows y para certificar, descomprimir la carpeta \binaries\intel

PS D:\Usuarios\eleyzam\Descargas\binaries\intel> .\vlmcs-Windows-x64.exe -v -l 1 192.168.0.105


en el servidor después de comprobar el  funcionamiento.

ps -ef | grep vlmcsd
kill -9 4351
nota: colocar el id del proceso que esté corriendo.

Crear el directorio para empezar a crear el servicio

mkdir /usr/local/vlmcsd/

Directorios que deben estar en la ruta
/usr/local/vlmcsd
├── glibc
│ └── ...
├── musl
│ └── ...
├── static
│ ├── vlmcsd-x64-musl-static
│ └── ...
├── uclibc
│ └── ...
└── vlmcsd.service

Crear el directorio en donde se configurará el servicio
mkdir /usr/local/vlmcsd/
 
Copiar los archivos necesarios
cd /usr/local/vlmcsd/
cp -r /root/binaries/Linux/intel/glibc/ .
cp -r /root/binaries/Linux/intel/musl/ .
cp -r /root/binaries/Linux/intel/static/ .
cp -r /root/binaries/Linux/intel/uclibc/ .
 
Crear el archivo de servicio
nano /usr/local/vlmcsd/vlmcsd.service

[Unit]
Description=Microsoft KMS Server
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/local/vlmcsd/static/vlmcsd-x64-musl-static
RemainAfterExit=yes
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target

Cambiar permisos
chmod +x /usr/local/vlmcsd/static/vlmcsd-x64-musl-static

Enlazar con SystemD
ln -s /usr/local/vlmcsd/vlmcsd.service /lib/systemd/system/
systemctl daemon-reload
systemctl start vlmcsd
systemctl status vlmcsd


ps -ef | grep vlmcsd

 
Fuentes:

Fuente del programa


jueves, 15 de junio de 2017

Limpiar Inodos linux al 100%

Buenas, acabo de tener un problema con un servidor en el cual el espacio en disco decía que estaba casi vacío, pero los inodos me indicaban que la partición estaba llena, impidiendo el arranque de servicios, que en mi caso particular era postgresql. Revisando me di cuanta que los problemas con inodos, generalmente son debido a problemas con archivos 0 bytes, lo cuales no tienen peso pero si ocupan espacio de otra forma.

Básicamente un inodo o i-nodo se utiliza para cada archivo en el sistema de archivos. Así quedarse sin inodos generalmente significa que se tiene una gran cantidad de archivos pequeños por ahí. Teniendo esto claro que la pregunta a hacerse es ¿que directorio tiene un gran número de archivos?

En este caso, el sistema de archivos donde tenía el problema era /var/ y para solucionar este problema usé los siguientes comandos:

Primero para evidenciar que los inodos del sistema se archivos se han llenado en la partición ejecutamos:

df -i

Lo cual nos da la siguiente información:


Filesystem     Inodes  IUsed  IFree IUse% Mounted on
rootfs         655360  60902 594458   10% /
udev            59464    250  59214    1% /dev
tmpfs           63478    187  63291    1% /run
/dev/xvda      655360  60902 594458   10% /
tmpfs           63478      3  63475    1% /run/lock
tmpfs           63478      2  63476    1% /run/shm
/dev/xvdc      655360 251084 404276   100% /var


Viendo esto, y sin saber donde diantres se están siendo usados los inodos usamos el siguiente comando para buscar  volcar una lista de todos los directorios del sistema de archivos con el prefijo del número de archivos (y subdirectorios) en ese directorio. Así, el directorio con el mayor número de archivos aparecerá al final:


find /var -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n

la salida es la siguiente:


318 /var/lib/postgresql/9.1/main/base/27925
400 /var/chroot/usr/bin
1830 /var/lib/dpkg/info
202205 /var/chroot/var/lib/php5


cuando hagan un ls (sin comandos adicionales so pena de que tarden 10 veces mas para mostrar la información) se darán cuenta de que muchos archivos están con 0 bytes, convirtiéndose de esta manera en archivos parásitos.

Teniendo esto en cuenta buscamos de borrarlos de la siguiente forma


find /var/chroot/var/lib/php5/ -type f -size 0 -print0 | xargs -I{} -0 rm {}

va a tardar, dependiendo de cuantos archivos dispongan, que para llenar los inodos deben ser bastantes.Cuando terminen.

Vuelvan a usar el comando df -i y verán la mágia.


Filesystem     Inodes  IUsed  IFree IUse% Mounted on
rootfs         655360  60902 594458   10% /
udev            59464    250  59214    1% /dev
tmpfs           63478    187  63291    1% /run
/dev/xvda      655360  60902 594458   10% /
tmpfs           63478      3  63475    1% /run/lock
tmpfs           63478      2  63476    1% /run/shm
/dev/xvdc      655360 144847 510513   23% /var

Ahora pude arrancar el servicio y pude respirar tranquilo.

Con este método fácil y practico espero puedan lograr solucionar cualquier problemas de este tipo.

Saludos y gracias por visitar el blog.

Actualización 07/03/2019

tenia un problema con un servidor xenserver y este problema me ayudó, sin embargo al borrar los archivos en 0 todavía quedaban un montón con más de 0 bites y ocupaban el 30% de los inodos. Para limpiarlo ejecuté el siguiente comando:

find /var/log -type f -mtime +2 -print0 | xargs -I{} -0 rm {}

Espero les sirva

jueves, 19 de febrero de 2015

Script para crear Repositorios de DEBIAN

Como se podrá observar y se habrá visto en la información anterior de instalar debmirror en CENTOS, no existe soporte nativo de ese paquete, y a menos que se tenga un repositorio por rsync no se podrá descargar repositorios Debian para ser hosteados en CENTOS sin la necesidad de este. Por ello al usar esta herramienta hay que tener cuidado de poner las carpetas a sincronizar en diferentes subdirectorios, para evitar que por algún motivo el debmirror borre las carpetas fuera del ámbito del script en el mismo nivel del árbol.

También se recomienda usar el método http. pues el método debmirror y rsync ha arrojado errores con los archivos sources. Los scripts para sincronizar son los siguientes.

Debian MAIN 6,7,8
/usr/local/bin/debmirror --debug \
--progress \
--verbose \
--diff=none \
--host=mirrors.kernel.org \
--root=debian \
--method=http \
--dist=squeeze,wheezy,jessie,wheezy-updates,squeeze-updates,wheezy-backports \
--arch=i386,amd64 \
--nosource \
--section=main,contrib,non-free \
--i18n \
--getcontents \
--ignore-release-gpg \
--ignore-missing-release \
/repo/debian/main > /repo/rsync.log
echo "Culminada la Sincronizacion del repositorio debian arquitetura amd64." 
exit


Debian Security
/usr/local/bin/debmirror --debug \
--progress \
--verbose \
--diff=none \
--host=security.debian.org \
--root=:debian-security \
--method=http \
--dist=squeeze/updates,wheezy/updates,jessie/updates \
--arch=i386,amd64 \
--nosource \
--section=main,contrib,non-free \
--getcontents \
--ignore-release-gpg \
--ignore-missing-release \
--rsync-options=-aIL \
/repo/debian/security > /repo/rsync.log
echo "Culminada la Sincronizacion del repositorio debian security arquitetura amd64."
exit

Sepan disculpar la simpleza, pero espero igual les sea de utilidad.

lunes, 26 de enero de 2015

INSTALAR DEBMIRROR EN CENTOS

La construcción de un nuevo repositorio no es tarea fácil. Esta no es una réplica pública, y en lo personal no estoy interesado ​​en la duplicación de todas las versiones, sino sólo un puñado. Básicamente necesito una replica de:
CentOS 6 y 7 
EPEL 6 y 7 
Debian 6, 7 y 8
Canaima 4 y 4.1

En Cualquier caso, la construcción de un espejo de Debian y Canaima (o cualquier distro debían compatible) que no sea sólo un rsync de los repositorios de deb, en un huésped no DEBIAN no es trivial, pues al parecer, al igual que el uso inverso de algo que no sea rsync para duplicar repos yum en una distribución DEBIAN es un tema que al principio parece complicado. Sin embargo, he aquí la solución para no rompernos la cabeza en como unificar servidores:
Editar Sección

debmirror


DebMirror es en realidad un script en Perl. Para poder ejecutarlo instalamos los siguientes paquetes, en e mi caso fue un Centos 7, aunque en un 6 también es posible, pero ya esta metodología esta diseñada específicamente para centos 7.
yum install perl-libwww cpan bzip2 perl-Compress-Zlib perl-Digest-SHA1 perl-Net* rsync perl-LockFile-Simple wget perl-LockFile-Simple perl-IO-Compress perl-Compress-Raw-Zlib perl-Digest-MD5 perl-Digest-SHA perl-Net-INET6Glue perl-LWP-Protocol-https -y
wget http://archive.ubuntu.com/ubuntu/pool/universe/d/debmirror/debmirror_2.10ubuntu1.tar.gz
tar -xzvf debmirror_2.10ubuntu1.tar.gz


cd debmirror-2.10ubuntu1
cp debmirror /usr/local/bin/
cp debmirror.1 /usr/share/man/man1/
yum install cpan -y
cpan install Net::INET6Glue (no conseguirás esto en yum).
En una próxima entrega indicaré los scripts Necesarios para debian y canaima. La Primera sincronización se debe estár ejecutando en el momento que ejecuten los scripts. El siguiente paso es ver lo rápido que pasa una resincronización , y programarlo para que se ejecute diariamente. 

Actualización 2016: Se me ha dañado el repositorio, y al volverlo a instalar me he dado cuenta de que faltaban paquetes en el tutorial original, los mas importantes cpan y bzip2, pues sin ellos los archivos debian no funcionan y dan error.

Con estos comandos podrán usar debmirror

Nota Adicional:

Debido a la nueva arquitectura de metadata en ubuntu con carpetas DEP11, las versiones anteriores de debmirror y apt-mirror no descargan estos datos, por lo cual distribuciones como ubuntu 16 lts y derivadas no aceptan los repositorios locales.

para corregir este fallo se debe descargar el siguiente archivo:

wget http://archive.ubuntu.com/ubuntu/pool/universe/d/debmirror/debmirror_2.25ubuntu2.tar.xz

Descomprimir

tar Jxvf debmirror_2.25ubuntu2.tar.xz


Y pueden configurar en el script la ruta donde descargaron el archivo para que comprueben el buen funcionamiento de debmirror en mi caso fue en :

/root/debmirror-2.25ubuntu2

al hacerlo nos dará la siguiente salida:


/root/debmirror-2.25ubuntu2/debmirror: Created directory: dists/trusty/main/dep11/
/root/debmirror-2.25ubuntu2/debmirror: Created directory: .temp/dists/trusty/main/dep11/
/root/debmirror-2.25ubuntu2/debmirror: Created directory: dists/trusty/restricted/dep11/
/root/debmirror-2.25ubuntu2/debmirror: Created directory: .temp/dists/trusty/restricted/dep11/
/root/debmirror-2.25ubuntu2/debmirror: Created directory: dists/trusty/multiverse/dep11/
/root/debmirror-2.25ubuntu2/debmirror: Created directory: .temp/dists/trusty/multiverse/dep11/
/root/debmirror-2.25ubuntu2/debmirror: Created directory: dists/trusty/universe/dep11/
/root/debmirror-2.25ubuntu2/debmirror: Created directory: .temp/dists/trusty/universe/dep11/

¿QUÉ ES UN REPOSITORIO?

Un repositorio, depósito o archivo es un sitio centralizado donde se almacena y mantiene información digital, habitualmente bases de datos o archivos informáticos, pero para que nos entendamos, un repositorio es un lugar en Internet donde se almacena información, en el caso de los repositorios Linux esta información son programas.



Cada distribución tiene unos repositorios en los que están almacenados los programas diseñados para esta distribución, por lo que si necesitamos instalar un programa no tenemos que acceder al caótico Internet y buscarlo, lo podemos hacer directamente desde estos repositorios. Estos repositorios se mantienen por un equipo de la misma distribución, por lo que normalmente no vamos a tener ningún problema a la hora de instalar los programas. Ademas si algún software que tenemos instalado mediante este método es actualizado en los repositorios seremos avisados de la actualización disponible.
Para cada distribución tenemos un repositorio oficial en el que tenemos los programas mencionados, pero este no es el único repositorio al que podemos acceder, ya que cada sistema tiene una lista de repositorios disponibles que podemos modificar añadiendo o quitando mas tipos de repositorios ( multimedia, seguridad, para desarrolladores, etc.).
La lista de repositorios 
Los sistemas Linux tienen un archivo en el que se almacena la lista de repositorios a los que podemos acceder mediante nuestro gestor de paquetes para instalar el software. Este fichero se situá en la ubicación /etc/nombredelgestor/ donde nombre del gestor normalmente suele ser el nombre del gestor de paquetes de nuestro sistema. Por ejemplo en Ubuntu estaría en /etc/apt/sources.list, en Archlinux se encuentra en /etc/pacman.d/mirrorlist y en Fedora en /etc/yum.repos.d/fedora.repo.

Ejemplo del contenido de uno de estos archivos ( Debian ):
deb http://http.debian.net/debian wheezy main 
deb-src http://http.debian.net/debian wheezy main

deb http://http.debian.net/debian wheezy-updates main 
deb-src http://http.debian.net/debian wheezy-updates main

deb http://security.debian.org/ wheezy/updates main 
deb-src http://security.debian.org/ wheezy/updates main


Podemos añadir o quitar repositorios manualmente en este archivo pero también se puede hacer mediante interfaz gráfica.
Editar Sección

¿ Muy bien, y como los utilizo ?



Si nos queremos comunicar con los repositorios lo vamos a tener que hacer mediante un gestor de paquetes, un gestor de paquetes a rasgos generales es una herramienta que nos ayuda con la instalación, actualización, configuración y eliminación de paquetes en nuestro sistema. Las diferentes familias de distribuciones utilizan diferentes gestores de paquetes y dependiendo del gestor que utilice nuestra distribución nos vamos a conectar de diferente manera ( muy similar ), tanto en linea de comandos como en la interfaz gráfica.