martes, 20 de noviembre de 2012

Instalación de java en Fedora

Primero descargar desde http://java.sun.com/javase/downloads/index.jsp, tratar de bajar la ultima versión de java o la que necesiten.

nota: Bajar la version .tar.gz y NO la .rpm

Una vez hemos descargado la versión de Java adecuada procedemos a instalar algunas dependencias necesarias (Requiere contraseña de root):

$ su -c 'yum install compat-libstdc++-33 compat-libstdc++-296'

Una vez instaladas creamos el enlace de las nuevas librerías digitando en consola (Requiere contraseña de root):


$ su -c '/sbin/ldconfig'

Ahora procedemos a instalar Java. Asumiendo que el instalador quedó en la carpeta Descargas ejecutamos en consola (Requiere contraseña de root) (una instrucción por línea):

$ su -
# cd Descargas/
# tar zxvf jdk-7u02-linux-i586.tar.gz
# mv jdk1.7.0_02 /opt

Una vez hecho esto es momento de hacer nuestra instalación la predeterminada en el sistema; primero creamos el archivo java.sh (puedes reemplazar nano por tu editor de texto favorito, como por ejemplo gedit o kwrite):
$ su -c 'yum -y install nano'
$ su -c 'nano /etc/profile.d/java.sh'

Dicho archivo debe contener las siguientes líneas:

export JAVA_HOME=/opt/jdk1.7.0_02
export PATH=$JAVA_HOME/bin:$PATH
 
Guarda y cierra el editor de texto (Ctrl+O y Ctrl+X en nano), a continuación digita en una terminal (como root):



# source /etc/profile.d/java.sh
# alternatives --config java



Verás algo en pantalla como:



There is 1 programs which provide 'java'.
Selection     Command
-----------------------------------------------
*+ 1         /usr/lib/jvm/jre-1.6.0-openjdk/bin/java
     
Enter to keep the current selection[+], or type selection number:



Nos muestra la lista de programas que proveen la funcionalidad de Java. 
En este caso sólo hay uno así que agregaremos el número 2. Si el comando
 no muestra nada, no te preocupes, significa que no hay una instalación 
de Java y para eso estamos aquí. Con el 
siguiente comando agrega tu instalación: 

# alternatives --install /usr/bin/java java /opt/jre1.7.0_02/bin/java 2

Nota: Si no tienes ningún programa que provea Java reemplaza el número 2 por un 1. Si hubieran 2 programas ajusta el comando reemplazando el 2 del final por un 3 y así sucesivamente.
Con éste comando se debió haber agregado nuestra versión de Java, así que una vez más ejecuta:

$ alternatives --config java
Ahora deberías ver algo como:

There are 2 programs which provide 'java'. Selection Command ----------------------------------------------- *+ 1 /usr/lib/jvm/jre-1.6.0-openjdk/bin/java 2 /opt/jdk1.7.0_02/bin/java Enter to keep the current selection[+], or type selection number:
Ingrese el número de la opción que ingresamos (por ejemplo 2). Si todo salió bien digita en consola:

$ java -version
Debes ver algo como:

java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) Client VM (build 23.5-b02, mixed mode)

Agregando el plugin de Java a Firefox

Finalmente agregamos el plugin a Firefox digitando en una terminal (Ejecuta como root):

alternatives --install /usr/lib/mozilla/plugins/libjavaplugin.so libjavaplugin.so /opt/jdk1.7.0_02/jre/lib/i386/libnpjp2.so 2

Una vez hecho ésto reinicia el navegador Firefox y visita el sitio de Sun para verificar la instalación http://www.java.com/es/download/installed.jsp

jueves, 4 de octubre de 2012

Cron en Linux

Qué es el cron: Es un programa de Linux que permite la ejecución de tareas automatizadas a una hora o fecha especificada. Es el equivalente a los at de windows. Este programilla viene integrado en casi todas las distribuciones de Linux.

Iniciar Servicio del Cron: El cron es un demonio (servicio), que autoarranca al iniciar el sistema operativo, sin embarga a veces se requiere de subir o bajar el servicio a dispocición para ello ocuparemos los siguientes comandos:

pregunta si esta activo:


#> /etc/rc.d/init.d/crond status
#> /etc/init.d/crond status   
crond (pid 507) is running...


#> service crond status
crond (pid 507) is running...


# ps -ef   |  grep crond


#> /etc/rc.d/init.d/crond start
Starting crond:            [ OK ]

o bien quieres bajar el sevicio:


#> /etc/rc.d/init.d/crond stop
Stopping crond:            [ OK ]


Usando Cron: hay mas de una forma de utilizar este servicio, sin embargo, explicare solo una que es de modificar directamente el archivo.


crontab -e

con el comando anterior editamos directamente el archivo.
una vez abierto si este no esta vacío deberíamos ver un cosa así:


0 22 * * * root /usr/respaldodiario.sh                           
* *  * * * root/usr/ejempl2.sh                                   
0 23 * * 5 root /usr/respaldosemanal.sh                          
0 8,20 * * * sergio mail -s "sistema funcionando" sgd@ejemplo.com


en este caso le ingresaremos un archivo .sh el cual ejecuta una serie de procesos y que se ejecutara cada 1 minuto de cada hora.


0 22 * * * root /usr/respaldodiario.sh                           
* * * * * root/usr/ejempl2.sh                                   
0 23 * * 5 root/usr/respaldosemanal.sh                          
0 8,20 * * * sergio mail -s "sistema funcionando" sgd@ejemplo.com
* * * * *  root/usr/archivo.sh


para guardar podemos usar los comandos del vim :x


Resumiendo lo anterior y considerando otras opciones de crontab:
$> crontab archivo.cron 
$> crontab -e              
$> crontab -l           
$> crontab -r           


Tabla de ejemplo:

CampoDescripción
MinutoControla el minuto de la hora en que el comando será ejecutado, este valor debe de estar entre 0 y 59.
HoraControla la hora en que el comando será ejecutado, se especifica en un formato de 24 horas, los valores deben estar entre 0 y 23, 0 es medianoche.
Día del MesDía del mes en que se quiere ejecutar el comando. Por ejemplo se indicaría 20, para ejecutar el comando el día 20 del mes.
MesMes en que el comando se ejecutará, puede ser indicado numéricamente (1-12), o por el nombre del mes en inglés, solo las tres primeras letras.
Día de la semanaDía en la semana en que se ejecutará el comando, puede ser numérico (0-7) o por el nombre del día en inglés, solo las tres primeras letras. (0 y 7 = domingo)
UsuarioUsuario que ejecuta el comando.
ComandoComando, script o programa que se desea ejecutar. Este campo puede contener múltiples palabras y espacios.


EjemploDescripción
01 * * * *Se ejecuta al minuto 1 de cada hora de todos los días
15 8 * * *A las 8:15 a.m. de cada día
15 20 * * *A las 8:15 p.m. de cada día
00 5 * * 0A las 5 a.m. todos los domingos
* 5 * * SunCada minuto de 5:00a.m. a 5:59a.m. todos los domingos
45 19 1 * *A las 7:45 p.m. del primero de cada mes
01 * 20 7 *Al minuto 1 de cada hora del 20 de julio
10 1 * 12 1A la 1:10 a.m. todos los lunes de diciembre
00 12 16 * WenAl mediodía de los días 16 de cada mes y que sea Miércoles
30 9 20 7 4A las 9:30 a.m. del dia 20 de julio y que sea jueves
30 9 20 7 *A las 9:30 a.m. del dia 20 de julio sin importar el día de la semana
20 * * * 6Al minuto 20 de cada hora de los sábados
20 * * 1 6Al minuto 20 de cada hora de los sábados de enero


Script que consulta un proceso activo


//Scrip que pregunta por proceso, en caso de que no esta ejecutando, lo inicia...
//Se guarda en un archivo con extención .sh

#!/bin/bash
#crea el archivo log
touch /ruta/archivoProcesos.log
#permisos para el archivo de ser necesario
chmod 755 /ruta/archivoProcesos.log

echo -e "******************************************" > /ruta/archivoProcesos.log
date >> /ruta/archivoProcesos.log
echo -e "comprueba si corre programa" >> /ruta/archivoProcesos.log
echo -e "Consultando procesos" >> /ruta/archivoProcesos.log

##linea q consulta los procesos activos. y los envia al archivo log que creamos.

ps -aux | grep smdrRegistroLog >> /ruta/archivoProcesos.log

##ahora se busca dentro del archivo si existe el programa en ejecucion ern este caso como ejemplo ##buscaremos programaJava.jar y lo guardaremos en la variable valida_proceso_on

valida_proceso_on=`find /ruta/smdrProcesosCorriendo.log -type f | xargs grep -c programaJava.jar`

#ojo con los espacios, puede q lance error si lo dejamos todo junto
#si no lo encuentra devolvera 0

if [ $valida_proceso_on == 0 ]
then
   echo -e "******************************************" >> /ruta/archivoProcesos.log

   #lanzamos el programa nuevamente
   echo -e "El programa no estaba en ejecución... se procede a subir..." >> /ruta/archivoProcesos.log

   java -jar /ruta/programaJava.jar &

   echo -e "******************************************" >> /ruta/archivoProcesos.log

   echo -e "" >> /ruta/smdrProcesosCorriendo.log
fi

exit

Uso del ping

El comando ping se usa tanto en linux como en windows, es utilizado para la supervisión de red, a pesar de ser sencillo de utilizar, los resultados son muy útiles.

Segun wipedia:


“La utilidad ping comprueba el estado de la conexión con uno o varios equipos remotos por medio de los paquetes de solicitud de eco y de respuesta de eco (ambos definidos en el protocolo de red ICMP) para determinar si un sistema IP específico es accesible en una red. Es útil para diagnosticar los errores en redes o enrutadores IP.
Muchas veces se utiliza para medir la latencia o tiempo que tardan en comunicarse dos puntos remotos, y por ello, se utiliza el término PING para referirse al lag  o latencia de la conexión en los juegos en red.”
Ejemplo 1: incrementar o decrementar el intervalo de tiempo entre paquetes. Por ejemplo, el ping esperará cinco segundos antes de enviar el siguiente paquete:
ping -i 5 IP 
Para decrementar el tiempo, por ejemplo:
ping -i 0.1 IP
Ejemplo 2: chequear si la interfaz de red “está levantada”. Por ejemplo:
ping 0
O bien, usando el nombre localhost o la ip 127.0.0.1:
ping localhost
ping 127.0.0.1
Ejemplo 3: enviar N paquetes y detenerse. En Linux y otras especies de Unix generalmente el comando ping no se detiene hasta presionar Ctrl+C, para enviar un número determinado de paquetes utilizamos el argumento -c
ping -c2 IP
Ejemplo 4: Mostrar la versión del comando
ping -V
Ejemplo 5: “innudar” la red. Solo disponible para superusuarios, envía cien o más paquetes por segundo, imprimiendo un punto por cada paquete enviado y un espacio una vez recibido.
ping -f localhost
Ejemplo 6: ping con audio, enviar un pitido (beep) cuando el host es encontrado
ping -a IP
Ejemplo 7: encontrar la dirección IP de un dominio. Cuando realizas un ping a un nombre de dominio, antes del envio de paquetes el comando escribe en la salida estándar entre paréntesis, luego del nombre de dominio, la IP del mismo.
ping -c 1 google.com 
Ejemplo 8: mostrar solo las estadísticas del comando. Al finalizar el comando ping muestra estadísticas como cantidad de paquetes transmitidos, recibidos, porcentaje de paquetes perdidos y tiempo. Si queremos ver dichas estadísticas sin observar previamente la línea de cada paquete enviado podemos utilizar la opción -q (quiet)
ping -c5 -q 127.0.0.1
Ejemplo 9: cambiar el tamaño del paquete. Por defecto el tamaño del paquete del ping va de 56 a 100 bytes. Si utilizas el tamaño de paquete 100, verás ‘128 bytes’, esto se debe a que 28 bytes es el tamaño del encabezado del ping.
ping -s 100 localhost
Ejemplo 10: timeout. El parámetro -q especifica el tiempo límite para terminar con el ping. Es decir, por ejemplo -w 5, el comando ping intentará salir luego de cinco segundos terminará del envio de paquetes, independientemente cuando paquetes hayan sido enviados o recibidos.
ping -w 5 localhost
Ejemplo 11: ping online. Existen páginas webs como Just Ping  que nos permiten realizar un ping desde diferentes localizaciones a nuestro servidor.
Ejemplo 12: terminar un ping por cantidad de paquetes o timeout.
ping -c 4 0 -w
Ejemplo 13: estadísticas parciales win salir. En vez de apretar Ctrl+C para terminar (SIGQUIT) el comando ping, puedes utilizar Ctrl+I para mostrar estadísticas parciales y continuar el envio.
Ejemplo 14: especificar el path (saltos) que el ping utilizará para enviar los paquete.
ping hop1 hop2 hop3 hopN IP
Ejemplo 15: mostrar la traza del paquete que es enviado y recibido, de esta forma se pueden ver los distintos saltos (hops) que atravesó el paquete para llegar a destino y visceversa.
ping -R IP

miércoles, 3 de octubre de 2012

Comandos Basicos Linux


cat: Muestra el contenido de archivos.

          uso:   cat nombreArchivo.extencion

cd: comando para acceder a un directorio o volver atras.

       uso: cd nombreCarpeta (entra a carpeta)
              cd /ruta/nombreCarpeta (entra a carpeta)
              cd .. (vuelve atrás)
            

chmod: cambia permisos de usuario.

         uso: chmod -R 777 /ruta/archivo o carpeta

chown: cambia permisos de usuario.

         uso: chown nombreUsuario:nombreUsuario archivo o carpeta.


crontab -l : equivalentes a los at de Windows muestra los procesos que se encuentran programados para  ejecutarse.

curl : llama a una pagina via consola, la cual muestra el resultado en codigo html.

    uso : curl http://www.google.com

export: muestra las variables de ambiente.

grep: comando de busqueda

ifconfig: muestra configuraciones de red.

init: se usa para apagar o reiniciar la máquina, entre otros.

        uso: init 6 (reinicia el equipo)
                init 0 (apaga el equipo)

kill n° pid -9: mata el proceso en cuestion, deteniendo todas las subtareas.

killall nombreDelPrograma: mata el proceso y todos los pid(numero de procesos) del programa.

locate: busca archivo o carpeta en todos los directorios.

      uso:  locate  nombreArchivoóCarpeta

mkdir: crea directorio.

      uso: mkdir nombreCarpeta

mv:  mueve carpetas de un destino a otro. Tener cuidado con los permisos del archivo, ya que si no tienen permiso no los podran mover. Puede ser usado para mover carpetas o archivos.

      uso: mv /ruta/carpetaoArchivo /ruta/carpetaoArchivo

ps : mustra los procesos que se estan ejecutando.

       uso: ps -aux (muestra listado de procesos en ejecucion con detalles.)
               ps -ef (muestra listado con detalles. )
               ps -fea | grep nombreServicioAbuscar (muestra solo el programa en ejecucion si lo encuentra.)

rm: elimina directorio incluyendo todos los archivos y carpetas que se encuentran dentro.

       uso: rm -rf directorio

source: Esto se usa cuando se quiere afectar las variables de ambiente (o entorno) desde un archivo.

      uso: source /home/mi-user/.bashrc

tail: leer archivos.

vim: editor de texto.

        uso: ver archivo: vim nombreArchivo
               editar presionar i
               guardar y salir tecla Esc y luego escribir ":wq" o tambien ":x"
               salir sin guardar: Esc y luego escribir ":q" o tambien ":qa!"

wget: sirve para descargar archivos desde la consola.

         uso:
               wget http://ejemplo.com/programa.tar.gz
               wget http://ejemplo.com/*.pdf //descarga todos los pdfs del directorio
               wget -i archivo.txt //descarga mas de una url, en el archivo deben estar todas las urls a descargar
               wget -o reporte.txt //genera un reporte con las descargas en curso.
               wget -i -c archivo.txt // si la descarga se interrumpio, para continuar poner opcion 'c' para que siga desde donde quedó.
               wget -c http://ejemplo.com/descarga.pdf