miércoles, 20 de enero de 2016

Crear Virtual Host en Nginx


Vamos a crear el archivo de host virtual para domain1:

Entra como root en un terminal y coloca la siguiente linea

# nano /etc/nginx/sites-available/domain1.com

Recuerde que debe ajustar la ruta de acuerdo a su instalación. Así que la instalación de la fuente requeriría:

# sudo nano /usr/local/nginx/sites-available/domain1.com

 Los contenidos se ven así:


server {

            listen   80;
            server_name  www.domain1.com;
            rewrite ^/(.*) http://domain1.com/$1 permanent;

           }


server {

            listen   80;
            server_name domain1.com;

            access_log /home/demo/public_html/domain1.com/log/access.log;
            error_log /home/demo/public_html/domain1.com/log/error.log;

            location / {

                        root   /home/demo/public_html/domain1.com/public/;
                        index  index.html;

                        }

            }


Nota: Este ejemplo host virtual es bastante básico. Sin embargo, el siguiente artículo sobre hosts virtuales Nginx incluirá detalles de muchas más opciones de configuración que están disponibles.

El primer módulo de servidor en el archivo es una regla de reescritura simple que vuelve a dirigir a los visitantes a domain1.com de www.domain1.com.

Puede, por supuesto, tener presente a la inversa, si lo prefiere.

El segundo módulo de servidor tiene información muy básica incluyendo el 'server' que es el nombre de dominio que desea servir.

A continuación se definen las ubicaciones de registro para facilitar el análisis y, finalmente, establece la raíz del servidor y el archivo de índice.

Como se ha dicho, se trata de una configuración muy básica en esta etapa. 

sites-enabled

El último paso de configuración es 'permitir' nuestro sitio.
Esto se hace con un enlace simbólico en el directorio 'sites-enabled' de la siguiente manera:

ln -s /etc/nginx/sites-available/domain1.com /etc/nginx/sites-enabled/domain1.com

Una vez más, dependiendo de cómo se instaló Nginx, es posible que tenga que ajustar los caminos:

ln -s /usr/local/nginx/sites-available/domain1.com /usr/local/nginx/sites-enabled/domain1.com

Reiniciar Nginx

Aunque hay una opción de reinicio para el guión de inicio Nginx, no siempre funciona como se espera y no puede facilitar los cambios que ha realizado.

Como tal, le recomiendo un enfoque de parada y arranque en lugar de un simple reinicio:

sudo /etc/init.d/nginx stop ...

sudo /etc/init.d/nginx start

 

jueves, 14 de enero de 2016

Errores y Soluciones en XEN

Error 1:
Error generado al crear una mv llamada constructor:
Creating swap on /dev/vg0/constructor-swap
Done

Creating ext4 filesystem on /dev/vg0/constructor-disk
Done
Installation method: debootstrap
Running command 'xt-install-image --hostname=constructor --location=/tmp/6vnnMmd7_H --dist= --install-method=debootstrap --mirror= --cache=yes --cachedir=/var/cache/apt/archives/ --arch=amd64 2>&1' failed with exit code 256.
Aborting
See /var/log/xen-tools/constructor.log for details
/tmp/6vnnMmd7_H/etc/ssh/ssh_host_rsa_key.pub: No such file or directory
Running command 'umount /tmp/6vnnMmd7_H/proc 2>&1' failed with exit code 8192.
Aborting
See /var/log/xen-tools/constructor.log for details


Solución 1:
Los repositorios no son los de debian debes ingresar a /etc/apt/sources.list y colocar los repositorios oficiales de debian, una vez colocados los repositorios de debian, se debe actualizar el equipo y por ultimo colocar el comando y crear nuevamente la mv

Error 2:
Error generado al levantar la maquina creada con el siguiente comando /etc/xen/constructor.cfg -c
libxl: error: libxl.c:4106:libxl_set_memory_target: new target 0 for dom0 is below the minimum threshold 

failed to free memory for the domain

Solución 2:
La memoria del dom0 se encuentra full ya que hay suficientes maquinas virtuales encendidas y están consumiendo el 100% de la memoria, para poder levantar esta maquina virtual se deben apagar unas de las maquinas virtuales que están encendidas o no estén utilizando

Error 3:
Al iniciar un DOM0 las mv no inician automáticamente

Solución 3:  Si desea que una maquina virtual en especifico sea iniciada automáticamente al inicio del sistema cree un enlace simbólico del archivo de configuración de la Dom0 al directorio /etc/xen/auto, por ejemplo, si desea iniciar automáticamente la maquina de nombre LDAP use:

# ln -s /etc/xen/ldap.cfg /etc/xen/auto

Nota:
Si desea arrancar las maquinas virtuales en un orden en especifico, se recomienda que agregue un sufijo númerico al nombre del enlace simbólico en /etc/xen/auto, por ejemplo: 00fwproxy, 01ns1, 02ldap1, etc.

Error 4:
Al iniciar el DOM0 no inicia el iptables, debido a eso las maquinas que se levanten no navegaran.

Solución 4: Al archivo cortafugefo.sh / iptables.sh se le debe colocar el numero 1 en el archivo --> /proc/sys/net/ipv4/ip_forward luego en el archivo /etc/rc.local se debe colocar al final la ruta donde esta el cortafuego.sh / iptables.sh



Error 5:
Problemas de memoria ram ¿Como asignarle mas memoria al DOM0?

Solución 5: 
Por omisión en un sistema Xen la mayoría de la memoria de los host es asignada al dom0 en el incio y el tamaño de la memoria es dinámicamente modificada (opción "ballooned") de manera automática con el fin de acomodar nuevos invitados (guest) que pueden iniciar en un futuro. 

Como sea en un sistema el cual es dedicado a ejecutar invitados Xen es mejor darle una cantidad estática de RAM y deshabilitar la opción dinámica (ballooning). 

El siguiente ejemplo asigna 1024MB de RAM como reservado al dom0
Para este fin debemos agregar primero la opción dom0_mem en la linea de comando del hipervisor. Esto se hace editando /etc/default/grub y agregando:
# Parámetro para todos los inicios Xen
GRUB_CMDLINE_XEN="dom0_men=1024"

Nota:
Recuerde aplicar el cambio de la configuración de Grub ejecutando update-grub
 
OPCIONAL:
Entonces edita /etc/xen/xend-config.sxp para configurar el conjunto de herramientas que corresponden para cambiar la siguiente configuración:
(dom0-min-mem 1024)  
(enable-dom0-ballooning no) 
En este punto ya deberá reiniciar el dom 0 (host) para que tomen efecto los cambios. 
Error 6:
Reinicio automáticos del DOM0

Solución 6: 
Nota: si Xen se estrella al reiniciar automaticamente, tal vez necesites usar noreboot en las opciones de Xen para prevenirlo de que se reinicie aumoáticamente.

Para esto debe editar el archivo -> /etc/default/grub y agrega la opción "noreboot" en la linea de GRUB_CMDLINE_XEN, por ejemplo: 

GRUB_CMDLINE_XEN="noreboot"

Nota:
Recuerde aplicar el cambio de la configuración de Grub ejecutando update-grub

Error 7
root@bailadores:~# xl create /etc/xen/Hosting.cfg -c
Parsing config from /etc/xen/Hosting.cfg
libxl: error: libxl_exec.c:118:libxl_report_child_exitstatus: /etc/xen/scripts/vif-bridge online [-1] exited with error status 1
libxl: error: libxl_device.c:1085:device_hotplug_child_death_cb: script: Could not find bridge device xenbr0
libxl: error: libxl_create.c:1226:domcreate_attach_vtpms: unable to add nic devices
libxl: error: libxl_exec.c:118:libxl_report_child_exitstatus: /etc/xen/scripts/vif-bridge offline [-1] exited with error status 1
libxl: error: libxl_device.c:1085:device_hotplug_child_death_cb: script: Could not find bridge device xenbr0

Solución 7:
Editar el archivo /etc/xen-tools/xen-tools.conf y ubicar la linea bridge y colocarle br0 que es el puente de la red hacia las ip internas
bridge = br0

Luego editar el archivo /etc/xen/Hosting.cfg ubicar la linea Networking y la vamos a ver así:
#  Networking
#
vif         = [ 'ip=192.168.5.102 ,mac=00:16:3E:46:3A:A9]

#

Y debemos agregarle , bridge=br0' al final de la linea después de la macadress y quedara de la siguiente manera:
#  Networking
#
vif         = [ 'ip=192.168.5.102 ,mac=00:16:3E:46:3A:A9, bridge=br0' ]

#




miércoles, 16 de diciembre de 2015

Verificar que versión tienes instalada

Para saber la versión exacta que tengo instalada, en este caso de Debian, hay que colocar uno de estos dos comandos.
1- Para saber solo la versión que tengo hacemos en la consola:

$ cat /etc/issue.net

2- También tenemos un comando que nos va a dar muchos más detalles

$ lsb_release -a

El comando ls

Quizás uno de los comandos de mayor utilización, sirve para listar archivos.
Su sintaxis es la siguiente:

ls [opciones] [archivo...]
 
Si se ejecuta ls sin argumentos, dará como resultado un listado de todos los archivos (incluyendo directorios) del directorio donde el usuario está posicionado. Sus opciones son:
-a
Lista todos los archivos, incluyendo aquellos que comienzan con un «.» [4]
-d
Lista el nombre del directorio en vez de los archivos contenidos en él.
-l
Lista los archivos con mucho más detalle, especificando para cada archivo sus permisos, el número de enlaces rígidos, el nombre del propietario, el grupo al que pertenece, el tamaño en bytes y la fecha de la última modificación.
-r
Invierte el orden de listado de los archivos.
-s
Muestra el tamaño de cada archivo en bloques de 1024 bytes a la izquierda del nombre.
-h
Muestra los tamaños de archivo en términos de kilobytes, megabytes, etc.
-t
Lista los archivos ordenados por el tiempo de modificación en vez de ordenarlos alfabéticamente.
-A
Lista todos los archivos excepto el «.» y el «..».
-R
Lista los contenidos de todos los directorios recursivamente.
-S
Ordena el listado por el tamaño de los archivos.
--color[=cuándo]
Especifica si emplear color para distinguir los diferentes tipos de archivos. El argumento cuándo puede tener varios valores:
none
No usar colores. Esta opción es la predeterminada.
auto
Usar colores solamente cuando la salida estándar es una terminal.
always
Usar siempre colores. Si ls se usa con la opción --color sin especificar la opción de color, el resultado es el mismo que cuando se usa --color=always.

Ejemplo. Algunos ejemplos utilizando el comando ls
Supónganse que se tiene un directorio /usr/local/papers donde se alojan los documentos de un grupo de redactores de una revista, y se quiere saber cuáles fueron los últimos documentos modificados y su tamaño para su inclusión en el próximo número. Para esto se puede ejecutar el comando ls de la siguiente forma:


$ ls -lhtr /usr/local/papers 


 Como se puede observar, se le pasan 4 opciones al comando ls, de tal manera que muestre un listado extendido, ordenado por tiempos de modificación de forma ascendente y que además muestre los tamaños de archivo en forma más legible. Otra manera de ejecutar el mismo comando es la siguiente:


$ ls -l -h -t -r /usr/local/papers
 

martes, 17 de noviembre de 2015

Como cambiar la zona horaria en Linux desde una terminal

Cambiar la zona horaria de Linux desde una Terminal o línea de comandos es muy sencillo, bastan con ejecutar el comando "tzselect" y elegir nuestra zona horaria, por ejemplo supongamos que vivimos en Mexico y usamos la hora central, lo hacemos de la siguiente forma.

root@monitoreo:/etc/apache2# tzselect

Retorna un resultado como el siguiente.

Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".
 1) Africa
 2) Americas
 3) Antarctica
 4) Arctic Ocean
 5) Asia
 6) Atlantic Ocean
 7) Australia
 8) Europe
 9) Indian Ocean
10) Pacific Ocean
11) coord - I want to use geographical coordinates.
12) TZ - I want to specify the time zone using the Posix TZ format.

Seleccionamos el número 2 que es Americas, luego el número 51 que es Venezuela y por último el número 1 que es el horario central.

Luego veremos una pantalla como la siguiente.
#? 2

Please select a country whose clocks agree with yours.
 1) Anguilla     28) Haiti
 2) Antigua & Barbuda     29) Honduras
 3) Argentina     30) Jamaica
 4) Aruba     31) Martinique
 5) Bahamas     32) Mexico
 6) Barbados     33) Montserrat
 7) Belize     34) Nicaragua
 8) Bolivia     35) Panama
 9) Brazil     36) Paraguay
10) Canada     37) Peru
11) Caribbean Netherlands    38) Puerto Rico
12) Cayman Islands     39) St Barthelemy
13) Chile     40) St Kitts & Nevis
14) Colombia     41) St Lucia
15) Costa Rica     42) St Maarten (Dutch part)
16) Cuba     43) St Martin (French part)
17) Curacao     44) St Pierre & Miquelon
18) Dominica     45) St Vincent
19) Dominican Republic     46) Suriname
20) Ecuador     47) Trinidad & Tobago
21) El Salvador     48) Turks & Caicos Is
22) French Guiana     49) United States
23) Greenland     50) Uruguay
24) Grenada     51) Venezuela
25) Guadeloupe     52) Virgin Islands (UK)
26) Guatemala     53) Virgin Islands (US)
27) Guyana

#? 51

The following information has been given:

Venezuela

Therefore TZ='America/Caracas' will be used.
Local time is now: mar nov 17 14:07:08 VET 2015.
Universal Time is now: mar nov 17 18:37:08 UTC 2015.
Is the above information OK?
1) Yes
2) No

Si todo está correcto seleccionamos "1" y listo.
#? 1

You can make this change permanent for yourself by appending the line
TZ='America/Caracas'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
America/Caracas

Ahora si queremos que este cambio se haga permanentemente entre reinicios de nuestra PC, agregamos la siguiente línea en nustro archivo .profile

TZ='America/Caracas'; export TZ

Otra forma de hacer lo mismo es con los siguientes comandos.

$ rm /etc/localtime
$ ln -s /usr/share/zoneinfo/America/Caracas /etc/localtime

Otra forma es colocando como root el siguiente comando 

#dpkg-reconfigure tzdata

Una vez que colocas el comando seleccionas America

y en la proxima pantalla seleccionas Caracas

y por ultimo arrojara el siguiente texto 

Current default time zone: 'America/Caracas'
Local time is now:      Tue Nov 17 14:49:10 VET 2015.
Universal Time is now:  Tue Nov 17 19:19:10 UTC 2015.

jueves, 12 de noviembre de 2015

Comprimir y descomprimir .gz, .tar.gz, y .zip por linea de comandos en Linux

Archivos .tar.gz:
Comprimir: tar -czvf empaquetado.tar.gz /carpeta/a/empaquetar/
Descomprimir: tar -xzvf archivo.tar.gz

Archivos .tar:
Empaquetar: tar -cvf paquete.tar /dir/a/comprimir/
Desempaquetar: tar -xvf paquete.tar

Archivos .gz:
Comprimir: gzip -9 index.php
Descomprimir: gzip -d index.php.gz

Archivos .zip:
Comprimir: zip archivo.zip carpeta
Descomprimir: unzip archivo.zip

Buscar archivos que contengan un texto en Linux

Para buscar archivos que contengan un cierto texto en Linux podemos utilizar el comando grep.

Su uso es muy sencillo. Basta con pasar como argumentos una cadena de texto a buscar (o una expresión regular) y el archivo o archivos en los que buscar.

grep “TODO” /home/zootropo/codigo/*.py

También podemos hacer que busque en todos los archivos contenidos en un cierto directorio, de forma recursiva, utilizando el flag -r:

grep -r “TODO” /home/zootropo/codigo/

El parámetro -l le indica que imprima los nombres de archivos en los que se encuentre el texto solicitado. 

grep -lir "usemos linux" "/media/win/cosas"

grep -lir "usemos linux" *.pdf