miércoles, diciembre 04, 2013
Transmission: Configurar Daemon en fedora 19
Este tutorial está basado en el manual que publicó Daniel Gibbs para fedora 17 :
Comenzamos instalando el demonio de transmission:
# yum install transmission-daemon
Y los clientes remotos:
# yum install transmission-remote-cli
# yum install transmission-remote-gtk
También nos ayudará instalar el cliente GTK normal para crear un fichero de configuración. Los ficheros de configuración son comunes para todas las versiones del software (gtk, qt, cli, daemon):
# yum install transmission-gtk
La configuración puede realizarse a mano pero es más cómodo empezar con una configración pre creada desde el GUI especificando los puertos que queremos y demás parámetros una vez creada la podemos copiar al directorio por defecto donde Fedora pone la configuración del demonio:
# rpm -ql transmission-daemon
...
/var/lib/transmission
Si lo configuramos previamente con el cliente GTK tendremos una config válida en el $HOME/user que habremos modificado al gusto:
# ll /home/user/.config/transmission/
drwxrwxr-x. blocklists
drwxrwxr-x. resume
-rw-------. settings.json
-rw-------. stats.json
drwxrwxr-x. torrents
Antes arrancamos el demonio para que genere una configuración automática:
# systemctl start transmission-daemon.service
# systemctl stop transmission-daemon.service
Copiamos la config al directorio del Daemon:
# cp /home/user/.config/transmission/settings.json /var/lib/transmission/.config/transmission
# chown transmission:transmission /var/lib/transmission/.config/transmission/settings.json
Y la editamos al gusto:
- Añadimos la blocklist recomendada por Daniel (info) no tengo mucha info sobre el tema así que dejo la recomendada:
"blocklist-url": "http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz",
- Modifico los directorios de descargas:
"download-dir": "/misc/btorrent/download",
"incomplete-dir": "/misc/btorrent/download",
"recent-download-dir-1": "/misc/btorrent/download",
"recent-download-dir-1": "/misc/btorrent/download",
- Configuro el puerto de p2p:
"peer-port": 12345,
- Configuro opciones RPC para habilitar el cliente Web embebido:
"rpc-authentication-required": true,
"rpc-bind-address": "0.0.0.0",
"rpc-enabled": true,
"rpc-password": "password",
"rpc-port": 9091,
"rpc-url": "/transmission/",
"rpc-username": "user",
"rpc-whitelist": "127.0.0.1",
"rpc-whitelist-enabled": true,
Arrancamos:
# systemctl start transmission-daemon.service
Verificamos:
# ps -ef | grep transmis
transmi+ 3781 1 0 23:43 ? 00:00:00 /usr/bin/transmission-daemon -f --log-error
Vemos que no arrancaron correctamente los puertos P2P:
# lsof -a -i -n -P -p 3781
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
transmiss 3974 transmission 9u IPv4 1159896 0t0 TCP *:9091 (LISTEN)
transmiss 3974 transmission 10u IPv4 1159897 0t0 TCP *:12345 (LISTEN)
transmiss 3974 transmission 11u IPv6 1159899 0t0 TCP *:12345 (LISTEN)
transmiss 3974 transmission 12u IPv4 1159900 0t0 UDP *:12345
Probamos la interfaz web:
http://localhost:9091/
Ojo, al arrancar verifica que la password (rpc-password) está en claro y la cambia por un hash, para modificar la contraseña se pone la contraseña que deseemos y al arrancar la volverá a encriptar.
-
martes, diciembre 03, 2013
Linux jukebox 6th round: Montando todo en USB
Usaremos el USB del 1st round, de tal manera que podamos arrancar con dsl o con slitaz en función de la necesidad usaremos YUMI añadiendo la ISO generada, slitaz es una de las distribuciones reconocidas por el gestor de arranque por lo que la añade sin problemas.
Verificamos que arranca correctamente pero no coje la configuración de lenguaje, montamos el USB y modificamos a mano el fichero Z:\multiboot\menu\slitaz.cfg :
# Simple Menu Created by Lance http://www.pendrivelinux.com for YUMI - (Your USB Multiboot Installer)
menu title Slitaz Boot Menu
menu background yumi.png
MENU TABMSG http://www.pendrivelinux.com
MENU WIDTH 72
MENU MARGIN 10
MENU VSHIFT 3
MENU HSHIFT 6
MENU ROWS 15
MENU TABMSGROW 20
MENU TIMEOUTROW 22
menu color title 1;36;44 #66A0FF #00000000 none
menu color hotsel 30;47 #C00000 #DDDDDDDD
menu color sel 30;47 #000000 #FFFFFFFF
menu color border 30;44 #D00000 #00000000 std
menu color scrollbar 30;44 #DDDDDDDD #00000000 none
default live
label live
menu label ^Run Slitaz from this USB
kernel /multiboot/slitaz/boot/bzImage
append initrd=/multiboot/slitaz/boot/rootfs.gz rw root=/dev/null vga=normal autologin lang=en kmap=es
MENU SEPARATOR
label <-- Back to Main Menu
kernel vesamenu.c32
append /multiboot/syslinux.cfg
Aún nos quedan algunos pasos:
Sistema:
- Datos persistentes- Samba
- UPnP
Jukebox:
- Interfaz web más productiva.
- Interfaz para dispositivos moviles
- Interfaz gráfica ¿?
- Conexión a bbdd (freedb, musicbrainz, etc)
Ampliaciones:
- Convertir jukebox en mediacenter
- Convertir mediacenter en consola juegos (emuladores)
Verificamos que arranca correctamente pero no coje la configuración de lenguaje, montamos el USB y modificamos a mano el fichero Z:\multiboot\menu\slitaz.cfg :
# Simple Menu Created by Lance http://www.pendrivelinux.com for YUMI - (Your USB Multiboot Installer)
menu title Slitaz Boot Menu
menu background yumi.png
MENU TABMSG http://www.pendrivelinux.com
MENU WIDTH 72
MENU MARGIN 10
MENU VSHIFT 3
MENU HSHIFT 6
MENU ROWS 15
MENU TABMSGROW 20
MENU TIMEOUTROW 22
menu color title 1;36;44 #66A0FF #00000000 none
menu color hotsel 30;47 #C00000 #DDDDDDDD
menu color sel 30;47 #000000 #FFFFFFFF
menu color border 30;44 #D00000 #00000000 std
menu color scrollbar 30;44 #DDDDDDDD #00000000 none
default live
label live
menu label ^Run Slitaz from this USB
kernel /multiboot/slitaz/boot/bzImage
append initrd=/multiboot/slitaz/boot/rootfs.gz rw root=/dev/null vga=normal autologin lang=en kmap=es
MENU SEPARATOR
label <-- Back to Main Menu
kernel vesamenu.c32
append /multiboot/syslinux.cfg
Aún nos quedan algunos pasos:
Sistema:
- Datos persistentes- Samba
- UPnP
Jukebox:
- Interfaz web más productiva.
- Interfaz para dispositivos moviles
- Interfaz gráfica ¿?
- Conexión a bbdd (freedb, musicbrainz, etc)
Ampliaciones:
- Convertir jukebox en mediacenter
- Convertir mediacenter en consola juegos (emuladores)
Linux jukebox 5th round: Hacking slitaz
Una vez generada la ISO y viendo que cumple las funcionalidades básicas empezamos a realizar modificaciones en la misma para personalizarla.
Primero borramos la iso generada:
# cd distro
# rm slitaz-base.iso
Realizamos las modificaciones:
1. Configuración idioma y teclado, arrancará con la configuració por defecto en lugar de preguntar:
# cd jukebox/distro/rootcd/boot/isolinux/
# vi isolinux.cfg
display isolinux.msg
label slitaz
kernel /boot/bzImage
append initrd=/boot/rootfs.gz rw root=/dev/null vga=normal autologin lang=en kmap=es
include common.cfg
2. Añadimos los clientes web:
# cd jukebox/distro/rootfs/var/www/
# tar -xzvf /home/tux/phpmpreloaded-1.1c.tar.gz
# tar -xzvf /home/tux/relaxx-070.tar.gz
3. Añadimos demonios en arranque (mpd lighttpd dropbear):
# cd jukebox/distro/rootfs/etc
# vi rcS.conf
RUN_DAEMONS="dbus hald firewall slim mpd lighttpd dropbear"
Como mpd no tiene un script en init.d debemos añadirlo:
# cd jukebox/distro/rootfs/etc/init.d
# cat mpd
#!/bin/sh
# /etc/init.d/lighttpd: Start, stop and restart web server on SliTaz,
# at boot time or with the command line. Daemons options are configured
# with /etc/daemons.conf
#
. /etc/init.d/rc.functions
. /etc/daemons.conf
NAME=mpd
DESC="music player daemon"
DAEMON=/usr/sbin/mpd
OPTIONS=$MPD_OPTIONS
PIDFILE=/var/run/mpd.pid
KILL_OPTION=--kill
case "$1" in
start)
if [ -f $PIDFILE ] ; then
echo "$NAME already running."
exit 1
fi
echo -n "Starting $DESC: $NAME... "
$DAEMON $OPTIONS
status
;;
stop)
if [ ! -f $PIDFILE ] ; then
echo "$NAME is not running."
exit 1
fi
echo -n "Stopping $DESC: $NAME... "
$DAEMON $KILL_OPTION
rm $PIDFILE
status
;;
restart)
if [ ! -f $PIDFILE ] ; then
echo "$NAME is not running."
exit 1
fi
echo -n "Restarting $DESC: $NAME... "
$DAEMON $KILL_OPTION
rm $PIDFILE
sleep 2
$DAEMON $OPTIONS
status
;;
*)
echo ""
echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]"
echo ""
exit 1
;;
esac
exit 0
4. Añadimos el usuario tux usamos chroot para ello:
# cd jukebux/distro/rootfs
# chroot .
root@slitaz:/# adduser tux
adduser: /home/tux: File exists
Changing password for tux
New password:
Bad password: too short
Retype password:
Password for tux changed by root
root@slitaz:/# exit
# cd jukebox/rootfs/home/tux
# mkdir .mpd
# mkdir .mpd/playlists
# mkdir music
# cd jukebox/rootfs/home
# chown -R tux:tux tux
Hay que añadir el usuario al grupo audio:
# cd jukebox/rootfs/etc
# vi group
audio:x:20:tux
Regeneramos el rootfs:
# rm jukebox/distro/rootcd/boot
# cd jukebox/distro/rootfs
# find . -print | cpio -o -H newc | gzip -9 > ../rootcd/boot/rootfs.gz
Por último generamos la iso:
# tazlito gen-iso
Primero borramos la iso generada:
# cd distro
# rm slitaz-base.iso
Realizamos las modificaciones:
1. Configuración idioma y teclado, arrancará con la configuració por defecto en lugar de preguntar:
# cd jukebox/distro/rootcd/boot/isolinux/
# vi isolinux.cfg
display isolinux.msg
label slitaz
kernel /boot/bzImage
append initrd=/boot/rootfs.gz rw root=/dev/null vga=normal autologin lang=en kmap=es
include common.cfg
2. Añadimos los clientes web:
# cd jukebox/distro/rootfs/var/www/
# tar -xzvf /home/tux/phpmpreloaded-1.1c.tar.gz
# tar -xzvf /home/tux/relaxx-070.tar.gz
3. Añadimos demonios en arranque (mpd lighttpd dropbear):
# cd jukebox/distro/rootfs/etc
# vi rcS.conf
RUN_DAEMONS="dbus hald firewall slim mpd lighttpd dropbear"
Como mpd no tiene un script en init.d debemos añadirlo:
# cd jukebox/distro/rootfs/etc/init.d
# cat mpd
#!/bin/sh
# /etc/init.d/lighttpd: Start, stop and restart web server on SliTaz,
# at boot time or with the command line. Daemons options are configured
# with /etc/daemons.conf
#
. /etc/init.d/rc.functions
. /etc/daemons.conf
NAME=mpd
DESC="music player daemon"
DAEMON=/usr/sbin/mpd
OPTIONS=$MPD_OPTIONS
PIDFILE=/var/run/mpd.pid
KILL_OPTION=--kill
case "$1" in
start)
if [ -f $PIDFILE ] ; then
echo "$NAME already running."
exit 1
fi
echo -n "Starting $DESC: $NAME... "
$DAEMON $OPTIONS
status
;;
stop)
if [ ! -f $PIDFILE ] ; then
echo "$NAME is not running."
exit 1
fi
echo -n "Stopping $DESC: $NAME... "
$DAEMON $KILL_OPTION
rm $PIDFILE
status
;;
restart)
if [ ! -f $PIDFILE ] ; then
echo "$NAME is not running."
exit 1
fi
echo -n "Restarting $DESC: $NAME... "
$DAEMON $KILL_OPTION
rm $PIDFILE
sleep 2
$DAEMON $OPTIONS
status
;;
*)
echo ""
echo -e "\033[1mUsage:\033[0m /etc/init.d/`basename $0` [start|stop|restart]"
echo ""
exit 1
;;
esac
exit 0
4. Añadimos el usuario tux usamos chroot para ello:
# cd jukebux/distro/rootfs
# chroot .
root@slitaz:/# adduser tux
adduser: /home/tux: File exists
Changing password for tux
New password:
Bad password: too short
Retype password:
Password for tux changed by root
root@slitaz:/# exit
# cd jukebox/rootfs/home/tux
# mkdir .mpd
# mkdir .mpd/playlists
# mkdir music
# cd jukebox/rootfs/home
# chown -R tux:tux tux
Hay que añadir el usuario al grupo audio:
# cd jukebox/rootfs/etc
# vi group
audio:x:20:tux
Regeneramos el rootfs:
# rm jukebox/distro/rootcd/boot
# cd jukebox/distro/rootfs
# find . -print | cpio -o -H newc | gzip -9 > ../rootcd/boot/rootfs.gz
Por último generamos la iso:
# tazlito gen-iso
Linux jukebox 4th round: Web client
Vamos a instalar y configurar el cliente web, los clientes web disponibles para mpd son PHP por lo que precisaremos un servidor con soporte de este lenguaje.
Probamos lighttpd ya que el consumo de memoria y CPU son menores que apache.
Instalamos lighttpd y sus módulos:
root@slitaz:/home/tux/jukebox# tazpkg get-install lighttpd
root@slitaz:/home/tux/jukebox# tazpkg get-install lighttpd-modules
root@slitaz:~# tazpkg get-install php
Probamos el cliente phpMpReloaded que incluye varios clientes PHP:
# cd /var/www
# tar -xzvf /home/tux/phpmpreloaded-1.1c.tar.gz
Tambien probamos un cliente ajax relaxx con una interfaz mas depurada:
# cd /var/www
# tar -xzvf /home/tux/relaxx-070.tar.gz
Problemas:
- Los clientes web en local solo conectan cuando esta en play ¿?. Sin embargo, si el cliente web está en otro host funciona correctamente ¿?
- Relaxx no vé ciertos tipos de ficheros (.ogg) ¿?
A pesar de los problemas los añadimos a la distro (distro-packages.list) :
lighttpd-1.4.26
lighttpd-modules-1.4.26
php-5.2.11
Además añadimos soporte para ntfs ya que el disco externo está en ese formato de fs:
ntfsprogs-2.0.0
Añadimos tambien el cliente curses ncmpcpp:
ncmpcpp-0.5
Probamos lighttpd ya que el consumo de memoria y CPU son menores que apache.
Instalamos lighttpd y sus módulos:
root@slitaz:/home/tux/jukebox# tazpkg get-install lighttpd
root@slitaz:/home/tux/jukebox# tazpkg get-install lighttpd-modules
root@slitaz:~# tazpkg get-install php
Probamos el cliente phpMpReloaded que incluye varios clientes PHP:
# cd /var/www
# tar -xzvf /home/tux/phpmpreloaded-1.1c.tar.gz
Tambien probamos un cliente ajax relaxx con una interfaz mas depurada:
# cd /var/www
# tar -xzvf /home/tux/relaxx-070.tar.gz
Problemas:
- Los clientes web en local solo conectan cuando esta en play ¿?. Sin embargo, si el cliente web está en otro host funciona correctamente ¿?
- Relaxx no vé ciertos tipos de ficheros (.ogg) ¿?
A pesar de los problemas los añadimos a la distro (distro-packages.list) :
lighttpd-1.4.26
lighttpd-modules-1.4.26
php-5.2.11
Además añadimos soporte para ntfs ya que el disco externo está en ese formato de fs:
ntfsprogs-2.0.0
Añadimos tambien el cliente curses ncmpcpp:
ncmpcpp-0.5
Linux Jukebox 3rd round: Creando ISO SliTaz con mpd
La distribución bajada precisa 160Mb de RAM mínimos, vamos a intentar generar una primera versión básica usaremos la herramienta tazlito:
root@slitaz:~# tazlito list-flavors --recharge
Connecting to mirror.slitaz.org (94.23.60.116:80) - 100% |*************************************************************| 833 --:--:-- ETA List of flavors ================================================================================ Name ISO Rootfs Description ================================================================================ base 6.9M 13.1M Minimal set of packages to boot
core-3in1 31.5M 105.6M SliTaz core system with justx and base alternatives
core 26.0M 86.0M Core system with a full featured desktop.
firefox 29.0M 92.0M Small desktop Mozilla Firefox.
justx 29.0M 97.5M Very small desktop with X only
loram-cdrom-sqfs 30.0M 7.7M SliTaz loram system (/usr on cdrom) loram-cdrom 88.1M 7.5M SliTaz loram system (/usr on cdrom) loram-http 7.0M 7.9M SliTaz loram system (/usr on web)
loram 30.0M 32.2M SliTaz loram system (all in RAM)
xvesa 29.0M 97.5M Core system with a full featured desktop (use tinyX server).
Creamos un arbol para crear la iso:
mkdir jukebox
mkdir jukebox/distro
mkdir jukebox/packages
Y generamos una configuración:
root@slitaz:/home/tux/jukebox# tazlito configure
Configuring : /home/tux/jukebox/tazlito.conf ================================================================================ ISO name : jukebox
Volume name : jkb Packages
repository : /home/tux/jukebox/packages
Distro path : /home/tux/jukebox/distro ================================================================================ Config file is ready to use. You can now extract an ISO or generate a distro.
A continuación bajamos un flavor:
tux@slitaz:~/jukebox$ tazlito get flavor base
Connecting to mirror.slitaz.org (94.23.60.116:80)
base.flavor 100% |*************************************************************| 11562 --:--:-- ETA Cleaning distro... [ OK ]
Extracting flavor base.flavor... Creating distro-packages.list... [ OK ]
Adding rootcd... Updating tazlito.conf... [ OK ]
Hacemos la primera prueba:
tazlito gen-distro
Arranca perfectamente en un entorno virtualizado con 128Mb de RAM, pero no tenemos X ni sonido, tenemos que añadir algunos paquetes adicionales.
Limpiamos la distro:
tazlito clean-distro
Empezamos con el sonido:
Podemos bajar el mpd al directorio packages:
root@slitaz:/home/tux/jukebox/packages# tazpkg get mpd
Mirar sus dependencias e ir bajando todas:
root@slitaz:/home/tux/jukebox/packages# tazpkg depends mpd
Pero es más rápido añadir el paquete mpc a la lista distro-packages.list y al regenerar la distro bajará todos los paquetes necesarios, añadimos algún paquete adicional.
echo alsa-utils-1.0.21 >> distro-packages.list
echo linux-sound-2.6.30.6 >> distro-packages.list
echo mpc-0.19 >> distro-packages.list
tazlito gen-distro
Vamos a probarlo, copiamos un mp3 y arrancamos mpd:
tux@slitaz:~$ mkdir .mpd
tux@slitaz:~$ mkdir .mpd/playlists
tux@slitaz:~$ mkdir .mpd/database
tux@slitaz:~$ mkdir .mpd/log
Descomentamos la linea del puerto:
port "6600"
Y recreamos la BBDD:
tux@slitaz:~$ mpd --create-db
output: No "audio_output" defined in config file
output: Attempt to detect audio output device
output: Attempting to detect a alsa audio device
output: Successfully detected a alsa audio device
Y listo, ya tenemos funcionando nuestro juke con mpd.
Aún faltan algunos pasos para tener algo funcional pero ya pita!.
root@slitaz:~# tazlito list-flavors --recharge
Connecting to mirror.slitaz.org (94.23.60.116:80) - 100% |*************************************************************| 833 --:--:-- ETA List of flavors ================================================================================ Name ISO Rootfs Description ================================================================================ base 6.9M 13.1M Minimal set of packages to boot
core-3in1 31.5M 105.6M SliTaz core system with justx and base alternatives
core 26.0M 86.0M Core system with a full featured desktop.
firefox 29.0M 92.0M Small desktop Mozilla Firefox.
justx 29.0M 97.5M Very small desktop with X only
loram-cdrom-sqfs 30.0M 7.7M SliTaz loram system (/usr on cdrom) loram-cdrom 88.1M 7.5M SliTaz loram system (/usr on cdrom) loram-http 7.0M 7.9M SliTaz loram system (/usr on web)
loram 30.0M 32.2M SliTaz loram system (all in RAM)
xvesa 29.0M 97.5M Core system with a full featured desktop (use tinyX server).
Creamos un arbol para crear la iso:
mkdir jukebox
mkdir jukebox/distro
mkdir jukebox/packages
Y generamos una configuración:
root@slitaz:/home/tux/jukebox# tazlito configure
Configuring : /home/tux/jukebox/tazlito.conf ================================================================================ ISO name : jukebox
Volume name : jkb Packages
repository : /home/tux/jukebox/packages
Distro path : /home/tux/jukebox/distro ================================================================================ Config file is ready to use. You can now extract an ISO or generate a distro.
A continuación bajamos un flavor:
tux@slitaz:~/jukebox$ tazlito get flavor base
Connecting to mirror.slitaz.org (94.23.60.116:80)
base.flavor 100% |*************************************************************| 11562 --:--:-- ETA Cleaning distro... [ OK ]
Extracting flavor base.flavor... Creating distro-packages.list... [ OK ]
Adding rootcd... Updating tazlito.conf... [ OK ]
Hacemos la primera prueba:
tazlito gen-distro
Arranca perfectamente en un entorno virtualizado con 128Mb de RAM, pero no tenemos X ni sonido, tenemos que añadir algunos paquetes adicionales.
Limpiamos la distro:
tazlito clean-distro
Empezamos con el sonido:
Podemos bajar el mpd al directorio packages:
root@slitaz:/home/tux/jukebox/packages# tazpkg get mpd
Mirar sus dependencias e ir bajando todas:
root@slitaz:/home/tux/jukebox/packages# tazpkg depends mpd
Pero es más rápido añadir el paquete mpc a la lista distro-packages.list y al regenerar la distro bajará todos los paquetes necesarios, añadimos algún paquete adicional.
echo alsa-utils-1.0.21 >> distro-packages.list
echo linux-sound-2.6.30.6 >> distro-packages.list
echo mpc-0.19 >> distro-packages.list
tazlito gen-distro
Vamos a probarlo, copiamos un mp3 y arrancamos mpd:
tux@slitaz:~$ mkdir .mpd
tux@slitaz:~$ mkdir .mpd/playlists
tux@slitaz:~$ mkdir .mpd/database
tux@slitaz:~$ mkdir .mpd/log
Descomentamos la linea del puerto:
port "6600"
Y recreamos la BBDD:
tux@slitaz:~$ mpd --create-db
output: No "audio_output" defined in config file
output: Attempt to detect audio output device
output: Attempting to detect a alsa audio device
output: Successfully detected a alsa audio device
Y listo, ya tenemos funcionando nuestro juke con mpd.
Aún faltan algunos pasos para tener algo funcional pero ya pita!.
Linux Jukebox 2nd Round: SliTaz + mpd
Tras el primer intento con éxito de montar el Jukebox con DSL y Xmms, la cosa se nos queda algo corta y queremos ir algo más allá.
Los requisitos nuevos son:
- Gestión a distancia del Jukebox: Usando un movil wifi como mando a distancia.
- Streaming de audio: Para poder crear un canal adicional.
Para esta ampliación probaré con mpd, este daemon no está incluido entre los paquetes de DSL así que para montar algo rápido buscamos una distribución que cubra los requisitos del 1er round, de momento probamos con SliTaz ya que incluye mpd/mpc entre sus paquetes.
SliTaz tiene unos requerimientos de memoria superiores a los requisitos especificados pero de momento vamos a montar una maqueta virtualizada para ver las necesidades finales y si el enfoque es el adecuado intentaremos "adelgazar" la instalación.
Probamos la maqueta en un entorno virtualizado arrancando la ISO y posteriormente la volcamos a disco virtual (256MB), SliTaz trae de serie una interfaz (SliTaz installer) que hace prácticamente todo:
1. Creamos la partición (asignamos todo el disco disponible y la marcamos como vfat).
2. Ejecutamos el instalador y le indicamos la partición, le indicamos que formatee con vfat.
3. Al reiniciar arrancaremos ya desde el disco nuevo, podemos verificar que los cambios son persistentes.
Tras la instalación comenzamos la instalación, primero actualizamos la lista de paquetes de los mirror:
tazpkg recharge
Y buscamos el paquete que nos interesa:
tazpkg list-mirror | grep mpd
Lo instalamos:
tazpkg get-install mpd
tazpkg get-install mpc
Listo, copiamos un disco para probar y tras trastear un poco con los controles de volumen ya pita:
tux@slitaz:~$ mpd
output: No "audio_output" defined in config file
output: Attempt to detect audio output device
output: Attempting to detect a alsa audio device
output: Successfully detected a alsa audio device
tux@slitaz:~$ mpc update
Updating DB (#1) ...
volume:100% repeat: off random: off single: off consume: off
tux@slitaz:~$ mpc listall
CoolJerks/1.SoulTeller.mp3
CoolJerks/2.ICantTurnYouLoose.mp3
CoolJerks/3.GoodOldMan.mp3
CoolJerks/4.YourSilhouette.mp3
tux@slitaz:~$ mpc listall | mpc add
tux@slitaz:~$ mpc playlist
CoolJerks/1.SoulTeller.mp3
CoolJerks/2.ICantTurnYouLoose.mp3
CoolJerks/3.GoodOldMan.mp3
CoolJerks/4.YourSilhouette.mp3
tux@slitaz:~$ mpc play
CoolJerks/1.SoulTeller.mp3
[playing] #1/4 0:00/2:20 (0%)
volume:100% repeat: off random: off single: off consume: off
tux@slitaz:~$ mpc next
CoolJerks/2. ICantTurnYouLoose.mp3
[playing] #2/4 0:01/2:18 (0%)
volume:100% repeat: off random: off single: off consume: off
Ok, parece que esto es lo que queremos, tenemos múltiples clientes ricos y web que nos permitirán gestionar nuestro juke de forma remota.
Los requisitos nuevos son:
- Gestión a distancia del Jukebox: Usando un movil wifi como mando a distancia.
- Streaming de audio: Para poder crear un canal adicional.
Para esta ampliación probaré con mpd, este daemon no está incluido entre los paquetes de DSL así que para montar algo rápido buscamos una distribución que cubra los requisitos del 1er round, de momento probamos con SliTaz ya que incluye mpd/mpc entre sus paquetes.
SliTaz tiene unos requerimientos de memoria superiores a los requisitos especificados pero de momento vamos a montar una maqueta virtualizada para ver las necesidades finales y si el enfoque es el adecuado intentaremos "adelgazar" la instalación.
Probamos la maqueta en un entorno virtualizado arrancando la ISO y posteriormente la volcamos a disco virtual (256MB), SliTaz trae de serie una interfaz (SliTaz installer) que hace prácticamente todo:
1. Creamos la partición (asignamos todo el disco disponible y la marcamos como vfat).
2. Ejecutamos el instalador y le indicamos la partición, le indicamos que formatee con vfat.
3. Al reiniciar arrancaremos ya desde el disco nuevo, podemos verificar que los cambios son persistentes.
Tras la instalación comenzamos la instalación, primero actualizamos la lista de paquetes de los mirror:
tazpkg recharge
Y buscamos el paquete que nos interesa:
tazpkg list-mirror | grep mpd
Lo instalamos:
tazpkg get-install mpd
tazpkg get-install mpc
Listo, copiamos un disco para probar y tras trastear un poco con los controles de volumen ya pita:
tux@slitaz:~$ mpd
output: No "audio_output" defined in config file
output: Attempt to detect audio output device
output: Attempting to detect a alsa audio device
output: Successfully detected a alsa audio device
tux@slitaz:~$ mpc update
Updating DB (#1) ...
volume:100% repeat: off random: off single: off consume: off
tux@slitaz:~$ mpc listall
CoolJerks/1.SoulTeller.mp3
CoolJerks/2.ICantTurnYouLoose.mp3
CoolJerks/3.GoodOldMan.mp3
CoolJerks/4.YourSilhouette.mp3
tux@slitaz:~$ mpc listall | mpc add
tux@slitaz:~$ mpc playlist
CoolJerks/1.SoulTeller.mp3
CoolJerks/2.ICantTurnYouLoose.mp3
CoolJerks/3.GoodOldMan.mp3
CoolJerks/4.YourSilhouette.mp3
tux@slitaz:~$ mpc play
CoolJerks/1.SoulTeller.mp3
[playing] #1/4 0:00/2:20 (0%)
volume:100% repeat: off random: off single: off consume: off
tux@slitaz:~$ mpc next
CoolJerks/2. ICantTurnYouLoose.mp3
[playing] #2/4 0:01/2:18 (0%)
volume:100% repeat: off random: off single: off consume: off
Ok, parece que esto es lo que queremos, tenemos múltiples clientes ricos y web que nos permitirán gestionar nuestro juke de forma remota.
sábado, agosto 27, 2011
jueves, mayo 19, 2011
perl: Listado de módulos instalados
Se puede usar el comando "instmodsh" :
[root@localhost ~]# instmodsh
Available commands are:
l - List all installed modules
m - Select a module
q - Quit the program
cmd? l
Installed modules are:
App::cpanminus
CPAN::Meta
CPAN::Meta::YAML
ExtUtils::CBuilder
IPC::Cmd
JSON::PP
Locale::Maketext::Simple
Module::Build
Module::CoreList
Module::Load
Module::Load::Conditional
Module::Metadata
Params::Check
Parse::CPAN::Meta
Perl
Perl::OSType
Test::Simple
Version::Requirements
version
No se instala por defecto, en Fedora se encuentra en el paquete:
perl-ExtUtils-MakeMaker
[root@localhost ~]# instmodsh
Available commands are:
l - List all installed modules
m
q - Quit the program
cmd? l
Installed modules are:
App::cpanminus
CPAN::Meta
CPAN::Meta::YAML
ExtUtils::CBuilder
IPC::Cmd
JSON::PP
Locale::Maketext::Simple
Module::Build
Module::CoreList
Module::Load
Module::Load::Conditional
Module::Metadata
Params::Check
Parse::CPAN::Meta
Perl
Perl::OSType
Test::Simple
Version::Requirements
version
No se instala por defecto, en Fedora se encuentra en el paquete:
perl-ExtUtils-MakeMaker
miércoles, diciembre 01, 2010
Oracle: Espacio ocupado por un esquema
Consulta que obtiene el espacio ocupado por los objetos de la BBDD (agrupados):
SELECT
-- ds.tablespace_name TABLESPACE,
ds.segment_name TABLA,
NULL COLUMNA,
ds.segment_type TIPO,
SUM(ds.bytes) / 1024 KBYTES,
SUM(ds.blocks) BLOCKS,
SUM(ds.extents) EXTENTS
FROM dba_segments ds
WHERE ds.owner IN('ESQUEMA')
AND ds.segment_type NOT IN ('LOB PARTITION','LOBSEGMENT','INDEX PARTITION','INDEX','LOBINDEX')
GROUP BY
-- ds.tablespace_name,
ds.segment_name,
ds.segment_type
UNION
SELECT
-- ds.tablespace_name TABLESPACE,
dlp.TABLE_NAME TABLA,
dlp.column_name COLUMNA,
ds.segment_type TIPO,
SUM(ds.bytes) / 1024 KBYTES,
SUM(ds.blocks) BLOCKS,
SUM(ds.extents) EXTENTS
FROM dba_segments ds,
dba_lob_partitions dlp
WHERE ds.owner IN('ESQUEMA')
AND(dlp.lob_partition_name = ds.partition_name
AND ds.segment_type = 'LOB PARTITION')
GROUP BY
-- ds.tablespace_name,
dlp.TABLE_NAME,
ds.segment_name,
dlp.column_name,
ds.segment_type
UNION
SELECT
-- ds.tablespace_name TABLESPACE,
dl.table_name TABLA,
dl.column_name COLUMNA,
ds.segment_type TIPO,
SUM(ds.bytes) / 1024 KBYTES,
SUM(ds.blocks) BLOCKS,
SUM(ds.extents) EXTENTS
FROM dba_segments ds, dba_lobs dl
WHERE ds.owner IN('ESQUEMA')
AND (ds.segment_type = 'LOBSEGMENT'
AND dl.segment_name = ds.segment_name)
GROUP BY
-- ds.tablespace_name,
dl.table_name,
dl.column_name,
ds.segment_type
UNION
SELECT
-- ds.tablespace_name TABLESPACE,
di.TABLE_NAME TABLA,
ds.segment_name COLUMNA,
ds.segment_type TIPO,
SUM(ds.bytes) / 1024 KBYTES,
SUM(ds.blocks) BLOCKS,
SUM(ds.extents) EXTENTS
FROM dba_segments ds,
dba_indexes di
WHERE ds.owner IN('ESQUEMA')
AND(di.index_name = ds.segment_name
AND ds.segment_type IN ('INDEX PARTITION','INDEX','LOBINDEX'))
GROUP BY
-- ds.tablespace_name,
di.table_name,
ds.segment_name,
ds.segment_type ;
SELECT
-- ds.tablespace_name TABLESPACE,
ds.segment_name TABLA,
NULL COLUMNA,
ds.segment_type TIPO,
SUM(ds.bytes) / 1024 KBYTES,
SUM(ds.blocks) BLOCKS,
SUM(ds.extents) EXTENTS
FROM dba_segments ds
WHERE ds.owner IN('ESQUEMA')
AND ds.segment_type NOT IN ('LOB PARTITION','LOBSEGMENT','INDEX PARTITION','INDEX','LOBINDEX')
GROUP BY
-- ds.tablespace_name,
ds.segment_name,
ds.segment_type
UNION
SELECT
-- ds.tablespace_name TABLESPACE,
dlp.TABLE_NAME TABLA,
dlp.column_name COLUMNA,
ds.segment_type TIPO,
SUM(ds.bytes) / 1024 KBYTES,
SUM(ds.blocks) BLOCKS,
SUM(ds.extents) EXTENTS
FROM dba_segments ds,
dba_lob_partitions dlp
WHERE ds.owner IN('ESQUEMA')
AND(dlp.lob_partition_name = ds.partition_name
AND ds.segment_type = 'LOB PARTITION')
GROUP BY
-- ds.tablespace_name,
dlp.TABLE_NAME,
ds.segment_name,
dlp.column_name,
ds.segment_type
UNION
SELECT
-- ds.tablespace_name TABLESPACE,
dl.table_name TABLA,
dl.column_name COLUMNA,
ds.segment_type TIPO,
SUM(ds.bytes) / 1024 KBYTES,
SUM(ds.blocks) BLOCKS,
SUM(ds.extents) EXTENTS
FROM dba_segments ds, dba_lobs dl
WHERE ds.owner IN('ESQUEMA')
AND (ds.segment_type = 'LOBSEGMENT'
AND dl.segment_name = ds.segment_name)
GROUP BY
-- ds.tablespace_name,
dl.table_name,
dl.column_name,
ds.segment_type
UNION
SELECT
-- ds.tablespace_name TABLESPACE,
di.TABLE_NAME TABLA,
ds.segment_name COLUMNA,
ds.segment_type TIPO,
SUM(ds.bytes) / 1024 KBYTES,
SUM(ds.blocks) BLOCKS,
SUM(ds.extents) EXTENTS
FROM dba_segments ds,
dba_indexes di
WHERE ds.owner IN('ESQUEMA')
AND(di.index_name = ds.segment_name
AND ds.segment_type IN ('INDEX PARTITION','INDEX','LOBINDEX'))
GROUP BY
-- ds.tablespace_name,
di.table_name,
ds.segment_name,
ds.segment_type ;
miércoles, abril 22, 2009
Oracle: Productos instalados
column COMP_ID format a10
column COMP_NAME format a40
column VERSION format a15
column STATUS format a7
column NAMESPACE format a10
column CONTROL format a7
column PARENT_ID format a10
column OTHER_SCHEMAS format a50
select * from dba_registry;
column COMP_NAME format a40
column VERSION format a15
column STATUS format a7
column NAMESPACE format a10
column CONTROL format a7
column PARENT_ID format a10
column OTHER_SCHEMAS format a50
select * from dba_registry;
martes, abril 21, 2009
Oracle: Relación PROCESSES - SESSIONS - TRANSACTIONS (10g):
SESSIONS = (1.1 * PROCESSES) + 5
TRANSACTIONS = 1.1 * SESSIONS
TRANSACTIONS = 1.1 * SESSIONS
martes, enero 29, 2008
WGET: Download "persistente"
A veces ocurre que tenemos que bajar algo muy grande y por temas de nuestra red interna o la red del proveedor se corta el download a la mitad.
Para evitar esto podemos usar wget pero ¿y si la página está protegida con usuario?, si esta protección usa cookies podemos usarlo con la opción --load-cookies y usando el navegador para generar una cookie válida tanto en Firefox como en IExplorer.
Suponemos que tenemos el fichero 10gr2_companion_hpi.zip que hemos comenzado a bajar desde otn.oracle.com con el navegador y ha fallado a los 200MB:
1. Estamos validados en OTN con usuario y contraseña en el navegador.
2. Copiamos o exportamos el fichero de cookies en el directorio de wget.
3. Copiamos la URL de la página web en el fichero otn.txt.
4. Ejecutamos el wget:
C:\> wget -c -i otn.txt -O 10gr2_companion_hpi.zip --no-check-certificate --load-cookies cookies.txt.ff
--09:23:47-- http://download.oracle.com/otn/hp/oracle10g/10201/itanium/10gr2_co
mpanion_hpi.zip
=> `10gr2_companion_hpi.zip'
Resolving download.oracle.com... 87.248.199.20, 87.248.199.22
Connecting to download.oracle.com|87.248.199.20|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 1.504.430.051 (1.4G), 1.292.714.171 (1.2G) remaining [application/zip]
39% [+++++========> ] 591.636.384 --.--K/s ETA 1:24:19
Y continua bajando desde el punto, en caso de que vuelva a cortarse, wget lo reintentará varias veces.
Para evitar esto podemos usar wget pero ¿y si la página está protegida con usuario?, si esta protección usa cookies podemos usarlo con la opción --load-cookies y usando el navegador para generar una cookie válida tanto en Firefox como en IExplorer.
Suponemos que tenemos el fichero 10gr2_companion_hpi.zip que hemos comenzado a bajar desde otn.oracle.com con el navegador y ha fallado a los 200MB:
1. Estamos validados en OTN con usuario y contraseña en el navegador.
2. Copiamos o exportamos el fichero de cookies en el directorio de wget.
3. Copiamos la URL de la página web en el fichero otn.txt.
4. Ejecutamos el wget:
C:\> wget -c -i otn.txt -O 10gr2_companion_hpi.zip --no-check-certificate --load-cookies cookies.txt.ff
--09:23:47-- http://download.oracle.com/otn/hp/oracle10g/10201/itanium/10gr2_co
mpanion_hpi.zip
=> `10gr2_companion_hpi.zip'
Resolving download.oracle.com... 87.248.199.20, 87.248.199.22
Connecting to download.oracle.com|87.248.199.20|:80... connected.
HTTP request sent, awaiting response... 206 Partial Content
Length: 1.504.430.051 (1.4G), 1.292.714.171 (1.2G) remaining [application/zip]
39% [+++++========> ] 591.636.384 --.--K/s ETA 1:24:19
Y continua bajando desde el punto, en caso de que vuelva a cortarse, wget lo reintentará varias veces.
WGET: Uso de certificados.
A veces es necesario usar una herramienta off-line para la verificación de sitios https de forma remota o para bajarse ficheros de sitios protegidos con certificados.
Para este tipo de tareas la herramienta perfecta es, sin duda, wget. Existen versiones para Unix, VMS, Windows y MS-DOS con packet drivers.
El procedimiento para usarlo con certificados sería algo así (no esta totalmente verificado):
1. Escribimos la URL a la que queremos acceder la copiamos en el fichero testurl.txt
2. Suponiendo que estemos usando Unix y que tengamos el certificado en un fichero cert.pfx:
Primero debemos convertir el fichero cert.pfx en un fichero cert.pem:
openssl pkcs12 -in cert.pfx -out cert.pem -nodes
Del fichero cert.pem copiamos el certificado al fichero "cert":
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Y la clave al fichero "key":
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
3. A continuación ejecutamos la consulta con el wget:
$ wget -i testurl.txt --certificate=cert --private-key=key --no-check-certificate
--11:42:59-- https://sitio.com/miurl/objetivo.html
=> `objetivo.html'
Resolving sitio.com... 123.456.789.1
Connecting to sitio.com|123.456.789.1|:443... connected.
WARNING: Certificate verification error for sitio.com: self signed certificate in certificate chain
HTTP request sent, awaiting response... 200 OK
Length: 214 [text/html]
100%[===================================================>] 214 --.--K/s
11:42:59 (21.45 MB/s) - `objetivo.html' saved [214/214]
FINISHED --11:42:59-- Publicar entrada
Downloaded: 214 bytes in 1 files
Listo, si miramos en el fichero "objetivo.html" veremos la respuesta.
Para este tipo de tareas la herramienta perfecta es, sin duda, wget. Existen versiones para Unix, VMS, Windows y MS-DOS con packet drivers.
El procedimiento para usarlo con certificados sería algo así (no esta totalmente verificado):
1. Escribimos la URL a la que queremos acceder la copiamos en el fichero testurl.txt
2. Suponiendo que estemos usando Unix y que tengamos el certificado en un fichero cert.pfx:
Primero debemos convertir el fichero cert.pfx en un fichero cert.pem:
openssl pkcs12 -in cert.pfx -out cert.pem -nodes
Del fichero cert.pem copiamos el certificado al fichero "cert":
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----
Y la clave al fichero "key":
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
3. A continuación ejecutamos la consulta con el wget:
$ wget -i testurl.txt --certificate=cert --private-key=key --no-check-certificate
--11:42:59-- https://sitio.com/miurl/objetivo.html
=> `objetivo.html'
Resolving sitio.com... 123.456.789.1
Connecting to sitio.com|123.456.789.1|:443... connected.
WARNING: Certificate verification error for sitio.com: self signed certificate in certificate chain
HTTP request sent, awaiting response... 200 OK
Length: 214 [text/html]
100%[===================================================>] 214 --.--K/s
11:42:59 (21.45 MB/s) - `objetivo.html' saved [214/214]
FINISHED --11:42:59-- Publicar entrada
Downloaded: 214 bytes in 1 files
Listo, si miramos en el fichero "objetivo.html" veremos la respuesta.
miércoles, enero 23, 2008
Oracle: Consultar parametros de sesion.
La tabla donde se incluyen los parámetros de sesión es la vista dinámica v$parameters, para poder consultarla sys tiene que darle permisos al usuario:
grant select on v_$parameter to usuario;
A partir de ese momento ya se pueden consultar los parámetros:
SQL> SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME = 'optimizer_mode' ;
NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
optimizer_mode
CHOOSE
grant select on v_$parameter to usuario;
A partir de ese momento ya se pueden consultar los parámetros:
SQL> SELECT NAME,VALUE FROM V$PARAMETER WHERE NAME = 'optimizer_mode' ;
NAME
--------------------------------------------------------------------------------
VALUE
--------------------------------------------------------------------------------
optimizer_mode
CHOOSE
lunes, septiembre 10, 2007
Reiniciar Linux en caso de bloqueo
¿Que hacer cuando se nos bloquea nuestro Linux? Si el sistema está tan colgado que no funciona la opción de Control + Alt + Backspace ni podemos mover el ratón, antes de darle el botón de Reset que podría dañar seriamente tu sistema:
* Pulsa Alt+ ImprPantalla y mantenlos pulsados.
* Teclea RSEIUB y tu sistema se reiniciará, así de simple.
Aquí está lo que hace cada tecla con detalle:
* R devuelve el control al teclado.
* S sincroniza.
* E manda a los procesos la señal term.
* I manda a los procesos la señal kill.
* U desmonta los sistemas de ficheros.
* B reinicia el sistema.
Otra posible combinación de letras: REISUB.
La secuencia 'SysRq' sirve para poder realizar ciertas tareas elementales de mantenimiento de emergencia en un sistema Linux que ha dejado de responder. A menudo problemas en el hardware (chips de memoria defectuosos, bugs en los drivers, conflictos de IRQs, etc) hacen que el sistema se "congele". En estas situaciones lo más importante es ser capaz de prevenir daños mayores, como una corrupción del sistema de archivos al reiniciar. La secuencia 'SysRq' implica la pulsación simultánea de 3 teclas: la tecla ALT izquierda, la tecla 'SysRq' key (también etiquetada como 'PrtSc', 'ImprPantalla' o 'F13') y una letra. ALT r , por ejemplo, pone el teclado en modo 'raw'. Para apagar el sistema de forma segura, es importante presionar las letras en el orden correcto, sincronizando las unidades antes de desmontarlas, por ejemplo: Raw - tErm - kIll - Sync - Umount - reBoot : REISUB
Hay un nemotécnico sobre qué significan las siglas que dice: "Raising Elephants Is So Utterly Boring" (el cultivo de elefantes es completamente aburrido, en castellano).
No en todas las distribuciones viene activado el soporte de esta secuencia por defecto, por ejemplo en las basadas en RedHat, viene desactivado (CentOS, Fedora...). Para activarlo basta con cambiar en /etc/sysctl.conf la entrada kernel.sysrq y dejarla con valor 1, asi:
kernel.sysrq = 1
Guardamos cambios y ejecutamos "sysctl -p" para activarlos en la sesion actual.
Si el equipo que se cuelga es remoto o no tiene teclado, es posible instalar sysrqd, configurarle la contraseña de acceso y hacer un telnet..
* Pulsa Alt+ ImprPantalla y mantenlos pulsados.
* Teclea RSEIUB y tu sistema se reiniciará, así de simple.
Aquí está lo que hace cada tecla con detalle:
* R devuelve el control al teclado.
* S sincroniza.
* E manda a los procesos la señal term.
* I manda a los procesos la señal kill.
* U desmonta los sistemas de ficheros.
* B reinicia el sistema.
Otra posible combinación de letras: REISUB.
La secuencia 'SysRq' sirve para poder realizar ciertas tareas elementales de mantenimiento de emergencia en un sistema Linux que ha dejado de responder. A menudo problemas en el hardware (chips de memoria defectuosos, bugs en los drivers, conflictos de IRQs, etc) hacen que el sistema se "congele". En estas situaciones lo más importante es ser capaz de prevenir daños mayores, como una corrupción del sistema de archivos al reiniciar. La secuencia 'SysRq' implica la pulsación simultánea de 3 teclas: la tecla ALT izquierda, la tecla 'SysRq' key (también etiquetada como 'PrtSc', 'ImprPantalla' o 'F13') y una letra. ALT r , por ejemplo, pone el teclado en modo 'raw'. Para apagar el sistema de forma segura, es importante presionar las letras en el orden correcto, sincronizando las unidades antes de desmontarlas, por ejemplo: Raw - tErm - kIll - Sync - Umount - reBoot : REISUB
Hay un nemotécnico sobre qué significan las siglas que dice: "Raising Elephants Is So Utterly Boring" (el cultivo de elefantes es completamente aburrido, en castellano).
No en todas las distribuciones viene activado el soporte de esta secuencia por defecto, por ejemplo en las basadas en RedHat, viene desactivado (CentOS, Fedora...). Para activarlo basta con cambiar en /etc/sysctl.conf la entrada kernel.sysrq y dejarla con valor 1, asi:
kernel.sysrq = 1
Guardamos cambios y ejecutamos "sysctl -p" para activarlos en la sesion actual.
Si el equipo que se cuelga es remoto o no tiene teclado, es posible instalar sysrqd, configurarle la contraseña de acceso y hacer un telnet..
Para acceder:# apt-get install sysrqd
# echo "mypassword" >/etc/sysrqd.secret && chmod 0600 /etc/sysrqd.secret
#/etc/init.d/sysrqd restart
Algunas opciones sobran... normalmente se puede pulsar: SUB$ telnet equipo 4094
sysrqd password: mypassword
sysrq> s
sysrq> u
sysrq> b
miércoles, noviembre 29, 2006
Oracle: ARCHIVELOG
Verificar el modo en que está la BBDD:
SQL> Select NAME, CREATED, LOG_MODE, CHECKPOINT_CHANGE#,
ARCHIVE_CHANGE# from V$DATABASE;
NAME CREATED LOG_MODE CHECKPOINT_CHANGE# ARCHIVE_CHANGE#
---- ----------------- ------------ ------------------ --------------
ORCL 05/21/97 17:55:06 NOARCHIVELOG 7.7174E+12 7.7174E+12
O bien:
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /SIHGA/bd/test10g/archives
Oldest online log sequence 323
Next log sequence to archive 325
Current log sequence 325
Rotar un log:
SQL> ALTER SYSTEM SWITCH LOGFILE;
Habilitar archivado automático en el arranque:
LOG_ARCHIVE_START=TRUE
Habilitar archivado automático tras arracar:
Oracle 7.x y Oracle 8/8i:
SVRMGRL> ALTER SYSTEM ARCHIVE LOG START;
Oracle 9.x
SQL> ALTER SYSTEM ARCHIVE LOG START;
NOTE: En 9i, podemos usar un SPFILE en lugar del estandar pfile. El parámetro LOG_ARCHIVE_START esta deprecated con 10g.
SQL> alter system set log_archive_start=true scope=spfile;
Cambiar el modo de archivado:
Hay que configurar en el init.ora los parámetros:
LOG_ARCHIVE_START: Habilita el archivado automático.
LOG_ARCHIVE_DES: Indica el directorio donde se gurdaran los archive logs.
LOG_ARCHIVE_FORMAT: Indica el nombre de los archives.
Preparar la BBDD para el cambio de modo de archivado:
1. Parar la BBDD.
2. Hacer backup.
3. Operaciones de S.O. (opcional).
4. Arrancar la BBDD y montarla, no abrirla:
SQL> startup mount
Si estamos usando OPS o RAC debemos montarla solo una instancia para cambiar el modo de archivado.
5. Cambiar el modo de archivado.
Activarlo:
SQL> ALTER DATABASE ARCHIVELOG;
Desactivarlo:
SQL> ALTER DATABASE NOARCHIVELOG;
6. Abrir la BBDD.
SQL> ALTER DATABASE OPEN;
7. Verficar que esta en modo archivelog.
Oracle 7.x y Oracle8 / 8i
SVRMGRL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination for example: $ORACLE_HOME/dbs/arch
Oldest on-line log sequence 275
Next log sequence 277
Current log sequence 278
Oracle 9i/10g
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled Archive
destination for example: $ORACLE_HOME/dbs/arch
Oldest on-line log sequence 275
Next log sequence 277
Current log sequence 278
8. Archivar todos los archives hasta el momento.
SQL> ARCHIVE LOG ALL;
9. Asegurarse de que el procedimiento de backup está recogiendo los archives.
SQL> Select NAME, CREATED, LOG_MODE, CHECKPOINT_CHANGE#,
ARCHIVE_CHANGE# from V$DATABASE;
NAME CREATED LOG_MODE CHECKPOINT_CHANGE# ARCHIVE_CHANGE#
---- ----------------- ------------ ------------------ --------------
ORCL 05/21/97 17:55:06 NOARCHIVELOG 7.7174E+12 7.7174E+12
O bien:
SQL> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /SIHGA/bd/test10g/archives
Oldest online log sequence 323
Next log sequence to archive 325
Current log sequence 325
Rotar un log:
SQL> ALTER SYSTEM SWITCH LOGFILE;
Habilitar archivado automático en el arranque:
LOG_ARCHIVE_START=TRUE
Habilitar archivado automático tras arracar:
Oracle 7.x y Oracle 8/8i:
SVRMGRL> ALTER SYSTEM ARCHIVE LOG START;
Oracle 9.x
SQL> ALTER SYSTEM ARCHIVE LOG START;
NOTE: En 9i, podemos usar un SPFILE en lugar del estandar pfile. El parámetro LOG_ARCHIVE_START esta deprecated con 10g.
SQL> alter system set log_archive_start=true scope=spfile;
Cambiar el modo de archivado:
Hay que configurar en el init.ora los parámetros:
LOG_ARCHIVE_START: Habilita el archivado automático.
LOG_ARCHIVE_DES: Indica el directorio donde se gurdaran los archive logs.
LOG_ARCHIVE_FORMAT: Indica el nombre de los archives.
Preparar la BBDD para el cambio de modo de archivado:
1. Parar la BBDD.
2. Hacer backup.
3. Operaciones de S.O. (opcional).
4. Arrancar la BBDD y montarla, no abrirla:
SQL> startup mount
Si estamos usando OPS o RAC debemos montarla solo una instancia para cambiar el modo de archivado.
5. Cambiar el modo de archivado.
Activarlo:
SQL> ALTER DATABASE ARCHIVELOG;
Desactivarlo:
SQL> ALTER DATABASE NOARCHIVELOG;
6. Abrir la BBDD.
SQL> ALTER DATABASE OPEN;
7. Verficar que esta en modo archivelog.
Oracle 7.x y Oracle8 / 8i
SVRMGRL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination for example: $ORACLE_HOME/dbs/arch
Oldest on-line log sequence 275
Next log sequence 277
Current log sequence 278
Oracle 9i/10g
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled Archive
destination for example: $ORACLE_HOME/dbs/arch
Oldest on-line log sequence 275
Next log sequence 277
Current log sequence 278
8. Archivar todos los archives hasta el momento.
SQL> ARCHIVE LOG ALL;
9. Asegurarse de que el procedimiento de backup está recogiendo los archives.
martes, noviembre 28, 2006
Oracle: Cambio de editor en SQLPlus, cambios permanentes.
Para cambia el editor en una sesión:
SQL> DEFINE_EDITOR=vi
En windows por ejemplo:
SQL> DEFINE_EDITOR=Z:\PUB\UTILIDADES\Sc1.exe
Para hacerlo permanente, editar el fichero GLOGIN.SQL. El fichero está en el directorio ORACLE_HOME\PLUS33 o bien en el directorio ORACLE_HOME\PLUS80, o bien en el directorio ORACLE_HOME\SQLPLUS\admin.
Añadir la línea:
DEFINE_EDITOR=Z:\PUB\UTILIDADES\Sc1.exe
SQL> DEFINE_EDITOR=vi
En windows por ejemplo:
SQL> DEFINE_EDITOR=Z:\PUB\UTILIDADES\Sc1.exe
Para hacerlo permanente, editar el fichero GLOGIN.SQL. El fichero está en el directorio ORACLE_HOME\PLUS33 o bien en el directorio ORACLE_HOME\PLUS80, o bien en el directorio ORACLE_HOME\SQLPLUS\admin.
Añadir la línea:
DEFINE_EDITOR=Z:\PUB\UTILIDADES\Sc1.exe
Oracle: Como saber el NLS_LANG que está usando SQLPlus
En Unix:
SQL> HOST ECHO $NLS_LANG
En Windows:
SQL> HOST ECHO %NLS_LANG% > c:\borrame.txt
Si no está definido podemos consultar el valor que tiene por defecto (en el registro):
SQL> @.[%NLS_LANG%]
Nos dará algo como:
Unable to open file.[ENGLISH_UNITED KINGDOM.WE8ISO8859P1].
El nombre entre corchetes es el valor del parámetro del registro.
Si obtenemos un valor como:
Unable to open file ".[%NLS_LANG%]."
entonces el valor no existe tampoco en el registro.
El resto de los valores de NLS se pueden obtener con:
SELECT * FROM NLS_SESSION_PARAMETERS;
Los de la base de datos y la instancia respectivamente con:
SELECT * FROM NLS_DATABASE_PARAMETERS;
SELECT * FROM NLS_INSTANCE_PARAMETERS;
SQL> HOST ECHO $NLS_LANG
En Windows:
SQL> HOST ECHO %NLS_LANG% > c:\borrame.txt
Si no está definido podemos consultar el valor que tiene por defecto (en el registro):
SQL> @.[%NLS_LANG%]
Nos dará algo como:
Unable to open file.[ENGLISH_UNITED KINGDOM.WE8ISO8859P1].
El nombre entre corchetes es el valor del parámetro del registro.
Si obtenemos un valor como:
Unable to open file ".[%NLS_LANG%]."
entonces el valor no existe tampoco en el registro.
El resto de los valores de NLS se pueden obtener con:
SELECT * FROM NLS_SESSION_PARAMETERS;
Los de la base de datos y la instancia respectivamente con:
SELECT * FROM NLS_DATABASE_PARAMETERS;
SELECT * FROM NLS_INSTANCE_PARAMETERS;
Oracle: Cambio fuente en SQLPlus (Caracteres extendidos)
Hay que definir en el registro de windows
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
las entradas:
Para 817:
SQLPLUS_FONT -> Courier New
SQLPLUS_FONT_SIZE -> 16
Para 9.x y superiores
SQLPLUS_FONT -> Courier New
SQLPLUS_FONT_SIZE -> 16
SQLPLUS_FONT_CHARSET -> DEFAULT
Por defecto usa Fixedsys en windows.
Hay que escoger una fixed-pitch TrueType font disponible en Windows como "Courier New" o "Lucida Console".
Si escogemos una proportional pitch font como Arial o Times New Roman, o si escogemos una fuente no disponible, la entrada del registro es ignorada y la fuente y el tamaño por defecto, Fixedsys 16, son usadas.
Si escogemos un tamaño no disponible, el tamaño por defecto, 16, es usado.
Hay que especificar el nombre con la forma correcta de mayusculas/minusculas. Por ejemplo, Courier New no COURIER NEW y sin espacios extra o signos de puntuación alrededor.
En la version dos (sqlplus.exe), hay que cambiar las propiedades de la ventana msdos / cmd.exe / usada.
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
las entradas:
Para 817:
SQLPLUS_FONT -> Courier New
SQLPLUS_FONT_SIZE -> 16
Para 9.x y superiores
SQLPLUS_FONT -> Courier New
SQLPLUS_FONT_SIZE -> 16
SQLPLUS_FONT_CHARSET -> DEFAULT
Por defecto usa Fixedsys en windows.
Hay que escoger una fixed-pitch TrueType font disponible en Windows como "Courier New" o "Lucida Console".
Si escogemos una proportional pitch font como Arial o Times New Roman, o si escogemos una fuente no disponible, la entrada del registro es ignorada y la fuente y el tamaño por defecto, Fixedsys 16, son usadas.
Si escogemos un tamaño no disponible, el tamaño por defecto, 16, es usado.
Hay que especificar el nombre con la forma correcta de mayusculas/minusculas. Por ejemplo, Courier New no COURIER NEW y sin espacios extra o signos de puntuación alrededor.
En la version dos (sqlplus.exe), hay que cambiar las propiedades de la ventana msdos / cmd.exe / usada.
miércoles, noviembre 15, 2006
Humor: Be a pointer my friend ...
Be a pointer my friend
Empty your memory,
with a free()...
like a pointer!
If you cast a pointer to a integer,
it becomes the integer,
if you cast a pointer to a struct,
it becomes a struct...
The pointer can crash...,
and can Overflow...
Be a pointer my friend...
Empty your memory,
with a free()...
like a pointer!
If you cast a pointer to a integer,
it becomes the integer,
if you cast a pointer to a struct,
it becomes a struct...
The pointer can crash...,
and can Overflow...
Be a pointer my friend...
Suscribirse a:
Entradas (Atom)
