29 mar

Dbcheck de la base de datos Bacula

Vamos hablar muy rapidamente del comando dbcheck, que nos permite limpiar la base de datos de Bacula de registros que esten mal y que ya no sean utiles, por norma general esto nunca nos deberia pasar ya que si todas las tareas empiezan y terminan bien, los registros deben ser correctos, aun asi en ciertas situaciones con muchos Jobs y muchos clientes nos puede pasar.

La solución muy muy sencilla, utilizamos en comando DBCHECK

Tal que así,

dbcheck  -c /usr/local/etc/bacula-dir.conf -v

Con la opción -c le damos la ruta del fichero de configuracion de bacula-dir, nos mostrá todas las posibles opciones.

Hello, this is the database check/correct program.
Modify database is off. Verbose is on.
Please select the function you want to perform.

1) Toggle modify database flag
2) Toggle verbose flag
3) Check for bad Filename records
4) Check for bad Path records
5) Check for duplicate Filename records
6) Check for duplicate Path records
7) Check for orphaned Jobmedia records
8) Check for orphaned File records
9) Check for orphaned Path records
10) Check for orphaned Filename records
11) Check for orphaned FileSet records
12) Check for orphaned Client records
13) Check for orphaned Job records
14) Check for all Admin records
15) Check for all Restore records
16) All (3-15)
17) Quit

La opción 16, que somos valientes.

Select function number: 16
Checking for Filenames with a trailing slash
Found 0 bad Filename records.
Checking for Paths without a trailing slash
Found 1 bad Path records.
Print them? (yes/no): yes

Checking for duplicate Filename entries.
Found 0 duplicate Filename records.
Checking for duplicate Path entries.
Found 0 duplicate Path records.
Checking for orphaned JobMedia entries.
Checking for orphaned File entries. This may take some time!
Pruning orphaned Path entries isn't possible when using BVFS.
Note. Index over the FilenameId column not found, that can greatly slow down dbcheck.
Create temporary index? (yes/no): yes
Create temporary index... This may take some time!
CREATE INDEX idxFIchk ON File (FilenameId)
Temporary index created.
Checking for orphaned Filename entries. This may take some time!
Found 300000 orphaned Filename records.
Print them? (yes/no):

Y nada vamos dándole al yes/no según creamos oportuno las preguntas que nos hace.

Ale a disfrutarlo!

27 mar

Instalación de rutorrent

Bueno,

Voy a explicar como montar rutorrent + nginx +php-fpm, esta solución esta pensada sobretodo para la raspperry, ya que es muy liviano y la verdad es que después de mucho tiempo me parece de las mejores soluciones, también aprovechamos la instalacion con nginx+php-fpm que explique en el siguiente tutorial

rutorrent

Es una web que se integra con el cliente rtorret, de tal manera que lo hace muy amigable, yo personalmente estuve mucho tiempo jugando con rtorrent por consola, fue más montar el chirringo que lo que me aporto…

La web del proyecto es http://code.google.com/p/rutorrent/

Bueno pues explicado esto vamos al lio.

Primero de todo vamos actualizar el sistema operativo, todos los comandos están basados en debian.

sudo apt-get update && sudo apt-get upgrade

sudo apt-get install xmlrpc-api-utils

Ahora vamos a descargar el código de rutorrent, por defecto yo tengo el código de la web en /var/www.

cd /var/www/
wget http://rutorrent.googlecode.com/files/rutorrent-3.5.tar.gz
wget http://rutorrent-tadd-labels.googlecode.com/files/lbll-suite_0.8.1.tar.gz
wget http://rutorrent.googlecode.com/files/data-3.3.tar.gz
wget http://rutorrent.googlecode.com/files/erasedata-3.3.tar.gz
wget http://rutorrent.googlecode.com/files/ratio-3.3.tar.gz
wget http://rutorrent.googlecode.com/files/seedingtime-3.3.tar.gz
wget http://rutorrent.googlecode.com/files/tracklabels-3.3.tar.gz
wget http://srious.biz/nfo.tar.gz

tar xvfz rutorrent-3.5.tar.gz
rm -rf rutorrent-3.5.tar.gz
tar -zxvf lbll-suite_0.8.1.tar.gz
tar -zxvf data-3.3.tar.gz
tar -zxvf erasedata-3.3.tar.gz
tar -zxvf ratio-3.3.tar.gz
tar -zxvf seedingtime-3.3.tar.gz
tar -zxvf tracklabels-3.3.tar.gz
tar -zxvf nfo.tar.gz

mv lbll-suite data erasedata ratio seedingtime tracklabels nfo /var/www/rutorrent/plugins
rm lbll-suite_0.8.1.tar.gz data-3.3.tar.gz erasedata-3.3.tar.gz ratio-3.3.tar.gz seedingtime-3.3.tar.gz tracklabels-3.3.tar.gz nfo.tar.gz

Bueno con esto ya tenemos el código de la web, ahora debemos configurar rtorrent y nginx para que puedan trabajar con el, empezamos por rtorrent, nos iremos al fichero de configuración, recordar que si habéis seguido este post de instalación, deberías tener el fichero de configuración en la home de vuestro usuario, si no es así pues allá donde lo tengáis

vim  ~/.rtorrent.rc

Añadiremos al final del fichero la siguiente linea, y reiniciamos rtorrent, en el caso de no tener el script que puse en el post anterior, reiniciarlo como lo soléis hacer, la segunda linea es para que cargue los plugins de rutorrent cada vez que arranca rtorrent, es opcional, fijaros en las rutas y en el usuario que debe ser aquel con el que arranques rtorrent

scgi_port = 0.0.0.0:5000
execute = {sh,-c,/usr/bin/php /var/www/rutorrent/php/initplugins.php usuario &}
sudo /etc/init.d/rtorrentInit.sh restart

Ahora vamos a por el nginx, primero vamos a poner los parámetros de comunicación de scgi. Iremos y pegaremos lo siguiente

sudo vim /etc/nginx/scgi_params

scgi_param      REQUEST_METHOD          $request_method;
scgi_param      REQUEST_URI             $request_uri;
scgi_param      QUERY_STRING            $query_string;
scgi_param      CONTENT_TYPE            $content_type;

scgi_param      DOCUMENT_URI            $document_uri;
scgi_param      DOCUMENT_ROOT           $document_root;
scgi_param      SCGI                    1;
scgi_param      SERVER_PROTOCOL         $server_protocol;

scgi_param      REMOTE_ADDR             $remote_addr;
scgi_param      REMOTE_PORT             $remote_port;
scgi_param      SERVER_PORT             $server_port;
scgi_param      SERVER_NAME             $server_name;

Debemos activar el site, para que nginx lo haremos haciendo un ln del fichero rturront

ln -s /etc/nginx/sites-available/rutorrent /etc/nginx/sites-enabled/rutorrent

Y ahora vamos a configurar el nginx para que se entienda con todo. En el fichero de configuración  de nuestro site, añadimos.

sudo  vim /etc/nginx/sites-available/rutorrent
server {
 listen 80;
 root /var/www;
#client_max_body_size 4096M;
 listen 443 ssl;
location /rutorrent {
index index.php index.html;
auth_basic "Restricted";
auth_basic_user_file /var/www/rutorrent/.htpasswd;
}

location /RPC2 {
include /etc/nginx/scgi_params;
scgi_pass 127.0.0.1:5000;
}

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
try_files $uri =404;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;

}

location ~/.ht {
deny all;
}

Por ultimo añadiremos si quereis un password a través de .htpasswd, para que nos lo pida cuando accedamos a la web.

Debemos instalar el paquete apache2-utils, para disponer de la opción

htpasswd -cb .htpasswd usuario contraseña

Y copiamos el fichero que genero en la ruta donde le dijimos al nginx

cp -a  .htpasswd /var/www/rutorrent/.htpasswd

Le damos permisos a nginx

sudo chown -R www-data:www-data /var/www/rutorrent

Recargamos el nginx para la nueva configuración.

sudo /etc/init.d/nginx reload

Y accedemos por web http://ip/rutorrent

Ale a disfrutarlo

22 mar

Instalación de rtorrent en debian.

Bueno hoy voy a explicar como instalar el cliente de torrent, rtorrent, si que es verdad que hay miles de manuales para instalar transsmision, pero la idea de utilizar este cliente que es muy muy liviano y funciona a las mil maravillas, sobretodo en máquinas de poca potencia como rasppery, os diere que se saque esta solución es para consola…(vivamos en la consola :)) más adelante os explicare como integrarlo con rutorrent + nginx.

rtorrent

Es un cliente de torrent única y exclusivamente por consola, libtorrent es el núcleo, hecho en c++ y esta pensado para dar gran rendimiento y muy poca carga, genial para la situación actual.

Esta es la pagina del proyecto http://libtorrent.rakshasa.no/ y os diré que la documentación es sublime.

Primero de todo vamos actualizar el sistema operativo, todos los comandos están basados en debian.

sudo apt-get update; sudo apt-get upgrade

Ahora instalamos los paquetes necesarios

sudo apt-get install rtorrent screen

Utilizaremos el usuario normal para arrancar el rtorrent, así pues vamos a configurar el cliente, tener en cuanta que como supongo que tenéis un HD externo para las descargas, os recomiendo que lo formareis en ext3 o ext4, ya que el ntfs le sienta bastante mal, por la falta de recursos.

La configuración de rtorrent se hace en el fichero ~/.rtorrent.rc, en la home de nuestro usuario, este fichero tiene muchas opciones, como siempre os pongo las que yo utilizo que va bastante bien, podéis bajaros la plantilla de a rtorrent y trabajar sobre ella, lo puse en doc, ya que el worpress no me deja subir ficheros .rc, pero cambiarle la extensión.

vim  ~/.rtorrent.rc

Numero máximo y mínimo de peers

min_peers = 40
max_peers = 52

Same as above but for seeding completed torrents (-1 = same as downloading)

min_peers_seed = 10
max_peers_seed = 20

Maximum number of simultanious uploads per torrent.

max_uploads = 10

Velocidad de subida y bajada, es muy interesante el tema de “schedule”, ya que ahí podremos definir durante que horas limitaremos la descarga y durante que horas dejaremos que baje y suba a todo lo que pueda.

download_rate = 300
upload_rate = 50
schedule = throttle_1,01:00:00,24:00:00,download_rate=0
schedule = throttle_2,10:00:00,24:00:00,download_rate=300

Directorio donde irá descargando los archivos hasta que estén completos y donde irá grabando el control de la sesión de la bajada del torrent

directory = /mnt/descargas/incomplete
session = /mnt/descargas/incomplete

Esta linea esta muy bien, le diremos que nos mueva a otra carpeta aquellos torrent que hayan finalizado, la sintaxis de la linea es un poco compleja, pero si os fijáis rtorrent utiliza métodos para trabajar y hay miles que podemos encontrar en su pagina web, pero poder hacer cosas muy muy chulas.

system.method.set_key = event.download.finished,move_complete,;execute=mv,-u,$d.get_base_path=,/mnt/descargas/descargados;

Vamos a crear el directorio donde el irá mirando si existen torrents nuevos, en el caso de encontrar lo añadirá automáticamente.

schedule = watch_directory,5,5,load_start=/mnt/descargas/torrent/*.torrent

También vamos a poner un control, para evitar que nos quedemos sin espacio en el disco, en este caso, parara todos los torrents cuando el espacio sea inferior a 100mb

schedule = low_diskspace,5,60,close_low_diskspace=100M

También podemos controlar el ratio de envío, partiendo de la base que debemos compartir ya que es la base del sistema (COMPARTIR!!), yo dejo las descargas de las isos de linux, durante largas semanas para que otros se puedan beneficiar, pero bueno podemos poner un limite, para que rtorrent pare cuando llegue a unos valores.

Creo que siempre es bueno no quitar el fichero hasta conseguir un ratio de 2.0, así que esta es la linea para conseguir eso.

schedule = ratio,60,60,"stop_on_ratio=200,200M,2000";

Animo, que ya falta poco…

Le vamos a decir en que puertos tiene que escuchar, y claro esos puertos deben estar abiertos en el route

port_range = 49151-49151

Podemos decirle que verifique los archivos descargados a través de hash.

check_hash = yes

Y por ultimo los logs, para ver que esta haciendo y si da algún fallo.

log.execute=/mnt/usb/rtorrent.log

Bueno pues grabamos y ya tenemos el fichero.

Ahora vemos a utilizar screen, para lanzar el rtorrent.

Comandos básicos de screen.

Para abrir un terminal nuevo con screen simplemente debemos teclear screen, se nos muestra un mensaje, pulsamos enter y a continuación se nos abre el terminal de toda la vida.

La siguiente combinación de teclas para “desengancharnos” del terminal: CTRL-A + d. Es decir, pulsamos CTRL y A al mismo tiempo y a continuación D. Y se mos mostrará el mensaje “Detached”.

Para “reengancharnos” de nuevo a nuestro terminal mediante el comando screen -r que hace un reattach al terminal

Múltiples terminales con screen
Podemos abrir varios terminales simultáneamente con screen pero a la hora de “reengacharnos” con screen -r nos pedira el identificador del terminal además de mostrarnos una lista de PIDs asociados. Para “reengancharnos” a un terminal concreto debemos teclear screen -r PID, donde PID es el identificador del terminal que nos interesa.

Cerrar terminales
Para cerrar un terminal basta con ejecutar exit una vez estemos enganchados al terminal o bien teclear la combinación CTRL-A + C.

screen

Ahora ejecutamos rtorrent

./rtorrent

Y veremos algo así

Captura de pantalla de 2013-03-22 13:23:52rtorrent
Por supuesto no tendremos nada bajando, si colocamos algun torrent en nuestra carpeta watchdir, los veremos aparecer.

Comandos básicos
http://libtorrent.rakshasa.no/wiki/RTorrentUserGuide

Con esto ya tendremos nuestro rtorrent corriendo, para dejarlo en “segundo plano” haremos CTRL-A + d.

Si queremos que arranque automáticamente con el sistema podemos utilizar este rtorrentInit (como el otro caso, es un fichero de arranque tiene la extensión doc, gracias a wordpress), donde veremos modificar las lineas:

user=usuario

logfile=/mnt/descargas/rtorrentInit.log

Lo copias en /etc/init.d/ y lo añadimos al arranque con

update-rc.d mydaemon defaults

Ale a disfrutarlo!!

19 mar

Instalacion de VPN PPTP en debian

En este post vamos explicaremos como montar una VPN PPTP en debian, el motivo del PPTP es porque lo monte en la raspperry pi, y el ipsec no estaba disponible y por OpenVPN(la solución mas profesional) pues requiere de cliente y de más, por ello como la quería para casa, pues algo sencillo y funcional.

Dicho esto vamos al lio.

Primero de todo vamos a instalar los paquetes necesarios.

sudo apt-get install pptpd

Una vez instalado deberíamos tener ya todos los ficheros de configuración, para poderles meter mano.

Pues vamos a por ello

Primero vamos a modificar el fichero pptpd.conf

sudo vi /etc/pptpd.conf

Donde modificaremos las directrices siguientes

localip 192.168.1.100
remoteip 192.168.1.234-238

La primer pondremos en la ip donde escuchara nuestro servidor de VPN, y en la segunda la ip que se podrán asignar a los clientes que se conecten.

Vamos a por el siguiente, pptpd-options

sudo vi  /etc/ppp/pptpd-options

Configuramos o añadimos en el caso que no estén las siguientes lineas.

name nombredelaconexion
 require-mschap-v2
 require-mppe-128
 ms-dns 172.16.1.1
 proxyarp
 nodefaultroute
 lock

refuse-pap
refuse-chap
refuse-mschap

mtu 1490
mru 1490

nobsdcomp

Por ultimo vamos a configurar los usuario y accesos, esto lo hacemos en el fichero chap-secrets

sudo vi /etc/ppp/chap-secrets

# client        server  secret                  IP addresses
usuario   nombredelaconexion   contraseña      *

Reiniciamos es servicio y ya tendremos la vpn configurada, ahora debemos probar de conectarnos a ella desde cualquier cliente PPTP

sudo /etc/init.d/pptpd restart

Por último debemos activar net.ipv4.ip_forward = 1  en el fichero /etc/sysctl.conf

Por supuesto debemos abrir el puerto PPTP TCP 1723 en el router.

Ale a disfrutarlo!

12 mar

Instalación de Owncloud 4.5 + nginx + php-fpm en raspbian

Hace poco me compre una raspberry pi, y bueno intentando sacarle un poco mas de provecho monte un owncloud, lo primera vez lo hice con Apache+php, pero debido aque tengo alguno que otra cosa corriendo en la raspberry, pues se ahogaba nada más empezar…

Así que lo monte con lo siguiente:

Owncloud 4. 5 + nginx + php-fpm

Primero de todo vamos a instalar nginx y lo arrancamos

sudo apt-get install nginx

sudo /etc/init.d/nginx start

Podemos comprobar que el proceso se hizo correctamente haciendo una petición al puerto 80 de nuestra raspberry.

Ahora instalaremos el php-fpm

sudo apt-get install php5-fpm
sudo apt-get install php-xml-parser php5-intl
sudo apt-get install php5-sqlite smbclient curl libcurl3 php5-curl

Bueno pues ya tenemos instalado el tema, ahora lo que debemos hacer es que se empiecen hablar entre ellos dos, vaya que se lleven bien….

Primero vamos a configurar php5-fpm, iremos

sudo vim /etc/php5/fpm/php-fpm.conf

Aquí modificaremos las siguientes lineas según nuestra configuración, yo por ejemplo tengo añadido un usb a la raspberry, de tal manera que envío allí los logs de los servicios(por supuesto tiene que tener permisos el usuario para escribir), evitando que machaque a la tarjeta SD donde esta el SO.

error_log = /mnt/usb/fpm-log/php5-fpm.log
log_level = warning
include=/etc/php5/fpm/pool.d/*.conf

Después en el php.ini configuraremos las opciones de subir ficheros

sudo vi /etc/php5/fpm/php.ini
file_uploads = On
upload_tmp_dir = /mnt/descargas/owncloud/tmp
upload_max_filesize = 4096M
max_file_uploads = 5000
memory_limit = 128M

Importante, el valor upload_max_filesize, ya que es uno de los dos que limitara el tamaño máximo de fichero que podremos subir, también deberemos mirar el valor de la memoria, ya que como bien sabemos nuestra raspberry no dispone de mucha, según el modelo que tengáis y la carga que tenga vuestro sistema asignar este valor.

Importante también el directorio donde vamos a subir el fichero temporal, pensar que si lo dejáis por defecto es probable que os quedéis sin memoria en el SD, bueno con este ya hemos acabado vamos a por el siguiente

En el www.conf, se define la ip de escucha del php-fpm y el puerto.

sudo vi  /etc/php5/fpm/pool.d/www.conf
listen.allowed_clients = 127.0.0.1
listen = 0.0.0.0:9000
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3

Los valores de pm, son importantes, después de hacer diferentes pruebas los que pongo son suficientes para tener un rendimiento decente, por cierto mi raspberry es el modelo de 512MB.

Ahora reiniciamos el fpm

sudo /etc/init.d/php5-fpm restart

Para configurar nginx iremos al fichero nginx.conf

sudo vi /etc/nginx/nginx.conf

Bueno, en el fichero de configuración pondremos mas o menos lo que a cada uno nos interese, yo personalmente solo modifique las lineas siguiente,

user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
worker_connections 768;
# multi_accept on;
}

Ahora vamos a configurar el site para owncloud en nginx.

cd /etc/nginx/sites-available/
sudo vi owncloud

Dentro del fichero de owncloud pondremos, (mirar las rutas y modificaras según vuestro entorno.)

server {
listen 80;
root /var/www;
client_max_body_size 4096M;
listen 443 ssl;
server_name ***.***.com;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
try_files $uri =404;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;

}

location ~ ^/owncloud/remote.php(/.*)$ {
fastcgi_split_path_info ^(.+.php)(/.*)$;
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
#rewrite ^ https://$server_name$request_uri? permanent;
fastcgi_param HTTPS on;

}

# owncloud <a class="zem_slink" title="WebDAV" href="http://en.wikipedia.org/wiki/WebDAV" target="_blank" rel="wikipedia">WebDAV</a>
location @webdav {
fastcgi_split_path_info ^(.+.php)(/.*)$;
fastcgi_pass 127.0.0.1:9000; # or use php-fpm with: "unix:/var/run/php-fpm/php-fpm.sock;"
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;
include fastcgi_params;
fastcgi_param HTTPS on;
}
}

Los puntos en negrita son los que hay que tener cuidado, ya que depende de cada entorno. Este valor “client_max_body_size 4096M;”, debe ser el mismo que pusimos en php, que es el tamaño maximo del fichero que vamos a permitir, la parte de webDAV es necesaria en el caso que queramos utilizar el cliente de owncloud.

Vamos a crear los certificados para las conexiones SSL.

Los pasos son:

  1. Generar la clave RSA
  2. Generar el CSR(aqui el Common Name debe ser el nombre del dominio)
  3. Eliminar la clave privada DES3
  4. General certificado autofirmado
  5. Poner las rutas en el fichero de owncloud
openssl genrsa -des3 -out server.key 1024
openssl req -new -key server.key -out server.csr

Country Name (2 letter code) []:
State or Province Name (full name) []:
Locality Name (eg, city) []:
Organization Name (eg, company) []:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:
Email Address []:
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

cp server.key server.key.org
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Ahora vamos a crear el link simbólico del site.

sudo ln -s /etc/nginx/sites-available/owncloud /etc/nginx/sites-enabled/owncloud

Comprobamos que la configuración es correcta.

sudo -i
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Por ultimo, pero no menos importante, vamos a bajar el owncloud

wget http://mirrors.owncloud.org/releases/owncloud-4.5.7.tar.bz2
tar zvfj owncloud-4.5.7.tar.bz2
mv owncloud /var/www/ && chown -R www-data:www-data /var/www/owncloud

Por ultimo accedemos a la url http://ip/owncloud y empezamos la configuración, recordar que durante la configuración podréis elegir el lugar donde dejará los archivos.

Eso es todo,

Ale a disfrutarlo!

11 mar

Resetear base de datos y ficheros de bacula

Tenemos un entrono con Bacula configurado, y nos ponemos en el supuesto que queremos resetear la base de datos con los ficheros, para empezar de nuevo.

Primero de todo vamos hacer una copia de sguridad de la base de datos, por si se nos va la mano más de la cuenta.

/usr/bin/mysqldump bacula > bacula_antes_purge.sql

Ahora pararemos bacula.
En freebsd

/usr/local/etc/rc.d/bacula-dir onestop
/usr/local/etc/rc.d/bacula-sd onestop

En debian

service bacula-director stop
service bacula-sd       stop

Después eliminamos la base de datos y la volvemos a crear

mysql -u root -p
drop database bacula;
create database bacula;
quit

Ahora solo nos queda recrear las tablas, para ello vamos a utilizar el script que nos da bacula y lo ejecutamos tal que

Dependiendo de nuestro SO, estará en un lugar u otro.

~/make_mysql_tables

Una vez finalizado, podemos si queremos eliminar los fichero de copias de seguridad y empezar de nuevo o arrancar el servicio y alinear los ficheros de copia de seguridad con el catálogo.

Primero,

service bacula-director start
service bacula-sd       start
o
service bacula-director start
service bacula-sd       start

Ahora ya tenemos el director, con la nueva base de datos, en el caso que tengamos ficheros de copia de seguridad, podemos volver a cargarlos en el catalogo tal que:

/usr/local/sbin/bscan -V nombredelVOl -v -s -m -c /usr/local/etc/bacula-sd.conf /storage/bacula/

Podemos hacer un script que nos vaya cargando los ficheros de forma sencilla, como os imaginéis en el caso de tener muchos datos, pues darle al play y echaros a dormir.

Ale a disfrutarlo

08 mar

Exportar el Display.

Ejecutar cliente owncloud desde terminal.

El otro día me encontré con la necesidad de ejecutar una aplicación desde terminal(owncloud client), pero requería de un entorno gráfico para poder ser ejecutada, en estos casos podemos utilizar la opción de exportar la variable display de nuestro usuario, siempre y cuando este tenga las X levantadas.

Haremos,

 export DISPLAY=:0

Y ejecutaremos el programa. 

 

BIEEEEENNNNN!

08 mar

Instalación de PowerCLI VMWARE.

 

 La instalación de PowerCLI es bastante trivial, sabemos que únicamente debemos ir a la pagina de VMware y realizar la descarga del .exe, ingresando con nuestro usuario de VMware.

A día de hoy el enlace es: VMware PowerCLI, tenemos de dos alternativas, la versión “estandar” que es la que denominan VMware VSphere PowerCLI y la versión “for tenants”, básicamente esta segunda opción es para gestionar diferentes sistemas de VMware, como no es nuestro caso, todo lo que vaya escribiendo estará en base a la primera versión. 

 Es probable que una vez instalado lo vayamos a ejecutar y nos de el siguiente error.

 No se puede cargar el archivo XXX, porque en el sistema está deshabilitada la ejecucion de scripts.

Bueno pues lo que debemos hacer es muy sencillo, debemos ejecutar el comando 

Get-ExecutionPolicy

Si nos devuelve Restricted, ahí tenemos el problema.

Ejecutamos entonces.

Set-ExecutionPolicy Unrestricted</span>

Y le decimos que si.

Cerramos y volvemos abrir, nos debería salir algo como esto: 

Pues entonces ya estamos listo para conectarnos a nuestro entorno. 

 

BIEEEEEENNNN!!!

07 mar

Como actualizar router CISCOS

Vamos a dar los pasos para actualizar un router cisco.

Primero vamos a mirar en que versión nos encontramos

show ver

Compiled Tue 15-Nov-11 22:10 by prod_rel_team
ROM: System Bootstrap, Version 15.0(1r)M9, RELEASE SOFTWARE (fc1)

Ahora debemos subir la ISO nueva través de TFTP haremos…

GRPHDQRT02#copy tftp flash
Address or name of remote host []? 10.11.1.10
Source filename []? c2900-universalk9-mz.SPA.153-1.T.bin
Destination filename [c2900-universalk9-mz.SPA.153-1.T.bin]?
Accessing tftp://10.11.1.10/c2900-universalk9-mz.SPA.153-1.T.bin...

Ahora entramos en terminal y seleccionamos la imagen que hemos subido.

configure t
(config)#boot system flash:c2900-universalk9-mz.SPA.153-1.T.bin

Lo comprobamos y guardamos

(config)#do sh run | inc system
boot system flash:c2900-universalk9-mz.SPA.153-1.T.bin
Individuals using this computer system without authority, or
their activities on this system monitored and recorded by
system personnel.
Anyone using this system expressly consents to such
monitoring and is advised that system personnel may provide
(config)#do wr
Building configuration...
[OK]

Por ultimo podemos programar el reinicio del router a las X horas, con

# reload in hh:mm

07 mar

Comandos útiles para zpool

Vamos a poner una lista de comandos útiles para “gestionar” nuestro zpool montado en freebsd, aquí podemos ver como montarlo.

Control de zpool

Eliminar un pool y liberar los discos.

zpool destroy pool

Añadir un disco al pool o añador un disco en spare a un pool existente

zpool add pool disco
zpool add pool spare disco

Comporbar el checksumde todo el pool en busca de errores

zpool scrub pool

Parar un disco y ponerlo otra vez en marcha

zpool offline pool disco
zpool online pool disco

Cambiar un disco por otro

zpool remplace pool discoviejo disconuevo

Información sobre zpool

zpool list
zpool status

Comprobar los accesos

zpool iostat -v 2

Comprobar si un volumen tiene compresión y el ratio

zfs get compression pool
backups  compression  gzip-9    local
zfs get compressratio pool
backups  compressratio  3.89x  -

Comprobar la deduplicacion y el ratio

zfs list pool
NAME      SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
backups  2.33T   123G  2.21T     5%  1.45x  ONLINE

Podemos hace una simulación de lo que podíamos ganar en el caso de activar la deduplicacion en un pool, con el comando

zdb -S pool

Podemos ir comprobando lo que hemos ganado con la deduplicacion y compresion con el comando siguiente.

zdb -D pool
zdb -DD pool

Que nos devolverá información básica o detallada del pool.

Ejemplo basico

DDT-sha256-zap-duplicate: 2682724 entries, size 356 on disk, 166 in core
DDT-sha256-zap-unique: 14651367 entries, size 335 on disk, 150 in core
dedup = 2.42, compress = 3.52, copies = 1.00, dedup * compress / copies = 8.48

Managemen zpool

Establecer una cuota a un pool

zfs set quota=tamaño pool

Almacenar varias copias de cada archivo. Esto establece un nivel de redundancia a mayores sobre lo que ya ofrece el ZPoll. El espacio que ocupa el archivo se multiplica

zfs set copies=3 pool

Crear un snapshot

zfs snapshot [email protected]
zfs list -t snapshot
 zfs list -t snapshot -o name,creation

Volver a un snapshot y eliminarlo

zfs rollback /@
zfs destroy /@

Con esto podemos ir tanteando el mundo de zfs… para más información http://www.freebsd.org/doc/en/books/handbook/index.html