Grabar CD/DVD en Consola con Mkisofs y Cdrecord

Este pequeño tutorial fue probado en CentOS 5 pero funciona para cualquier versión de Linux, al final la consola es igual para todos.

Para quemar en consola, necesitamos contar con una quemadora de CD/DVD, Bastantes CD/DVD donde quemar, lo que queremos quemar y los siguiente programas que instalamos a continuación.

# yum -y install mkisofs cdrecord

Necesitamos crear una .ISO de lo que deseamos quemar. para esto utilizamos el comando mkisofs

# mkisofs -r -l -o imagen_que_quiero_crear.iso /home/data_que_quiero_quemar

Mas o menos nos saldrá la siguiente información

INFO: UTF-8 character encoding detected by locale settings.
Assuming UTF-8 encoded filenames on source filesystem,
use -input-charset to override.
1.98% done, estimate finish Thu Jul 3 10:28:10 2008
3.96% done, estimate finish Thu Jul 3 10:28:10 2008
5.94% done, estimate finish Thu Jul 3 10:28:10 2008
7.92% done, estimate finish Thu Jul 3 10:28:10 2008
9.89% done, estimate finish Thu Jul 3 10:28:10 2008
11.87% done, estimate finish Thu Jul 3 10:28:10 2008
13.85% done, estimate finish Thu Jul 3 10:28:10 2008
15.83% done, estimate finish Thu Jul 3 10:28:10 2008
17.80% done, estimate finish Thu Jul 3 10:28:10 2008
19.79% done, estimate finish Thu Jul 3 10:28:10 2008
21.76% done, estimate finish Thu Jul 3 10:28:10 2008
23.74% done, estimate finish Thu Jul 3 10:28:10 2008
25.72% done, estimate finish Thu Jul 3 10:28:10 2008
27.70% done, estimate finish Thu Jul 3 10:28:10 2008
29.67% done, estimate finish Thu Jul 3 10:28:10 2008
31.66% done, estimate finish Thu Jul 3 10:28:10 2008
33.63% done, estimate finish Thu Jul 3 10:28:10 2008
35.61% done, estimate finish Thu Jul 3 10:28:10 2008
37.59% done, estimate finish Thu Jul 3 10:28:10 2008
39.57% done, estimate finish Thu Jul 3 10:28:10 2008
41.54% done, estimate finish Thu Jul 3 10:28:10 2008
43.52% done, estimate finish Thu Jul 3 10:28:10 2008
45.50% done, estimate finish Thu Jul 3 10:28:10 2008
47.48% done, estimate finish Thu Jul 3 10:28:10 2008
49.46% done, estimate finish Thu Jul 3 10:28:10 2008
51.44% done, estimate finish Thu Jul 3 10:28:10 2008
53.41% done, estimate finish Thu Jul 3 10:28:10 2008
55.39% done, estimate finish Thu Jul 3 10:28:10 2008
57.37% done, estimate finish Thu Jul 3 10:28:10 2008
59.35% done, estimate finish Thu Jul 3 10:28:11 2008
61.33% done, estimate finish Thu Jul 3 10:28:11 2008
63.31% done, estimate finish Thu Jul 3 10:28:11 2008
65.28% done, estimate finish Thu Jul 3 10:28:11 2008
67.26% done, estimate finish Thu Jul 3 10:28:11 2008
69.24% done, estimate finish Thu Jul 3 10:28:11 2008
71.22% done, estimate finish Thu Jul 3 10:28:11 2008
73.20% done, estimate finish Thu Jul 3 10:28:11 2008
75.18% done, estimate finish Thu Jul 3 10:28:11 2008
77.15% done, estimate finish Thu Jul 3 10:28:11 2008
79.13% done, estimate finish Thu Jul 3 10:28:11 2008
81.11% done, estimate finish Thu Jul 3 10:28:11 2008
83.09% done, estimate finish Thu Jul 3 10:28:11 2008
85.06% done, estimate finish Thu Jul 3 10:28:11 2008
87.05% done, estimate finish Thu Jul 3 10:28:11 2008
89.02% done, estimate finish Thu Jul 3 10:28:11 2008
91.00% done, estimate finish Thu Jul 3 10:28:11 2008
92.98% done, estimate finish Thu Jul 3 10:28:11 2008
94.96% done, estimate finish Thu Jul 3 10:28:11 2008
96.93% done, estimate finish Thu Jul 3 10:28:11 2008
98.92% done, estimate finish Thu Jul 3 10:28:11 2008
Total translation table size: 0
Total rockridge attributes bytes: 264
Total directory bytes: 0
Path table size(bytes): 10
Max brk space used 0
252750 extents written (493 MB)

No indica que se ha creado una imagen de 493 MB

Antes de proceder a quemar primero necesitamos identificar el dispositivo (en este caso la quemadora) entonces escaneamos el dispositivo

# cdrecord -scanbus

Linux sg driver version: 3.5.27
Using libscg version ‘schily-0.8’.
cdrecord: Warning: using inofficial libscg transport code version (schily – Red Hat-scsi-linux-sg.c-1.83-RH ‘@(#)scsi-linux-sg.c 1.83 04/05/20 Copyright 1997 J. Schilling’).
scsibus4:
4,0,0 400) ‘HL-DT-ST’ ‘DVD-RAM GSA-H55N’ ‘1.02’ Removable CD-ROM
4,1,0 401) *
4,2,0 402) *
4,3,0 403) *
4,4,0 404) *
4,5,0 405) *
4,6,0 406) *
4,7,0 407) *

Con esto podemos notar que nuestra quemadora esta identificada en 4,0,0 400) ‘HL-DT-ST’ ‘DVD-RAM GSA-H55N’ ‘1.02’ Removable CD-ROM

Procedemos al quemamos, donde en la opción dev=xxx devemos indicar en identificador de nuestra quemadora, que en el paso anterior salio.

# cdrecord -v dev=4,0,0 speed=10 imagen_que_quiero_crear.iso

Using generic SCSI-3/mmc CD-R/CD-RW driver (mmc_cdr).
Driver flags : MMC-3 SWABAUDIO BURNFREE
Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R16 RAW/R96P RAW/R96R
Drive buf size : 1114112 = 1088 KB
Drive DMA Speed: 129024 kB/s 733x CD 93x DVD
FIFO size : 4194304 = 4096 KB
Track 01: data 493 MB
Total size: 566 MB (56:10.02) = 252752 sectors
Lout start: 567 MB (56:12/02) = 252752 sectors
Current Secsize: 2048
ATIP info from disk:
Indicated writing power: 7
Is not unrestricted
Is not erasable
ATIP start of lead in: -11597 (97:27/28)
ATIP start of lead out: 359849 (79:59/74)
Disk type: Short strategy type (Phthalocyanine or similar)
Manuf. index: 20
Manufacturer: Princo Corporation
Blocks total: 359849 Blocks current: 359849 Blocks remaining: 107097
Starting to write CD/DVD at speed 16 in real TAO mode for single session.
Last chance to quit, starting real write 0 seconds. Operation starts.
Waiting for reader process to fill input buffer … input buffer ready.
trackno=0
BURN-Free is ON.
Turning BURN-Free off
Performing OPC…
Starting new track at sector: 0
Track 01: 493 of 493 MB written (fifo 100%) [buf 93%] 16.4x.
Track 01: Total bytes read/written: 517632000/517632000 (252750 sectors).
Writing time: 224.775s
Average write speed 15.0x.
Min drive buffer fill was 90%
Fixating…
Fixating time: 18.114s
cdrecord: fifo had 8154 puts and 8154 gets.
cdrecord: fifo was 0 times empty and 8011 times full, min fill was

Esto es todo, expulsamos nuestro cd con eject y listo.

Nota: no es necesario ser root para hacer todo estos pasos.

Cómo instalar CentOS remotamente

Es posible instalar centos remotamente, siempre y cuando exista previamente en el servidor grub. No importa el linux que haya.

Supongamos el siguiente escenario:

Requisitos locales:
La laptop mía será la IP 1.2.3.4 y estará con el vncviewer instalado (paquete vnc). Ésta laptop tendrá abierto el puerto 5500 o redirigido ese puerto hacia ella (en caso de que esté detrás de un firewall). La laptop por supuesto tiene linux, CentOS.

Requisitos remotos:
Sé la IP del servidor (1.1.1.2 en el ejemplo), conozco la máscara (255.255.255.248 en caso del ejemplo), y sé de su gateway (1.1.1.1 en el ejemplo). También conozco los DNS que usa ese servidor (1.1.1.1 en el ejemplo).

Por favor, alerta! si se te daña la máquina no me intentes culpar, no es mi culpa que tu hardware se te explote, dañe, queme, destroya, vaporice o lo que sea por el amor de dios si no te funciona es tu culpa, no la mía.

Paso a paso todo:

Sistema LOCAL:

  1. instalar el paquete vnc en tu máquina local: yum install vnc
  2. ponerlo a escuchar: vncviewer –listen
  3. abrir el puerto 5500 en caso de que tengas firewall o redirigir el puerto 5500 hacia tu maquina local.

Sistema REMOTO:

  1. Entrar al servidor remoto por ssh
  2. cambiarte a /boot (cd /boot)
  3. bajar vmlinuz e initrd.img del directorio images/pxeboot (aqui por ejemplo: http://mirror.centos.org/centos-5/5/os/i386/images/pxeboot/

Si tu maquina es de 64 bits, buscar el pxeboot adecuado, si instalaras otro centos (3 o 4) buscar el pxeboot adecuado.

puedes bajarlo con: wget URLDELARCHIVO

7- verifica que en el directorio /boot esté un archivo llamado vmlinuz y otro llamado initrd.img (quizá haya otros de los kernels anteriores, eso no es de importancia para el proceso).

8- Edita tu grub.conf, la idea es que tu grub.conf arranque con el siguiente kernel:

title pxe
root (hd0,0)
kernel /vmlinuz vnc vncconnect=1.2.3.4 headless ip=1.1.1.2 netmask=255.255.255.248 gateway=1.1.1.1 dns=1.1.1.1 ksdevice=eth0 method=http://mirror.centos.org/centos/5/os/i386/ lang=en_US keymap=us
initrd /initrd.img

Como curiosidad: sí, sólo uso teclado en inglés, porque el teclado en español tiene el “/” muy difícil de alcanzar.

vncconnect es la IP de tu máquina local, hacia donde se abrirá la sesión vnc

ip, netmask, gateway y dns son las IPs de tu máquina remota, mascara, gateway y dns.

ksdevice= para indicarle que saldrá por este dispositivo (solo util si tienes más de una eth).
method= de dónde bajará las cosas (de centos directamente, centos 5 en este caso).

9-Santiguarse  y reiniciar la máquina.

Este ultimo paso es muy importante.. es importante que lo tengas claro. TIENES QUE PROBAR LOCALMENTE.

Lo que yo hago siempre, SIEMPRE, es arrancar con pxe alguna máquina de aqui de mi casa, y hacer que abra una sesión de vnc contra mi laptop.. si funciona, entonces ya sé que tengo correctamnete la línea del GRUB y que puedo copiarla al servidor remoto y solamente cambiar las claves.

Lo típico es que te confundas en la IP o algún dato del servidor remoto.

Por favor, si algo te pasa coméntalo aqui para que los otros aprendan.. por mi parte también trataré de aprender con lo que te pase.

Controlar el ancho de banda en Apache con mod_cband en centos 5.2

Aqui os escribo  este tutorial de mod_cband que es un modulo de apache nos permite controlar el ancho de banda usado por los usuarios conectados al servidor, ya sea en forma individual o general.

Instalación:

Descargamos el modulo.
Pagina del proyecto: http://sourceforge.net/projects/cband/

# wget http://downloads.sourceforge.net/cband/mod-cband-0.9.6.1.tgz?modtime=1138205796&big_mirror=0

Descomprimimos las fuentes

# tar -xvf mod-cband-0.9.6.1.tgz

Instalando dependencias necesarias

# yum install http-devel

Compilando las fuentes

# ./configure
# make
# make install

Agregamos el modulo al apache en el archivo httpd.conf, por defecto se agrega automáticamente la linea al compilar, si no fuera el caso, agregar la siguiente linea

# vim /etc/httpd/conf/httpd.conf

LoadModule cband_module modules/mod_cband.so

También es necesario agregar

CBandScoreFlushPeriod 1
CBandRandomPulse On

Reiniciamos el apache

# /etc/init.d/httpd restart

Ahora a configurar los dominios virtuales del apache:

En mi caso lo tengo en /etc/httpd/conf.d/virtual.conf
Se puede dar el caso de tenerlo en el mimos httpd.conf

Configuraciones y Limitaciones por Sitio

CBandSpeed 1024kbps 10 30
CBandRemoteSpeed 20kb/s 3 3

El parámetro CBandSpeed es una configuración Global para dicho Sitio, definimos que lo usuarios no podran sobrepasar los 1024Kbps, 10 respuestas por segundo y 30 conexiones abiertas.

El parámetro CbandRemoteSpeed es una configuración para cada usuario conectado en forma separada, definimos que el usuario en forma individual podra descargar a lo máximo 20Kb/s con 3 peticiones por segundo y 3 conexiones permitida.

Asi quedara nuestro virtual host

# vim /etc/httpd/conf.d/virtual.conf

“<“VirtualHost *:80″>”
DocumentRoot /var/www/html/miweb.com
ServerName miweb.com
ServerAlias www.miweb.com
ErrorLog logs/miweb.com_error.log
CustomLog logs/miweb.com_access.log combined
CBandSpeed 1024kbps 10 30
CBandRemoteSpeed 50kb/s 3 3
LogLevel warn
“<“/VirtualHost”>”

Nota: por alguna razon al poner mayor o menor no sale, asi que agrege “>” y “<“. para para que funcione no deben ir las comillas doble. Mucho ojo con eso.

Reiniciamos el apache

# /etc/init.d/httpd restart

y probamos nuestra web…. recomendaciones, podemos cambiar las variables, reiniciar el apache y probar.

Otras opciones

Podemos limitar el trafico mensual con:

CBandLimit 100M

Podemos ver en Linea el trafico y conexiones, etc (estatus de cband) con:

Creamos la carpeta

# mkdir /var/www/scoreboard

Le damos permisos para el apache

# chown apache:apache /var/www/scoreboard

Y agregamos al virtual host

CBandScoreboard /var/www/scoreboard
CBandPeriod 4W

“<“Location /cband-status”>”
SetHandler cband-status
“<“/Location”>”
“<“Location /cband-status-me”>”
SetHandler cband-status-me
“<“/Location”>”

Todo lo anterior se agrega al dominio virtual, quedando asi:

“<“VirtualHost *:80″>”
DocumentRoot /var/www/html/miweb.com
ServerName miweb.com
ServerAlias www.miweb.com
ErrorLog logs/miweb.com_error.log
CustomLog logs/miweb.com_access.log combined
CBandLimit 1000M
CBandSpeed 1024kbps 10 30
CBandRemoteSpeed 50kb/s 3 3
LogLevel warn
CBandScoreboard /var/www/scoreboard
CBandPeriod 4W
“<“Location /cband-status”>”
SetHandler cband-status
“<“/Location”>”
“<“Location /cband-status-me”>”
SetHandler cband-status-me
“<“/Location”>”
“<“/VirtualHost”>”

Nota: por alguna razon al poner mayor o menor no sale, asi que agrege “>” y “<“. para para que funcione no deben ir las comillas doble. Mucho ojo con eso.

Reiniciamos el apache

# /etc/init.d/httpd restart

De lo anterior limitamos el trafico mensual a 1GB
para ver las estadísticas:

http://miweb.com/cband-status o http://miweb.com/cband-status-me

A probar…
Suerte

Instalar TRAC en CentOS 5

http://www.edgewall.org/gfx/trac_logo.png

Guía breve para instalación básica de TRAC. ¿Qué es TRAC? Yo lo definiría como un “documentador” :P pero la definición más técnica sería una wiki con sistema de seguimiento de errores para proyectos de desarrollo de software. Incorpora una interfaz para Subversion, una línea de tiempo que muestra los eventos actuales y pasados del proyecto en orden, etc. Más info en Trac.

Esta pequeña guía ha funcionado para CentOS 5.
Entorno a instalar

  • Apache 2 utilizando mod_dav_svn
  • Trac mediante Apache 2 con mod_python
  • Repositorios de SVN en /srv/svn, accesible por http://server/svn/proyecto
  • Proyectos de TRAC en /srv/trac, accesible por http://server/trac/proyecto

Requisitos

  • Python >= 2.3
  • Para sistemas RPM: python-devel 7 python-xml
  • setuptools
  • Base de datos: SQLite, PostgreSQL o MySQL (escogemos SQLite por recomendación de Trac Wiki)
  • ClearSilver: opcional para algunos plugins que lo requieren Si queremos control de versiones necesitamos Subversion (versions recommended: 1.2.4, 1.3.2 or 1.4.2)

1. Instalamos subversion y el mod de SVN para Apache

# yum install subversion mod_dav_svn

Si las siguientes dos líneas no están presentes, añadelas (revisar subversion.conf en conf.d, porque puede que estén ahí)

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

2. Instalamos el mod para python, algunos paquetes necesarios a posteriori y ClearSilver del repositorio de Dag

# yum install mod_python
# yum install neon neon-devel python-devel swig

# wget Dag.Wieers.com/ClearSilver
# rpm -i clearsilver-0.10.4-1.el5.rf.i386.rpm
# wget Python ClearSilver
# rpm -i python-clearsilver-0.10.4-1.el5.rf.i386.rpm

3.  Algo que no aparece en ninguna de las guías es la instalación de SetupTools. Nada más alejado de la realidad que yo quiera o pretenda entender que significa y que hace SetupTools. Sólo sé que es necesario para instalar luego el Trac. No sé si soy el único, pero cada vez que entro en esa web me dan ganas de suicidarme. En fin, cosas que tiene uno. Para instalar SetupTools hacemos:

# wget http://peak.telecommunity.com/dist/ez_setup.py
# python ez_setup.py

4. Instalar Trac

# wget http://ftp.edgewall.com/pub/trac/Trac-0.11.2.1.tar.gz
# tar xfz Trac-0.11.2.1.tar.gz
# cd Trac-0.11.2.1

# python ./setup.py install

Ahora nos pregunta una serie de cosas: nombre de nuestro proyecto, tipo de base de datos(por defecto y recomendación, lo dejamos en default que es SQLite), path hacia los repositorios, path al proyecto, etc.

Creamos nuestro repositorio de SVN

# svnadmin create –fs-type fsfs /srv/svn/proyecto

Inicializamos un proyecto de TRAC

# mkdir /srv/trac/
# trac-admin /srv/trac/proyecto initenv

El path para el repositorio es /srv/svn/proyecto
Damos permisos a Apache sobre los directorios que requerimos.

# chown -R apache.apache /srv/svn/
# chown -R apache.apache /srv/trac/

Le decimos a Apache donde está el repositorio de SVN, creando configuración adicional para Apache

# vim /etc/httpd/conf.d/subversion.conf

<Location /svn/proyecto>
DAV svn
SVNPath /srv/svn/
AuthType Basic
AuthName “Repositorio de SVN”
AuthzSVNAccessFile /srv/svn/svn-acl-conf
AuthUserFile /srv/svn/.htpasswd
Require valid-user
</Location>

Creamos un fichero .htpasswd, donde añadimos los usuarios y su password con acceso al repositorio

# touch /srv/svn/proyecto.htpasswd
# htpasswd -m /srv/svn/proyecto.htpasswd

Creamos una Lista de Control de Acceso (ACL) para el repositorio

# vim /srv/svn/svn-acl-conf

Y añadimos las siguientes directivas

[proyecto:/]
= rw

Le decimos a Apache donde está el TRAC, añadiendo otro archivo de configuración

# vim /etc/httpd/conf.d/trac.conf

<Location /trac/proyecto>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /srv/trac/proyecto
PythonOption TracUriRoot /trac/proyecto
<Location>

<Location /trac/proyecto/login>
AuthType Basic
AuthName “trac”
AuthUserFile /srv/trac/proyecto.htpasswd
Require valid-user
<Location>

Añadimos un usuario de TRAC

# touch /srv/trac/proyecto.htpasswd
# htpasswd -m /srv/trac/proyecto.htpasswd usuario

Le damos permisos de admin

# trac-admin /srv/trac/ permission add TRAC_ADMIN

Reiniciamos Apache

# service httpd restart

NOTA1: el WebAdmin Plugin no hace falta en la versión 0.11, ya viene por defecto. Sólo hay que dar permisos de TRAC_ADMIN por consola a un usuario y la pestaña de “Admin” aparecerá.

Links

Instalar XCache en CentOS 5

Breves instrucciones para compilar y instalar Xcache en Centos 5. No tiene mayor dificultad.

# wget http://xcache.lighttpd.net/pub/Releases/1.2.2/xcache-1.2.2.tar.gz
# tar -zxf xcache-1.2.2.tar.gz
# cd xcache
# phpize
# ./configure –enable-xcache
# make
# su
# make install

Instala las extesiones compartidas de php : /usr/lib/php/modules

# cat xcache.ini >> /etc/php.ini

Editamos php.ini para instalar Xcache como extension

# joe /etc/php.ini

zend_extension = /usr/lib/php/modules/xcache.so

La configuración del xcache está explicada en comentarios en el propio php.ini, pero hay cosas relevantes como el xcache.count, relativo al número de procesadores de nuestro sistema. Averiguamos el número de procesadores y luego editamos el php.ini

# cat /proc/cpuinfo |grep -c processor
xcache.count = 4

Las demás variables se pueden configurar fácilmente leyendo la documentación. Ahora podemos crear un archivo php con la función phpinfo ( ) y moverlo a nuestro directorio root para comprobar que Xcache funciona correctamente. No olvidemos reiniciar Apache!

# /etc/init.d/httpd restart

Instalar el Admin

Para instalar el admin primero creamos un fichero php como el siguiente para obtener el password encriptado en md5

echo md5("password");

Copiamos el resultado en php.ini, en la variable xcache.admin.pass

xcache.admin.pass = "password_en_md5"

Ahora copiamos el directorio web de Xcache a nuestro document root de apache


# cp -R admin/* /var/www/midominio.com/admin/.

Reiniciamos Apache. Accedemos al admin, introduciendo user y password.

Sobre el Error Segmentation Fault

Algo que me sucedió en la instalación de Xcache en Centos 5. Al comprobar los logs de Apache comprobé que había numerosos errores de Segmentation Fault.

# php -v
Segmentation fault

# cat /var/log/httpd/error_log
[Thu Oct 02 13:43:39 2008] [notice] child pid 15978 exit signal Segmentation fault (11)
[Thu Oct 02 13:43:42 2008] [notice] child pid 15979 exit signal Segmentation fault (11)
[Thu Oct 02 13:43:50 2008] [notice] child pid 15980 exit signal Segmentation fault (11)
[Thu Oct 02 13:44:08 2008] [notice] child pid 15981 exit signal Segmentation fault (11)
[Thu Oct 02 13:44:12 2008] [notice] child pid 15982 exit signal Segmentation fault (11)
[Thu Oct 02 13:44:33 2008] [notice] child pid 15983 exit signal Segmentation fault (11)

Para evitarlo hacemos lo siguiente


# rm /dev/zero
# mknod /dev/zero char 1 5
# /etc/init.d/httpd restart

Otro problema relativo. Aunque creemos el fichero /dev/zero, por una limitación (no se si de php.ini o el propio kernel) puede que el valor de cache que asignamos a xcache.size es superior a lo que puede guardar y eso provoca el siguiente error:

xcache /dev/zero: No space left on device

Para arreglar, hemos de reducir el valor asignado a xcache.size, por ejemplo empezando por 8M y reiniciando apache. No deberíamos ver más ese error ni Segmentation Faults en el apache. Y si los hay, deberían ser por otro motivo que no fuera Xcache.

Desinstalar SiteBuilder en Plesk con CentOS

Hace unos días me encontre problemas con el Sitebuilder que al actualizar el panel control plesk de 8.4 a 8.6.

Razón de más para eliminarlo para evitar que pueda darnos algún problema o que este siempre corriendo en nuestro servidor por pocos recursos que consuma.

Para desinstalarlo solo tenemos que utilizar YUM:

  1. Ejecutar: yum remove sitebuilder
  2. Ejecutar: yum remove php5sb
  3. Ya tenemos el sitebuilder desinstalado.

Para más información consultar “Uninstall SiteBuilder