Hola amigos blogueros,
Les dejo el URL oficial para que puedan descargar el driver para la impresora Epson LX-300+II para Windows 8 de 32 o 64 bits.
Si si obviamente "googleando" lo pueden encontrar pero si quieren ahorrar un poco de tiempo les dejo el link.
http://esupport.epson-europe.com/ProductHome.aspx?lng=es-ES&data=CsPXnmXYL5bXjLi01gQkSxdUeNl8e58xoj+U002FON9xU002Fb0U003D&tc=6
Espero les sirva.
Cualquier comentario por este medio o por twitter en @Danny_Obando.
¡¡¡ Este blog fue creado para dejar registrado algunas de mis experiencias en el área informática !!!
miércoles, 22 de mayo de 2013
viernes, 19 de abril de 2013
Compartir impresora de Linux a Windows
Hola amigos blogueros,
Una ves más escribiendo un mini manual que espero les sea de utilidad.
¿ Cuál es el problema ?
Tengo en una computadora con OpenSuse 11.2 que tiene instalada una impresora y necesito que un par de computadoras con Windows 7 puedan hacer uso de la misma.
Es muy importante decirles que este manual fue probado con las siguientes versiones de paquetes:
samba-client-3.4.3-3.8.1.x86_64
samba-3.4.3-3.8.1.x86_64
Lo recalco porque con los paquetes que vienen en la distro por default nunca me pude conectar.
Si se están preguntando, ¿ Cómo se que versión de paquetes tengo ?
El comando es el siguiente:
rpm -qa | grep samba*
Ahora si, manos a la obra.
1.- Agregamos un usuario con el comando:
useradd -M -c "Usuario para imprimir desde Win" -s /sbin/nologin smbprint
2.- Eliminamos la clave del usuario creado:
passwd -d smbprint
3.- Editamos el archivo: smb.conf
vi /etc/samba/smb.conf
4.- Dentro de ese archivo verificamos que estén las siguientes líneas des-comentadas y si no están deben de agregarlas.
[global]
printcap name = cups
printing = cups
security = share
[printers]
path = /var/tmp
browseable = yes
printable = yes
public = yes
create mode = 0600
guest ok = yes
guest account = smbprint
5.- Reiniciamos el samba:
/etc/init.d/smb restart
6.- Editamos el archivo: cups.conf
vi /etc/cups/cupsd.conf
7.- Agregamos la siguiente línea:
Listen 192.168.1.0:631
Ustedes deberán reemplazar con la dirección de red que estén usando.
8.- En el parámetro Location escribimos las siguientes líneas:
<Location />
Allow 192.168.1.0
Allow @IF(eth0)
Allow 127.0.0.2
Allow all
Order allow, deny
</Location>
El parámetro Location ya debe de existir dentro del archivo de configuración, por lo que deben de reemplazar lo que está escrito adentro con lo que especifico arriba.
La variable eth0 deben de reemplazarla con la interfaz por donde se conecta a la red el equipo.
9.- Reiniciamos el cups:
/etc/init.d/cups restart
10.- Deben de instalar el driver de la impresora en la máquina Windows.
11.- Una ves que hemos realizado todos los pasos anteriores ya podemos buscar la máquina Linux desde Windows en mis sitios de red o en ejecutar \\192.168.1.X y veremos que aparece la impresora compartida.
Espero les sea de utilidad ahora, en un futuro o solo si lo quieren hacer por curiosidad.
Re-editado 04-Julio-2013
Les comento que a pesar de estar funcionando el procedimiento anterior, existía ocasiones en que los documentos no se imprimían, la verdad no me puse a identificar cuales no y cuales si, mas bien me necesitaba en buscar una solución y rápido.
Manos a la obra.
Luego de ver los logs me encontré con esta línea en el error_log del cups:
CUPS: client-error-document-format-not-supported
Googleando encontré este foro de fedora que me fue de gran ayuda:
http://forums.fedoraforum.org/archive/index.php/t-180014.html
Básicamente la solución es descomentar una línea que está al final del archivo mime.convs.
Pasos:
En la máquina "servidor" donde está conectada la impresora accedemos a la carpeta del cups.
¿ Porque pasó este error ?
Al parecer cups no "entendía" algunos datos cuando se enviaba el documento y asumía que estaba corrupto, por eso no imprimía.
Si alguno de mis lectores nos comparte alguna explicación técnica de porque este error o porque esta solución se lo agradecería muchísimo.
Cualquier duda o comentario lo dejan por este medio o me envían un tweet a @Danny_Obando.
Hasta mi próximo post.
11.- Una ves que hemos realizado todos los pasos anteriores ya podemos buscar la máquina Linux desde Windows en mis sitios de red o en ejecutar \\192.168.1.X y veremos que aparece la impresora compartida.
Espero les sea de utilidad ahora, en un futuro o solo si lo quieren hacer por curiosidad.
Re-editado 04-Julio-2013
Les comento que a pesar de estar funcionando el procedimiento anterior, existía ocasiones en que los documentos no se imprimían, la verdad no me puse a identificar cuales no y cuales si, mas bien me necesitaba en buscar una solución y rápido.
Manos a la obra.
Luego de ver los logs me encontré con esta línea en el error_log del cups:
CUPS: client-error-document-format-not-supported
Googleando encontré este foro de fedora que me fue de gran ayuda:
http://forums.fedoraforum.org/archive/index.php/t-180014.html
Básicamente la solución es descomentar una línea que está al final del archivo mime.convs.
Pasos:
En la máquina "servidor" donde está conectada la impresora accedemos a la carpeta del cups.
- # cd /etc/cups
Editamos el archivo en cuestión.
- # vi mime.convs
Buscamos la línea que está casi al final, en este caso el # no es para denotar la línea de comando sino que muestra que la línea está comentada dentro del archivo.
- # application/octet-stream application/vnd.cups-raw 0 -
Lo único que hay que hacer es descomentar esa línea.
Guardamos el archivo.
Y por último reiniciamos el cups.
¿ Porque pasó este error ?
Al parecer cups no "entendía" algunos datos cuando se enviaba el documento y asumía que estaba corrupto, por eso no imprimía.
Si alguno de mis lectores nos comparte alguna explicación técnica de porque este error o porque esta solución se lo agradecería muchísimo.
Cualquier duda o comentario lo dejan por este medio o me envían un tweet a @Danny_Obando.
Hasta mi próximo post.
martes, 9 de abril de 2013
Instalar Internet Explorer en OpenSuse 11.2
Hola amigos blogueros,
En esta ocasión quiero compartirles un manual de como instalar el Internet Explorer en OpenSuse 11.2.
Si se están preguntando ¿ Porque necesito instalar ese browser en Linux ? La respuesta es simple, hay algunos diseñadores web que piensan que solo existe ese browser y no se molestan en comprobar que en otros navegadores su/sus aplicaciones funcionen correctamente.
Pero bueno mi intención no es quejarme, mas vale les doy la solución.
Paso 1: Añadimos el repositorio de Wine
http://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_11.2/
¿ Como lo añado ?
Añadir repositorio bajo consola
Lo hacemos con el comando:
zypper ar -f http://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_11.2/ Emuladores
Si desean conocer más comodines del zypper en la consola escriban: zypper help o el infaltable: man zypper
Añadir repositorio en modo gráfico (KDE)
Vamos al boton Inicio --> Máquina --> Yast
Luego de ingresar el password de root, en la ventana que aparece nos dirigimos a: Software --> Repositorios de Software
Nos aparece la siguiente ventana:
Seleccionamos añadir y luego la opción HTTP:
Ingresamos nombre de repositorio, nombre del servidor y directorio del servidor y luego Siguiente:
Nombre del repositorio: Emulador
Nombre del servidor: download.opensuse.org
Directorio en el servidor: /repositories/Emulators:/Wine/openSUSE_11.2/
Nos regresa a la ventana de Repositorios de aplicaciones configurados y damos Aceptar.
Importamos la clave y con eso hemos añadido el repositorio.
Paso 2: Instalamos el paquete cabextract
Lo hacemos con el comando: yast2 -i cabextract
Paso 3: Instalamos el paquete wine
Lo instalamos con el siguiente comando:
YaST2 -i wine
El comando anterior no solo instala el paquete del wine, sino también las dependencias necesarias.
En mi caso no me ha funcionado con la última versión del wine que se instala (wine-1.5.27-230.1.i586), por lo que yo la desinstalo y procedo a instalar la siguiente versión:
wine-0.9.57-3.8.i586.rpm
Para ver que versión del wine tengo instalado es con el siguiente comando:
rpm -qa | grep wine
En mi caso estos son los paquetes que me instaló:
- wine-mono-0.0.8-1.1.noarch
- wine-1.5.27-230.1.i586
- wine-mp3-1.1.39-12.2.i586
- wine-gecko-1.9-35.1.noarch
Vamos a desinstalar el wine-mp3 y el wine con el siguiente comando:
rpm -e wine-mp3-1.1.39-12.2.i586 wine-1.5.27-230.1.i586
Ustedes ponen la versión que se les haya instalado en su equipo.
Nota: Se que algunos me dirán ¿ Pero para que lo instala si lo va a volver a desinstalar ? La respuesta es simple, me ahorra el instalar todas las dependencias.
Nos toca buscar el wine que funciona, personalmente siempre busco paquetes en dos páginas:
En rpmfind encontré el paquete especificado:
Los descargan y luego lo instalan en el equipo con el comando:
rpm -ivh wine-0.9.57-3.8.i586.rpm
Paso 4: Descargamos e instalamos el ies4linux
Nota: No hacer los siguientes pasos como root, haganlo como usario normal del sistema (el usuario que la va a usar).
Lo descargamos directamente desde la pc del usuario con el comando:
Lo descargamos directamente desde la pc del usuario con el comando:
Descomprimimos el paquete:
tar zxvf ies4linux-latest.tar.gz
Ingresamos a la carpeta:
cd ies4linux-*
Ejecutamos el instalador, NO hacerlo como root:
./ies4linux
Damos OK.
Damos clic en Close/Cerrar.
En mi caso que tengo el OpenSuse en Español tengo que copiar el acceso directo que se creó al instalar el ie4Linux en la carpeta Desktop:
cp /home/usuario/Desktop/ies4linux-ie6.desktop /home/usuario/Escritorio/
Ejecutando ese comando nos debe de aparecer en el escritorio el icono del internet Explorer:
Le damos un clic y tenemos instalado el Internet Explorer en Opensuse.
Una ves que lo instalé y el/los usuarios comenzaron a usarlo me llamó la atención ver que cuando estaba en ejecución consumía prácticamente todos los recursos del sistema y lo peor de todo es que una ves cerrada la aplicación los recursos no disminuyen, por lo que les recomiendo dos cosas:
Obviamente no es nada cómodo andar cerrando los procesos uno a uno cada ves que se usa el Internet Explorer, por lo que cree un script para ejecutarlo una ves que cerremos el browser.
Creamos el script dentro del escritorio del usuario:
cd /home/usuario/Escritorio
vi cerrar_explorer.sh
El contenido del archivo es:
ps -ef | grep "windows" | grep -v "grep" | awk '{print $2}' | xargs kill -9
ps -ef | grep "ie6" | grep -v "grep" | awk '{print $2}' | xargs kill -9
ps -ef | grep "wine" | grep -v "grep" | awk '{print $2}' | xargs kill -9
Damos permiso de ejecución al archivo creado:
chmod 755 cerrar_explorer.sh
Con esto ya nos debe de aparecer en el escritorio el icono:
Lo ejecutamos y se van a dar cuenta que el sistema operativo vuelve a su consumo normal de recursos.
He tratado de ser lo más explicito posible, quizás para algunos de mis amigos blogueros les va a parecer demasiado extenso o tedioso este manual, pero traté de hacerlo pensando en personas con muy poca experiencia manejando Linux.
Espero les sea de utilidad ahora o en cualquier momento o si quizás solo lo quieran instalar por curiosidad.
Hasta mi próximo post y no se olviden de dejar sus comentarios o enviarme un tweet a: @Danny_Obando
En mi caso que tengo el OpenSuse en Español tengo que copiar el acceso directo que se creó al instalar el ie4Linux en la carpeta Desktop:
cp /home/usuario/Desktop/ies4linux-ie6.desktop /home/usuario/Escritorio/
Ejecutando ese comando nos debe de aparecer en el escritorio el icono del internet Explorer:
Le damos un clic y tenemos instalado el Internet Explorer en Opensuse.
Recomendaciones
Una ves que lo instalé y el/los usuarios comenzaron a usarlo me llamó la atención ver que cuando estaba en ejecución consumía prácticamente todos los recursos del sistema y lo peor de todo es que una ves cerrada la aplicación los recursos no disminuyen, por lo que les recomiendo dos cosas:
- Advertir al usuario que requiere del internet explorer que solo lo use cuando sea estrictamente necesario.
- Deben de cerrar todos los procesos del wine manualmente.
Script para cerrar procesos del Wine
Obviamente no es nada cómodo andar cerrando los procesos uno a uno cada ves que se usa el Internet Explorer, por lo que cree un script para ejecutarlo una ves que cerremos el browser.
Creamos el script dentro del escritorio del usuario:
cd /home/usuario/Escritorio
vi cerrar_explorer.sh
El contenido del archivo es:
ps -ef | grep "windows" | grep -v "grep" | awk '{print $2}' | xargs kill -9
ps -ef | grep "ie6" | grep -v "grep" | awk '{print $2}' | xargs kill -9
ps -ef | grep "wine" | grep -v "grep" | awk '{print $2}' | xargs kill -9
Damos permiso de ejecución al archivo creado:
chmod 755 cerrar_explorer.sh
Con esto ya nos debe de aparecer en el escritorio el icono:
Lo ejecutamos y se van a dar cuenta que el sistema operativo vuelve a su consumo normal de recursos.
He tratado de ser lo más explicito posible, quizás para algunos de mis amigos blogueros les va a parecer demasiado extenso o tedioso este manual, pero traté de hacerlo pensando en personas con muy poca experiencia manejando Linux.
Espero les sea de utilidad ahora o en cualquier momento o si quizás solo lo quieran instalar por curiosidad.
Hasta mi próximo post y no se olviden de dejar sus comentarios o enviarme un tweet a: @Danny_Obando
miércoles, 3 de abril de 2013
Eliminar clave de registro en Windows 7
Hola de nuevo amigos blogueros,
Les comento que hoy necesité borrar una clave de registro en Windows y me pase un par de horas buscando una solución definitiva por lo que se las comparto para que vean si es de utilidad para ustedes ahora o en cualquier momento.
Antes de seguir debo de recomendarles que hagan un respaldo de su registro de windows y recordarles que es de su entera responsabilidad la manipulación del mismo.
La entrada de registro a borrar es:
HKEY_CURRENT_USER\Software\asd123\prueba
La sintaxis del comando es:
REG DELETE KeyName [/v ValueName | /ve | /va] [/f]
Desde el cmd pueden poner reg delete /? para ver la ayuda completa.
El comando a ejecutar es:
REG DELETE HKCU\Software\asd123 /v prueba /f
Noten lo siguiente:
- El nombre HKEY_CURRENT_USER fue cambiado por: HKCU.
- El valor a borrar prueba va separado del nombre del contenedor asd123.
Las abreviaciones para las claves de registro son:
HKEY_LOCAL_MACHINE --> HKLM
HKEY_CURRENT_CONFIG --> HKCC
HKEY_CLASSES_ROOT --> HKCR
HKEY_CURRENT_USER --> HKCU
HKEY_USERS --> HKU
Si en algún momento necesitan solo visualizar el valor de la clave de registro pueden hacer con:
REG QUERY HKCU\Software\asd123 /v prueba
Eso les muestra el valor de la clave.
Pasos por si desean crear un script:
- Abrir el notepad.
- Escribir la linea para borrar o visualizar arriba especificadas.
- Nos vamos a la opción de Grabar como.
- En la ventana que se abre en la parte de abajo dice Tipo, seleccionamos Todos los archivos.
- En nombre le ponemos el que les parezca seguido del .bat al final y lo grabamos.
Espero les sea de utilidad y les ahorre un poco de tiempo esta solución.
Cualquier duda o comentario no duden en enviarme un tweet a @danny_obando.
Hasta mi próximo post.
lunes, 18 de marzo de 2013
Motivos para elegir una tableta en lugar de un ordenador/computador
Hola amigos blogueros, el día de hoy leí un muy buen post que me pareció muy oportuno compartirlo en vista de que las tres operadoras celulares de mi país (Ecuador) ofrecen buenos planes donde dan tabletas incluso sin costo dependiendo del plan que elijan, pero no siempre las personas están seguras de si comprarlas o no.
Copio el contenido del post y al final pongo las fuentes de donde los tomé.
Espero les parezca interesante y me comenten sus impresiones.
Motivos para elegir una tableta en lugar de un ordenador/computador
Las tabletas están consiguiendo que las ventas de ordenadores y
portátiles caiga en picado. Muchos usuarios no acaban de decidirse a dar el
salto, por lo que a continuación, os damos unos cuantos motivos para elegir una
tableta en lugar de un ordenador.
Nos hacemos eco de la recopilación realizada por El Androide Libre,
donde podemos ver las 10 razones para elegir una tableta antes que un PC o
portátil. Esta recopilación debe servir para aclarar las dudas de los
indecisos, que no saben si optar por una tableta o por un ordenador
tradicional. Lo
principal es ver el uso que se le va a dar al dispositivo, ya que existen
muchas funciones que quedan reservadas solamente a los ordenadores. Estas son las razones para decantarnos por una
tableta:
Portabilidad: Uno de los
puntos fuerte de las tabletas es su portabilidad, debido a su reducido peso y
tamaño. Lo podemos llevar a cualquier parte sin ningún problema y dependiendo
de su tamaño puede caber perfectamente en una pequeña mochila. Además, solo
necesitaremos llevar un pequeño cargador adicional. En la mayor parte de los
casos, podremos recargar el dispositivo con cualquier cable micro USB.
Autonomía: Por normal
general, la batería de las tabletas dura más que la de los portátiles. Estas
baterías pueden llegar a aguantar un día entero de uso, algo impensable en un
portátil. Si solo encendemos la tableta cuando necesitamos utilizarla, el
tiempo de autonomía de la batería puede llegar sin problemas a los dos días.
Encendido rápido: Uno de
los avances más importantes de las tabletas es el reducido tiempo que necesitan
para salir del reposo. Si las comparamos con los portátiles, solo encontramos
algo parecido en los MacBook de Apple, aunque no tiene nada que ver con la
velocidad de las tabletas.
Potencia: Es cierto que la
potencia no es uno de los fuertes de las tabletas, pero
la mayor parte de los usuarios no suele necesitar un equipo de altas
prestaciones. Para navegar por Internet, consultar las redes
sociales más populares y ver algún vídeo de YouTube nos bastará con una
tableta. Si hablamos del mundo de los juegos, aún es pronto para que las
tabletas sustituyan a los ordenadores y las consolas, pero están avanzando en
la dirección correcta.
Precio: Este es el punto
más conflictivo de todos ya que existen ordenadores y tabletas con precios muy
diferentes. Una tableta Nexus 10 que cuesta unos 400 euros, es capaz de ofrecernos
unas prestaciones similares a las de un portátil mucho más caro, sobre todo
para un público no demasiado exigente.
Lectura: No hay ninguna
duda que para la lectura la experiencia no es comparable entre una tableta y un
ordenador. En la tableta podemos llevar todos nuestros libros en formato
digital y acceder a ellos desde cualquier lugar. Además, una tableta de siete
pulgadas tiene el tamaño ideal para la lectura.
Capacidades multimedia: En
una tableta vamos a ser capaces de ver películas en alta definición, escuchar
música, ver fotos, acceder a YouTube, Spotify o realizar videoconferencias,
entre otras muchas funciones. La calidad de las pantallas es cada vez mejor y
la facilidad en el acceso a los contenidos es un punto a su favor. Incluso podemos
conectar la tableta a la televisión para disfrutar de los contenidos en una
pantalla más grande.
Tomar notas: Con una
tableta tenemos la posibilidad de tomar notas a mano rápidamente, sobre
cualquier documento. Muchas veces hemos necesitado anotar un teléfono o
dirección en una servilleta, algo que podremos hacer en nuestra tableta sin
riesgo de perder esa nota. Además, existen muchos programas que suben nuestras
notas directamente a la nube y rápidamente son accesibles desde cualquier
lugar.
Amplia gama: Actualmente,
existe una amplia gama de tabletas con tamaños, pantallas, funciones y acabados
muy diferentes. Podemos decantarnos por una tableta más pequeña, del segmento
de las 7 pulgadas o hacerlo por una más grande, que ronde las 10 pulgadas.
Existen desde modelos económicos, que cuestan poco más de 100 euros, a modelos
más caros, por lo que podemos llegar a pagar casi 1.000 euros.
Versatilidad: Si hay una
palabra que define perfectamente a una tableta, esa es versatilidad. Son
dispositivos que se pueden acoplar a multitud de situaciones y de usuarios
diferentes y que en muchos casos pueden llegar a sustituir a un ordenador o
portátil. Está claro que los profesionales de segmentos como el diseño, edición
de vídeo o simplemente, los que necesiten una suite ofimática, deben decantarse
por un ordenador.
Fuentes:
- Post sacado de un tweet de @elhackernet.
- Públicado en la web de: http://foro.elhacker.net/noticias/motivos_para_elegir_una_tableta_en_lugar_de_un_ordenador-t385782.0.html
Hasta mi próximo post.
Cualquier comentario lo pueden hacer en mi Twitter @Danny_Obando.
martes, 12 de febrero de 2013
¿Paranoia? o ¿Prevención? Wifi sin autenticación
El post de hoy trata más que de una experiencia es sobre una sensación que tuve al estar en un centro comercial.
Es de conocimiento para los que tenemos por lo menos un poquito; como en mi caso; de conocimiento de seguridad informática, que la mayoría de personas desconocen de los "peligros o riesgos" que existen al conectarse a redes inalámbricas sin autenticación , es más, muchos de mis conocidos incluso se vanaglorian diciendo que se "roban" el wifi del vecino sin conocer las pocas o muchas consecuencias de esto, les dejo un link de un post con un ejemplo bastante bueno de los riesgos (http://bit.ly/YaACVo).
El día de ayer visité un centro comercial muy conocido en la ciudad donde vivo (Guayaquil-Ecuador), estando en el "patio de comidas" como de costumbre saque mi celular decidido a revisar los últimos tweets, por curiosidad revisé las redes inalámbricas disponibles y dentro de la variedad (aprox. unas 10) habían 3 que no tenían autenticación.
Luego de unos momentos donde se me cruzaron algunas ideas por mi cabeza y pensar si me conecto o no a la red wifi sin autenticación, me fue inevitable no hacer un reconocimiento visual para tratar de ver si no había alguien con actitud "sospechosa" que esté usando alguna táctica como por ejemplo "Hombre en el medio" (http://bit.ly/14QFQKf) y esté esperando por su próxima victima.
Después de haber hecho esto me hice una pregunta: ¿Seré solo yo, u otras personas también lo piensan antes de conectarse a una red wifi desconocida sin autenticación?
Considero que el tener algo de conocimiento nos da una ventaja con respecto al común de las personas, esto nos permite no cometer los típicos errores que son aprovechados por innumerables personas que mediante diversas técnicas hacen "caer" a sus víctimas.
Será que el hecho de leer blogs, manuales, tutoriales comos los de:
- Chema Alonso (@chemaalonso) http://www.elladodelmal.com/
- Jaime Andrés Restrepo (@gradonjar) http://www.dragonjar.org/
- Carlos Montes Llanos (@montescarlos) http://losindestructibles.wordpress.com/
Son los que han provocado esta ¿"paranoia"? o es ¿"prevención"?
Así como los mencionados arriba, existen muchas fuentes en la red donde uno puede aprender y queda siempre a criterio de cada persona que hace con el conocimiento adquirido, al fin y al cabo uno mismo es el que va trazando su destino.
Quizás para algunos es una exageración pensar en todo esto solo por encontrar una wifi sin autenticación pero y ustedes mis amigos blogueros que creen, es ¿paranoia? o es ¿prevención?.
Espero sus comentarios aquí en el blog o a mi twitter @Danny_Obando.
Hasta mi próximo post.
jueves, 7 de febrero de 2013
Usando Rsync en Linux y Robocopy en Windows
Hola amigos blogueros, el post de hoy se basa en un problema que tuve el día de ayer, bueno más que problema fue una necesidad, para poder explicar que necesidad tuve les menciono algunos antecedentes.
En la empresa donde laboro tenemos un sistema desarrollado en java y antes que yo entrara a la compañía el proceso de actualización del "ejecutable" que es un .jar se lo realizaba de forma manual.
El 90% de los equipos de los usuarios eran Linux por lo que heredé unos scripts del administrador anterior, que si bien es cierto ayudaba en la gestión de actualizar el .jar pero que no era del todo independiente del administrador; en este caso de mí.
De aquel tiempo para acá la situación ha cambiado y ahora tenemos un 70% máquinas linux y un 30% máquinas windows; ¿ y esto se tradujo en ? que la actualización se volvió mas tediosa; es así que me prepuse crear scripts para que al iniciar el .jar en la máquina de los usuario primero verifique si hay una actualización y luego se ejecute.
Habiendo mencionado el antecedente lo primero es elegir un servidor o computador para usarlo como "Servidor de Actualización", se comparte una carpeta y se ubica el .jar actualizado.
Usando Robocopy en máquinas Windows (7 y XP)
Nota: Para ejecutar el .jar en las máquinas clientes es necesario ejecutar el siguiente comando desde el cmd: java -jar nombre_programa.jar, o pueden crear un .bat y lo guardan en el directorio donde está el .jar con la línea mencionada para así puedan poner el acceso directo al usuario.
El comando elegido para realizar la copia fue el robocopy, aquí la explicación del comando: http://bit.ly/11MIgL8
Sintaxis: robocopy origen destino [<File>[ ...]] [<Options>]
Uso: robocopy /L \\192.168.1.4\Actualizaciones_programa\ C:\Programa\ *.jar
Nota: Para ejecutar el .jar en las máquinas clientes es el mismo comando que en Windows solo que obviamente no es en el cmd si no en la consola. Pueden guardar el comando en un .sh darle permiso de ejecución y crear un acceso directo para facilitarle la vida al usuario.
Usando Rsync: Una breve explicación del comando: http://bit.ly/V1lAma
Sintaxis: rsync [OPTION] … SRC [SRC] … [USER@]HOST:DEST
Uso: rsync -av //192.168.1.4/Actualizaciones_programa/programa.jar /programa/
Hasta ahora realmente no hay nada el otro mundo pero .... Vamos a complicar un poco más las cosas.
Luego de que funcionara los scrips en Linux y en Windows empezaron a llamar los usuarios a indicar que se les demoraba demasiado al momento de abrir el programa, esto se generaba porque ambos comandos comparaban y copiaban siempre el .jar, aprovechando esto Gerencia me dijo "ya como estás en esas de una ves mira si puedes hacer para que pregunte primero antes de actualizar" y entonces ¿ que hacemos ?
Copio mi script y lo explico:
TITLE Ingresando al Sistema v1.0 Un titulo cualquiera a la ventanta
if %errorlevel%==0 goto :Continuar Si no encuentra diferencia lo envía a Continuar
if %errorlevel%==1 goto :ACT Si encuentra diferencia manda a preguntar ACT
SET var=1 Doy valor incial a la variable
#!/bin/bash
#
# Script v1.1
# Creado por Danny Obando
kdialog --title "Venta del Sistema" --yesno "Desea Actualizar el Sistema?" Pregunta al usuario si desea actualizar o no.
if [[ $? -eq 0 ]]; then Si el usuario dice que si se actualiza el Sistema
sudo mkdir /media/act_programa/ Creo una carpeta temporal
sudo chmod -R 777 /media/act_programa/ Le cambio los permisos
notify-send "Actualizando v1.3" Ventana de notificación al usuario
sudo mount -t cifs -o username=act_programa,password=act_programa //192.168.1.4/Actualizaciones_Programa /media/act_programa/ Monto la unidad de red en la carpeta creada
if [ -e /media/act_programa/log.txt ] Se me ocurrio tener en esa carpeta log.txt para confirmar que se haya montado la unidad de red, si existe quiere decir que está correcto then
sudo rsync -av /media/act_programa/Sistema.jar /Programa/ Actualizo el programa sudo sleep 1
sudo umount /media/act_programa/ Desmonto la unidad de red
else
echo "Problema montando"
fi
sudo umount /media/act_programa/
if [ -e /media/act_programa/log.txt ] Confirmo que se haya desmontado, caso contrario la vuelvo a desmontar
then
echo "Quedo montada"
else
sudo rm -r /media/act_programa Elimino la carpeta creada
fi
notify-send "Abriendo el Sistema"
java -jar Sistema.jar
else
# Solo se abre el Sistema
notify-send "Abriendo el Sistema"
java -jar Sistema.jar
fi
Uso: robocopy /L \\192.168.1.4\Actualizaciones_programa\ C:\Programa\ *.jar
Usando Rsync en máquinas Linux (Opensuse 11.2)
Nota: Para ejecutar el .jar en las máquinas clientes es el mismo comando que en Windows solo que obviamente no es en el cmd si no en la consola. Pueden guardar el comando en un .sh darle permiso de ejecución y crear un acceso directo para facilitarle la vida al usuario.
Usando Rsync: Una breve explicación del comando: http://bit.ly/V1lAma
Sintaxis: rsync [OPTION] … SRC [SRC] … [USER@]HOST:DEST
Uso: rsync -av //192.168.1.4/Actualizaciones_programa/programa.jar /programa/
Hasta ahora realmente no hay nada el otro mundo pero .... Vamos a complicar un poco más las cosas.
Luego de que funcionara los scrips en Linux y en Windows empezaron a llamar los usuarios a indicar que se les demoraba demasiado al momento de abrir el programa, esto se generaba porque ambos comandos comparaban y copiaban siempre el .jar, aprovechando esto Gerencia me dijo "ya como estás en esas de una ves mira si puedes hacer para que pregunte primero antes de actualizar" y entonces ¿ que hacemos ?
Complicando las cosas: Usando Robocopy con errorlevel (Windows)
Copio mi script y lo explico:
@ECHO OFF
color 17 Pongo color a la pantallaTITLE Ingresando al Sistema v1.0 Un titulo cualquiera a la ventanta
robocopy /L \\192.168.1.4\Actualizaciones_Programa\ C:\Programa\ *.jar
if %errorlevel%==1 goto :ACT Si encuentra diferencia manda a preguntar ACT
if %errorlevel%==3 goto :ACT Si encuentra diferencia manda a preguntar ACT
:ACT
cls Manda a borrar la pantalla
echo Seleccione la opción
echo.
echo 1. Continuar
echo 2. Actualizar Sistema
echo. Un pequeño menú
SET /p var= Con el /p espero qu el usario escriba una opción
if %var%==1 goto :Continuar
if %var%==2 goto :Actualizar
:Actualizar
cls
echo Actualizando el Sistema
xcopy /c /r /y /f /D "\\192.168.1.4\Actualizaciones_Programa\Sistema.jar" "C:\Programa"
goto :Continuar
:Continuar
cls
echo Abriendo el Sistema
javaw -version:1.6 -Xms128m -Xmx512m -jar Sistema.jar
goto :eof
Complicando las cosas: Usando Rsync
Este script me costó un poco más terminarlo, ¿ porqué?, luego de tener funcionando ambos scripts no se que usuario "chistoso" o por error borró el .jar de la carpeta de actualizaciones y obviamente mis scripts no servían, por lo que tuve que ponerle usuario y contraseña a la carpeta y darle solo permiso de escritura.
Copio mi script y lo voy explicando.
#
# Script v1.1
# Creado por Danny Obando
kdialog --title "Venta del Sistema" --yesno "Desea Actualizar el Sistema?" Pregunta al usuario si desea actualizar o no.
if [[ $? -eq 0 ]]; then Si el usuario dice que si se actualiza el Sistema
sudo mkdir /media/act_programa/ Creo una carpeta temporal
sudo chmod -R 777 /media/act_programa/ Le cambio los permisos
notify-send "Actualizando v1.3" Ventana de notificación al usuario
sudo mount -t cifs -o username=act_programa,password=act_programa //192.168.1.4/Actualizaciones_Programa /media/act_programa/ Monto la unidad de red en la carpeta creada
if [ -e /media/act_programa/log.txt ] Se me ocurrio tener en esa carpeta log.txt para confirmar que se haya montado la unidad de red, si existe quiere decir que está correcto then
sudo rsync -av /media/act_programa/Sistema.jar /Programa/ Actualizo el programa sudo sleep 1
sudo umount /media/act_programa/ Desmonto la unidad de red
else
echo "Problema montando"
fi
sudo umount /media/act_programa/
if [ -e /media/act_programa/log.txt ] Confirmo que se haya desmontado, caso contrario la vuelvo a desmontar
then
echo "Quedo montada"
else
sudo rm -r /media/act_programa Elimino la carpeta creada
fi
notify-send "Abriendo el Sistema"
java -jar Sistema.jar
else
# Solo se abre el Sistema
notify-send "Abriendo el Sistema"
java -jar Sistema.jar
fi
En color café están mis comentarios y en los condicionales le puse un color distinto para dar una mejor referencia de donde empiezan y donde terminan.
Ya con todo eso he logrado "automatizar" la actualización del sistema en mi empresa, claro está que van surgiendo más y más requerimientos día a día por lo que le he hecho unos cuantos cambios más, pero eso es tema de otro post.
Espero les sea de ayuda o sirva de referencia a alguien que ande buscando lo mismo o algo por el estilo.
Dejen sus comentarios, o escribanme al twitter @Danny_Obando por cualquier cosa.
Hasta mi próximo post !!!
Suscribirse a:
Entradas (Atom)













