viernes, 21 de marzo de 2014

Actualizar #consecutivo a tabla #MySQL


Para actualizar un consecutivo,

Sin necesidad de realizar un ciclo, podemos actualizar un campo dado, comenzando con su maximo valor y que de ahi continue en consecutivo:

Creamos la tabla

CREATE TABLE tabla_prueba (id integer(4), valor varchar(40));

Insertamos registros a la tabla:
INSERT INTO tabla_prueba (id, valor) values(1,'valor1'),(2,'valor2'),(3,'valor3'),
       (0,'valor4'),(0,'valor5'),(0,'valor5');

Insertamos 3 registros con valor 0 en el campo id.

Actualizaremos esos registros que quedaron en 0, con un consecutivo.

UPDATE tabla_prueba as a, (SELECT @numeroConsecutivo:= (SELECT max(id) FROM tabla_prueba)) as tabla
SET a.id=@numeroConsecutivo:=@numeroConsecutivo+1 WHERE a.id = 0;


Cabe mencionar y como podrán observar que solo seleccione los campos con id = 0 para que se notara, si no, hubiera actualizado todos los registros con consecutivo a partir del 3, ya que era el máximo en su momento.

martes, 25 de febrero de 2014

Ejecutar sublime por consola (MAC)

Por comodidad y si a alguien le es de utilidad...

Desde la consola de MAC, se puede ejecutar Sublimetext esto por una linea de comandos muy sencilla:

subl file_name
Les dejo el link, para que sigan los pasos a seguir para poder realizarlo.. recuerden que una hora de planeación puede ahorrar hasta 5 horas de trabajo.

Sublimetext MAC (OSX)

Saludos a  todos, que tengan excelente día.

Comparar archivos #Linux

Para comparar 2 archivos desde Linuxs o Unix, existe un comando que probablemente ya conozcan, Diff.

La sintaxis es tan sencilla como:

diff archivo1 archivo2 > salida.txt

Pero si queremos hacer la comparación entre archivos de diferentes servidores, sin la necesidad de tener que copiar el archivo a uno u otro servidor:


ssh user@hostserver "cat ~/public_html/index.php" | diff - ~/public_html/index.php > diff.txt

Donde compara el archivo index.php del servidor al que hacemos referencia con el "hostserver", obviamente tendremos que tener acceso al servidor donde se encuentra el archivo foráneo.

Query por consola a Base de Datos

Para ejecutar una consulta que extraiga información de una base de datos(#database) por consola, el resultado mandarlo a un archivo de salida:


En este ejemplo, vamos a obtener la url de una imagen, y concatenando otros string, vamos a generar una salida como "cp /home/user/imagen.pjg /home/user/imagenes/", esto dentro de un archivo llamado, salida.sql

echo "SELECT  concat('cp ', url, '/', file, ' ', url, 'imagenes/'  FROM table_imagenes WHERE LEFT(file,2)='p_';" | mysql -A database_name > salida.sql

La sintaxis seria:

 echo "SELECT  campo  FROM table_name;" | mysql -A database_name > output.sql

viernes, 3 de enero de 2014

Keychain, certificado para conectarse de manera segurda por SSH


Para activar el certificado de seguridad por ssh y conectarse de manera mas sencilla y segura
desde nuestra maquina con ubuntus o derivado de linuxs, instalamos el programa #keychain:

Para Ubuntus y Debian (desde consola):

 sudo apt-get update && apt-get install keychain

Luego ejecutamos el comando, ya sea para cada uno de los tipos de certificados que
queremos usar:

$ ssh-keygen -t rsa

o

$ ssh-keygen -t dsa

Este nos va a pedir el nombre del archivo que se va a generar, yo por lo general le pongo
id_rsa_host

y nos pedire despues una frase que es la que no debemos olvidar, que sera la cual nos pedire
en vez de la contraseña.

Nos va a generar 2 archivos en el
$HOME/.ssh/id_rsa_host.pub  y $HOME/.ssh/id_rsa_host

El archivo que tiene extensión .pub (id_rsa_host.pub) y lo copiamos al servidor el archivo.
Despues tendremos que concatenar la información de dicho archivo al archivo authorized_keys
que ya existe en el servidor:

 cat ~/.ssh/id_rsa_host.pub >> ~/.ssh/authorized_keys


 Espero haberme explicado, de cualquier modo, pueden preguntar y tratare de resolverles,

 Saludos.



martes, 3 de diciembre de 2013

#Remplazar strings en editores Linux

Los que han utilizado editores de texto atraves de consolas sabran de lo que hablo cuando no tenemos experiencia y requerimos de remplazar un string por otro (palabra por otra).

Aquí les dejo un comando que me ha funcionado a mi y puede ser usado de dos maneras, con el archivo abierto o con el archivo no abierto.

Si el archivo es muy grande no abria necesidad de abrirlo entonces usamos:

sed -i 's/\string_viejo//string_nuevo' nombre_archivo

Ejemplo:
Cambiar el signo $ por un  ? del archivo holamundo.sql

sed -i 's/\$/?/g' holamundo.sql


Remplazar string dentro del editor, en este caso el editor "vim":
le ponemos : y

Aqui remplazamos el signo $ con un ?
 :%s/\$/?/g

Casi igualito..

Saludos y esperemos que de algo les sirva, a mi me a ahorrado tiempo.

lunes, 2 de diciembre de 2013

No olvides poner el #WHERE, en el delete from

En esta ocasión les dejare el siguiente link de un video-cancion de un error, que espero no sea comun ni mucho menos les suceda por que puede ser algo extramadamente trágico:


Link -> No te olvides de Poner WHERE (8)


De igual manera para su autor, mi reconocimiento y gratitud...

Todo lo parecido a la realidad es mera coincidencia