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 BlogAutomatizar 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_ipConvertir 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.
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
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/
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.
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
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
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