Mostrando entradas con la etiqueta linux. Mostrar todas las entradas
Mostrando entradas con la etiqueta linux. Mostrar todas las entradas

martes, 4 de junio de 2013

Linux: unzip convierte todo a minúsculas de un archivo creado con Winzip

Me ocurrió que cuando usaba unzip para descomprimir un archivo en Linux, que fue creado en Windows (con Winzip), me convertía todos los nombres de archivo en minúsculas, ocasionándome problemas al ejecutar mi código de una aplicación web.

La solución que encontré fue la siguiente:

Revisé si el comando unzip tenía algún alias que forzara la conversión a minúsculas con el parámetro -L

# alias

y efectivamente, ahí estaba el alias para unzip:

...
alias unzip='unzip -L'
...

Así que todo lo que hice fue quitar el alias de la siguiente manera:

unalias unzip

Si deseas que el cambio sea permanente puedes agregarlo a tu .bashrc, en este link puedes ver cómo hacerlo: "Cómo crear un shell .bashrc con servidores Linux de 1and1 Business Package"

sábado, 4 de mayo de 2013

Cómo crear un shell .bashrc con servidores Linux de 1and1 Business Package

Esto lo tengo realizado con mi servidor Linux Business Package de 1and1, y funciona con CentOs y Ubuntu, pero seguramente con otras distribuciones de linux también.

Primero, abrir una consola linux, puede ser con putty.exe (1and1 te lo ofrece gratis para que lo puedas descargar)

Ahora, lo que hay que hacer es crear/editar un archivo .bash_profile directamente en la carpeta home de tu usuario SSH de 1and1 (es el mismo que usas para conexiones FTP)

vi .bash_profile

Acto seguido, presiona la tecla i para cambiar a modo de edición, copiar el siguiente código

if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi
Presionar la tecla Esc y luego las teclas wq y presionas Enter, esto guardará el archivo recién creado.

Ahora sí, puedes crear/editar el archivo .bashrc y poner todo lo que tú deseas, en mi caso particular, quise personalizar el prompt y los colores de la pantalla:

# Personalizar los colores del comando ls y del prompt
# Ultiminio Ramos G.
# 2011-04-16
export LS_COLORS='di=01;35:ex=01;37:ow=01;04'

export PS1='[\[\e[01;37m\]\u\[\e[0m\]@\[\e[01;37m\H\[\e[0m\]] [\[\e[01;37m\]\d \t\[\e[0m\]] [\[\e[01;37m\]Path:\[\e[0m\] \[\e[01;36m\]\w\[\e[0m\]]\n\[\e[01;33m\]#\[\e[0m\] '

export GREP_COLOR='01;33'
alias grep='grep --color=auto' 
# Fin

La referencia la encontré aquí: http://stackoverflow.com/questions/820517/bashrc-at-ssh-login

Espero que les sea de utilidad.

lunes, 15 de abril de 2013

Cómo buscar con grep en subdirectorios y en cierto tipo de archivos

Sencillo pero útil comando para buscar cadenas dentro de archivos, pero de manera recursiva y para cierto tipo de archivos.
grep -rnHI 'getMedicalSpecialties' --include='*.java' --include='*.php' --include='*.class' .
Espero les haya sido de utilidad.

jueves, 14 de febrero de 2013

Magento: WSDL, limpiar los archivos del caché de PHP

Problema: Durante el desarrollo y exposición de Web services desde Magento usando SOAP, he tenido que prender y apagar el setting de "Enable WSDL Cache", y a veces, no actualiza los cambios realizados a las estructuras de datos definidos en los archivos wsdl.xml.

Solución: Eliminar los archivos temporales que PHP genera para el manejo de caché del archivo WSDL, así que:

Acceder a la carpeta temporal de tu servidor (linux), y eliminar los archivos temporales de wsdl:

cd /tmp
ls wsdl-* -l
rm wsdl-*

Listo, eso es todo.

Como beneficio adicional, seguramente esta acción evitará falsos errores de SOAP como:
  • Invalid API path
  • Is not a valid method
  • Resource path not callable

miércoles, 26 de septiembre de 2012

Android: Cómo "rootear" tu sistema

Hay que saber que los smartphones y las tablets que usan sistema operativo Android, están basados en linux, por lo tanto, el superusuario root viene bloqueado de fábrica.

Por diversas razones queremos hacer uso de este usuario en nuestro teléfono, en mi caso, tuve la necesidad de linkear aplicaciones y widgets a la memoria micro SD, para que no me consumiera el poco espacio de mi memoria interna, de tal manera que lo logré y ahora puedo instalar todas las aplicaciones que quiero.

Bueno, pues los pasos son bien sencillos:
  1. Descargar el programa unlockroot.exe, este lo vas a encontrar desde su sitio web: www.unlockroot.com 
  2.  Instalar el programa en tu computadora y después ejecutarlo
  3.  Como dicen las instrucciones, conectar tu smartphone o table por el puerto USB y en el smartphone o tablet ir a la configuración y habilitar la opción de "USB debugging". En mi smartphone con Android 2.3.4, la opción se encuentra en Settings >>  Application >> Development >> USB debugging (en español sería: Ajustes >> Aplicaciones >> Desarrollo >> Depuración de USB)
  4. Para mayor claridad pongo este link: www.unlockroot.com/guide/guide.htm
  5. Una vez activado, puedes hacer clic en "Root", una vez hecho esto, va a autodetectar tu dispositivo.
  6. Haz clic el botón que muestra el nombre de tu dispositivo.
  7. El programa va a desbloquear el usuario root de tu dispositivo (smartphone o tablet), además de que va a instalar una app que se llama Superuser.apk, la cual va a funcionar como un "hook" (gancho) que va a otorgar (grant) permisos de root cuando sea necesario de manera automática.
  8.  A lo largo de la instalación te va a preguntar si deseas instalar otras apps como ahorrar batería, pero ya es decisión tuya si deseas instalarla o no.
  9.  Al final, te indica si deseas reiniciar tu dispositivo, lo cual es recomendable para que entonces ya puedas funcionar como usuario root cuando sea necesario de manera automática.
  10. A mi me funcionó con un LG-E510g, pero hay un montón de dispositivos soportados.
  11. Cuan do ya hayas hecho lo que necesitabas como usuario root, no olvides desactivar la opción nde "USB debugging" ("Depuración de USB" en español) .
Espero que te haya servido esta solución como a mi me sirvió.

martes, 24 de julio de 2012

Magento: Cómo crear un helper

La creación de un helper en Magento es muy simple, lo que sí es muy importante, es tener cuidado en el uso de las mayúsculas y minúsculas, así como en el uso de comentarios en los archivos xml.

Este artículo también pretende ser un breve tutorial para comprender el porqué de las cosas.

1) Hay que crear un módulo para alojar nuestro helper, para ello, necesitamos crear un nuevo archivo en la carpeta app/etc/modules/ el cual llamaremos Micodigo.xml

Poner el siguiente código dentro:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Micodigo_Mihelper>
            <codePool>local</codePool>
            <active>true</active>
        </Micodigo_Mihelper>
    </modules>
</config>

Micodigo representa un espacio de nombres (Namespace) en donde podemos colocar uno o varios módulos nuestros.

Mihelper representa el nombre de nuestro módulo

En el nodo codePool, local significa que nuestro módulo es exclusivamente para nuestra necesidad específica (en Magento, community es por lo general para los plug-ins libres o comerciales que la comunidad de Magento desarrolla y resuelven problemas más comunes, y core significaría que este módulo es de la plataforma de Magento)

2) Crear el directorio app/code/local/Micodigo/Mihelper/etc/ y crear el archivo config.xml:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Micodigo_Mihelper>
            <version>1.0.0</version>
        </Micodigo_Mihelper>
    </modules>
    
    <global>
        <helpers>
            <mihelper>
                <class>Micodigo_Mihelper_Helper</class>
            </mihelper>
        </helpers>
    </global>
</config>

3) Crear la carpeta app/code/local/Micodigo/Mihelper/Helper/ y crear el archivo Data.php

<?php
class Micodigo_Mihelper_Helper_Data extends Mage_Core_Helper_Abstract
{

    public function test()
    {
        return 'Hola mundo' ."\n";
    }

}

4) Usar el helper de la siguientes maneras:

echo Mage::helper('mihelper')->test();
$helper = Mage::helper('mihelper')
echo $helper->test();

O si lo prefieres, puedes probarlo desde el shell, ya sea que hayas iniciado una sesión por SSH en linux:

1) Crear un archivo test.php en la carpeta raíz de Magento, y poner este código:

<?php
require 'app/Mage.php';
Mage::App('default');
if (!Mage::isInstalled()) {
    echo "Application is not installed yet, please complete install wizard first.";
    exit;
}

$_SERVER['SCRIPT_NAME'] = str_replace(basename(__FILE__), 'index.php', $_SERVER['SCRIPT_NAME']);
$_SERVER['SCRIPT_FILENAME'] = str_replace(basename(__FILE__), 'index.php', $_SERVER['SCRIPT_FILENAME']);
ini_set('display_errors', '1');

require 'Mage/Core/Helper/Data.php';
echo Mage::helper('mihelper')->test();

2) Ejecutarlo desde el prompt de linux, con un comando como este (hay que tomar en cuenta que la ubicación del archivo php binario varía según la distribucion de linux que estés usando, en este caso es con CentOS 6):

/usr/bin/php ./test.php

domingo, 27 de mayo de 2012

Problemas con MySQL en CentOS después de la actualización con yum

Este fue el error:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

Este fue mi caso: cuando se estaba actualizando CentOS con yum, se encontraron los siguientes errores con los paquetes de mysql:

Updating: mysql-server                                                                                19/47
Stopping mysqld:  [  OK  ]
/usr/bin/mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect
FATAL ERROR: Upgrade failed
Stopping mysqld:  [  OK  ]

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
Stopping mysqld:  [  OK  ]
MySQL Daemon failed to start.
Starting mysqld:  [FAILED]
Non-fatal POSTIN scriptlet failure in rpm package mysql-server-5.5.24-6.el5.art.x86_64
error: %post(mysql-server-5.5.24-6.el5.art.x86_64) scriptlet failed, exit status 1
Updating: php-gd

Esto generó un problema con Plesk Panel (10.x) y obviamente, el servicio de mysqld no arrancaba mostrando el error:

Problemas con mysql.servers y con mysql.users

Problemas con mysql.servers y con mysql.users

Si por alguna razón se comenzara a tener problemas con la tabla de sistema mysql.servers:

Desde una sesión de ssh console, acceder a la consola mysql y regenerar la tabla mysql.servers con los siguientes comandos:

mysql -u usuario_mysql -p'password_aqui'

Nota: es muy importante no dejar un espacio después del parámetro -p

Ya dentro de la consola mysql:

USE mysql;
CREATE TABLE `servers` ( `Server_name` char(64) NOT NULL, `Host` char(64) NOT NULL, `Db` char(64) NOT NULL, `Username` char(64) NOT NULL, `Password` char(64) NOT NULL, `Port` int(4) DEFAULT NULL, `Socket` char(64) DEFAULT NULL, `Wrapper` char(64) NOT NULL, `Owner` char(64) NOT NULL, PRIMARY KEY (`Server_name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';
exit;

De regreso al prompt de ssh console, regenerar la tablas de privilegios de usuarios mysql.user con el siguiente comando:

mysql_fix_privilege_tables --user=tuUsuarioAdmin --password='tuPassword' --verbose

Problemas con mysql.proc

Si por alguna razón comenzaras a tener problemas con la tabla de sistema mysql.proc y recibes alguno de estos errores:

[ERROR] Column count of mysql.proc is wrong. Expected 20, found 16. The table is probably corrupted

[ERROR] Column count of mysql.db is wrong. Expected 22, found 20. The table is probably corrupted

En mi caso, estos errores son generados por el upgrade que tuve que hacer con yum (CentOS 5), entre los cuales, actualizó también MySQL de la versión 5.0.x a la 5.5.x, entonces para solucionarlo:

Desde una sesión de ssh console, ejecutar el comando mysql_upgrade y luego reinicar el servicio:

mysql_upgrade -u tuUsuarioAdmin -p'tuPassword'
service mysqld restart

Nota: es muy importante no dejar un espacio después del parámetro -p

Esto va a hacer que las tablas del sistema tengan las nuevas definiciones de datos de la nueva versión.

viernes, 25 de mayo de 2012

CentOS 5 - Actualización de PHP 5.1 a 5.2 o a 5.3, en un servidor 1and1

CentOS 5 - Actualización de PHP 5.1 a 5.2 o a 5.3, en un servidor 1and1

En paquetes de Virtual Server o Dedicated Server de 1and1.

Es necesario actualizar PHP 5.1 a 5.2 (o 5.3) en CentOs 5 porque PHP 5.1 no tiene soporte para JSON, entonces:

  1. Desde una sesión de ssh console, crear un archivo de repositorio (ver Webografía al final):
             cd /etc/yum.repos.d
             vi atomic.repo 
          

sábado, 15 de octubre de 2011

Linux: Cómo incluir en un respaldo con tar el archivo .htaccess

Linux: Cuando se desea incluir en un respaldo el archivo .htaccess simplemente debes aplicar el siguiente comando.


tar -cf myrespaldo.tar .ht* *


Sencillo...

sábado, 16 de abril de 2011

Linux: Personalizar prompt, colores, directorios y archivos con los comando ls y grep

Linux: Cómo cambiar y personalizar la apariencia y el color del prompt, así como de los archivos (ficheros) y carpetas (directorios)  cuando usamos el comando ls, y resaltar la búsqueda de resultados con el comando grep

En mi caso esto lo hice con CentOS pero realmente funciona para cualquier distribución de linux.

Para personalizar los colores de los archivos y directorios listados con el comando ls:
# export LS_COLORS='di=01;35:ex=01;37:ow=01;04'
# ls -l

Si deseas entender qué significó todo esto, entonces ve abajo la lista completa de los tipos de archivos que se pueden personalizar.

Datos personales

Mi foto
Podrás encontrar códigos recursos y artículos sobre PHP, JavaScript, jQuery, MooTools, Ajax, CSS, HTML, UML, RUP, AUP, XP (eXtreme Programming), Six-Sigma, CMMI, FrameWorks, Zend Framework, Magento, CodeIgniter, CakePHP, Joomla 1.5, Doctrine, Active Record, ORM, POO, MVC, MySql, PostgreSql. Este espacio está destinado a ayudar y compartir un poco de lo mucho que he recibido de la comunidad en la Red.