Blog de Ubuntu en Español Blog [no oficial] de Ubuntu en Español

1Sep/110

Remover espacios en blanco de multiples archivos

Este es un Quick tip que encontre muy util y lo comparto con ustedes Fuente | Fedora Linux Legacy Blog
5Aug/110

Automatizar tareas FTP dentro de un script en BASH

La automatización de tareas vía FTP dentro de un script , puede resultar muy útil para scripts de copias de seguridad por ejemplo. Vamos a ver la forma de hacerlo y las posibilidades que nos ofrece. La sintaxis básica para hacer la llamada a FTP dentro de un script en bash es la siguiente: ftp -inv direccion_ip
14Nov/100

Convertir archivos gsm a archivos wav

Pequeño script para convertir archivos de sonido en formato gsm a formato wav :

#!/bin/bash
function printUse() {
echo "Uso: `basename $0` <nombres-archivos-gsm>"}

if [ $# -lt 1 ]; then
echo "Número de parametros incorrecto."
printUse
exit
fi

for file in $@; do
echo "Convirtiendo archivo '$file' a '$file.wav'…"
sox $file -r 8000 -c 1 -w -s $file.wav
done

Para hacer se utiliza la aplicación sox que sirve para convertir archivos de sonido en Linux. El significado de cada parámetro (y todos los demás) se puede ver en la documentación, aunque a mi con éstos me llegan.

1Dec/090

Mysql dump only data

Un truquito rapido para el mysql

Dump solo con los insert de informacion sin la estructura, truco que investigue gracias a una migracion que estaba haciendo @lionel (un cuate) jajaja y no queria que se realizara ningun drop en el import de la info .

aqui les dejo la linea de commando para correr este tipo de exports

mysqldump -u user -p --skip-triggers --compact --no-create-info DATABASE > DATABASE.sql
29Oct/090

Linux Quick tip | como bajar multiples archivos usando wget

Un tip super rapido y super util con esta linea podemos bajar todo el contenido de una web especificando el tipo de archivos que queremos descargar, en el siguiente ejemplo :

wget -r -A.pdf http://url-to-webpage-with-pdfs/

Post to Twitter Tweet This Post Post to Delicious Delicious

19Sep/090

Mysql Too many connections

El mensaje que nunca queremos ver al intentar conectarnos en nuestro Mysql, y que significa esto, pues que todas las conexiones disponibles (100 por default) dentro de nuestro mysql han sido ya tomadas.

Lo primero que debemos de verificar es que clase de conexiones esta manejando el mysql server, debido a que algunas de ellas pueden estar “colgadas”.

mysqladmin -uUSUARIO -pPASSWORD processlist

para aumentar el numero de conexiones concurrentes que nuestro servidor mysql puede manejar vamos a editar el archivo /etc/mysql/my.cnf:

port = 3306
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-locking
set-variable = max_connections=100

aquí cambiaremos el valor predeterminado de 100 a 250 o un poco mas, recuerden que esta cantidad depende linealmente de la cantidad de memoria ram de que la dispongamos y así también del poder de CPU.

NOTA: algunas veces este problema tambien puede estar realacionado con la resolucion DNS, asi que tambien podemos verificar el archivo /etc/hosts de cliente para ver si esta bien definido el nombre e IP del servidor, asi tambien estos mismos datos dentro del /etc/hosts del server.

Post to Twitter Tweet This Post Post to Delicious Delicious

29Aug/090

instalar magento (cart) en Dreamhost

El dia de hoy me pase la tarde intentando instalar Magento en mi Dreamhost, pero ni via web ni via ssh con el listado de comandos del wiki de magento he podido hasta, que buscando en foros me encontrado algunas pistas para la instalación via CLI (script), aquí les dejo como hacerlo automáticamente.

NOTA: con este script se hace muy bien desde cero, aunque toma su tiempo terminar la instalación ,asi que paciencia

#!/bin/bash

    dbhost="HOST DE LA DB";
    dbname="NOMBRE DE LA DB";
    dbuser="USUARIO DE LA DB";
    dbpass="PASSWORD";
    url="http://DOMINIO A SER INSTALADO";

    adminuser="USUARIO PARA ADMINISTRAR MAGENTO";
    adminpass="PASSWORD ADMINISTRATIVO";
    adminfname="NOMBRE DEL ADMIN";
    adminlname="APELLIDO DEL ADMIN";
    adminemail="ADMIN@TUDOMINIO";

echo "To install Magento, you will need a blank database ready with a user assigned to it."
echo
echo -n "Do you have all of your database information? (y/n) "
read dbinfo

if [ "$dbinfo" = "y" ]; then
    echo

    echo -n "Include Sample Data? (y/n) "
    read sample

    if [ "$sample" = "y" ]; then
        echo
        echo "Now installing Magento with sample data..."

        echo
        echo "Downloading packages..."
        echo

        wget http://www.magentocommerce.com/downloads/assets/1.3.2.3/magento-1.3.2.3.tar.gz
        wget http://www.magentocommerce.com/downloads/assets/1.2.0/magento-sample-data-1.2.0.tar.gz

        echo
        echo "Extracting data..."
        echo

        tar -zxvf magento-1.3.2.3.tar.gz
        tar -zxvf magento-sample-data-1.2.0.tar.gz

        echo
        echo "Moving files..."
        echo

        mv magento-sample-data-1.2.0/media/* magento/media/
        mv magento-sample-data-1.2.0/magento_sample_data_for_1.2.0.sql magento/data.sql
        mv magento/* magento/.htaccess .

        echo
        echo "Setting permissions..."
        echo

        chmod o+w var var/.htaccess app/etc
        chmod -R o+w media

        echo
        echo "Importing sample products..."
        echo

        mysql -h $dbhost -u $dbuser -p$dbpass $dbname < data.sql

        echo
        echo "Initializing PEAR registry..."
        echo

        ./pear mage-setup .

        echo
        echo "Downloading packages..."
        echo

        ./pear install magento-core/Mage_All_Latest

        echo
        echo "Cleaning up files..."
        echo

        rm -rf downloader/pearlib/cache/* downloader/pearlib/download/*
        rm -rf magento/ magento-sample-data-1.2.0/
        rm -rf magento-1.3.2.3.tar.gz magento-sample-data-1.2.0.tar.gz
        rm -rf index.php.sample .htaccess.sample php.ini.sample LICENSE.txt STATUS.txt data.sql

        echo
        echo "Installing Magento..."
        echo

        /usr/local/php5/bin/php -f install.php -- \
        --license_agreement_accepted "yes" \
        --locale "en_US" \
        --timezone "America/Los_Angeles" \
        --default_currency "USD" \
        --db_host "$dbhost" \
        --db_name "$dbname" \
        --db_user "$dbuser" \
        --db_pass "$dbpass" \
        --url "$url" \
        --use_rewrites "yes" \
        --use_secure "no" \
        --secure_base_url "" \
        --use_secure_admin "no" \
        --admin_firstname "$adminfname" \
        --admin_lastname "$adminlname" \
        --admin_email "$adminemail" \
        --admin_username "$adminuser" \
        --admin_password "$adminpass"

        echo
        echo "Finished installing Magento"
        echo

        exit
    else
        echo "Now installing Magento without sample data..."

        echo
        echo "Downloading packages..."
        echo

        wget http://www.magentocommerce.com/downloads/assets/1.3.2.3/magento-1.3.2.3.tar.gz

        echo
        echo "Extracting data..."
        echo

        tar -zxvf magento-1.3.2.3.tar.gz

        echo
        echo "Moving files..."
        echo

        mv magento/* magento/.htaccess .

        echo
        echo "Setting permissions..."
        echo

        chmod o+w var var/.htaccess app/etc
        chmod -R o+w media

        echo
        echo "Initializing PEAR registry..."
        echo

        ./pear mage-setup .

        echo
        echo "Downloading packages..."
        echo

        ./pear install magento-core/Mage_All_Latest

        echo
        echo "Cleaning up files..."
        echo

        rm -rf downloader/pearlib/cache/* downloader/pearlib/download/*
        rm -rf magento/ magento-1.3.2.3.tar.gz
        rm -rf index.php.sample .htaccess.sample php.ini.sample LICENSE.txt STATUS.txt

        echo
        echo "Installing Magento..."
        echo

        /usr/local/php5/bin/php -f install.php -- \
        --license_agreement_accepted "yes" \
        --locale "en_US" \
        --timezone "America/Los_Angeles" \
        --default_currency "USD" \
        --db_host "$dbhost" \
        --db_name "$dbname" \
        --db_user "$dbuser" \
        --db_pass "$dbpass" \
        --url "$url" \
        --use_rewrites "yes" \
        --use_secure "no" \
        --secure_base_url "" \
        --use_secure_admin "no" \
        --admin_firstname "$adminfname" \
        --admin_lastname "$adminlname" \
        --admin_email "$adminemail" \
        --admin_username "$adminuser" \
        --admin_password "$adminpass"

        echo
        echo "Finished installing Magento"

        exit
    fi
else
    echo
    echo "Please setup a database first. Don't forget to assign a database user!"

    exit
fi

Post to Twitter Tweet This Post Post to Delicious Delicious

28Aug/090

Forzar velocidad en NIC debian / ubuntu

Este es un script para forzar la velocidad de transmision de nuestra NIC en forma permanente para cualquier sistema debian o derivados.
Como usuario root vamos a editar el siguiente script :

# vi /etc/init.d/speednic.sh

ahora el contenido de nuestro script: (en mi caso es una NIC de 1000)

#!/bin/sh
## con esto definiremos el path de nuestra herramienta ##
ETHTOOL="$(which ethtool)"
## aqui definiremos la NIC a modificar ##
DEV="eth1"
## La velocidad que deseamos establecer ##
SP="1000 duplex full"
case "$1" in
start)
echo -n "Ajustando parametros en la  NIC";
$ETHTOOL -s $DEV speed $SP;
echo " done.";;
stop)
;;
esac
exit 0

ahora unicamente le tenemos que dar permisos de ejecucion, colocarlo en los scripts de arranque y ejecutarlo

# chmod +x /etc/init.d/speednic.sh
# update-rc.d speednic.sh defaults

Ejecutando…

 /etc/init.d/speednic.sh start

Post to Twitter Tweet This Post Post to Delicious Delicious

21Aug/090

Migrar Mysql a otro Mysql via bash remotamente

Este es un pequeño script que hice para poder sincronizar 2 servidores mysql en el interim de una migracion, para poder usar este script el mysql de nuestro server destino tiene que estar limpia (recien instalada) porque el script va a generar todas las bases de datos segun el listado que encuentre en el servidor origen, y luego de eso a llenar con la data existente. Se recomienda que se pausen toda transaccion en el servidor origen para que pueda copiar exactamente igual la informacion.

El unico detalle de este script es que

#!/bin/sh
# System + MySQL backup script remoto
# Copyright (c) 2009 Paulo Alvarado
# This script is licensed under GNU GPL version 2.0 or above
# ---------------------------------------------------------------------

#########################
######CONFIGURACION#####

### MySQL Setup ###
MUSER="USER"
MPASS="PASSWORD"
MHOST="IPLOCAL"

NUSER="USER"
NPASS="PASSWORD"
NHOST="IPREMOTA"

######DECLARACION DE BINARIOS NO MODIFICAR#####
###############################################

### Binaries ###
MYSQL="$(which mysql)"
MYSQLDUMP="$(which mysqldump)"

### Get all databases name ###
DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
for db in $DBS
do
	### CREA LAS BASES DE DATOS EN EL SERVER REMOTO NOMBRES IDENTICOS ###
	echo 'create database' $db ';'|$MYSQL -u $MUSER -h $NHOST -p$MPASS

	### SINCRONIZA TODA LA DATA DE LAS DBs AL SERVER REMOTO ###
	echo $db; $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | mysql -h $NHOST -u $NUSER  -p$NPASS $db 

done

Post to Twitter Tweet This Post Post to Delicious Delicious