jump to navigation

Repositorio de Scripts

Inauguro una nueva seccion. Esta pagina es para ir guardando pequeños scripts o secuencias de comandos que pueden sernos utiles en nuestra casa o en el trabajo. Tengo mala memoria, asi que es un medio para ir almacenandolos y ademas para que cualquiera pueda tambien mediante un comentario ir añadiendo los suyos propios. La idea podria ser escribir un comentario donde ponemos:


TITULO SCRIPT COMANDO
texto descriptivo de lo que hace
Comando o script
y por ultimo la referencia, la URL de donde lo hemos sacado si no es propio.

Un ejemplo (tonto) pero para que quede mas o menos claro lo que intento:

IMPRIMIR LA LISTA DE PROCESOS Y BUSCAR POR UNO CONCRETO
Este comando se usa para imprimir la lista de procesos en ejecucion.
ps -ef | grep texto
Ejemplo: ps - ef | grep java
Referencia: Ubuntulife (http://ubuntulife.wordpress.com)

Si la idea funciona, tal vez pueda montar una seccion o blog independiente.

Comentarios»

1. superpiwi - Abril 17, 2007

BUSCAR TEXTO DENTRO DE FICHEROS EN LINUX

Utilizado cuando queremos buscar una cadena de texto en varios ficheros simultaneamente.
Es de la forma find directorio_donde_buscar.

find . -exec grep -l texto_a_buscar {} \;

Referencia: http://uannight.wordpress.com/2007/04/16/buscar-texto-dentro-de-ficheros-en-linux/

2. superpiwi - Abril 17, 2007

COPIAR ARCHIVOS DESDE UN SERVIDOR A OTRO CON RSYNC

Si necesitan mover muchos archivos desde un servidor a otro, rsync por ssh es una de las formas mas convenientes.

rsync -var -e ssh archivos_a_mover usuario@servidor_distante:/directorio_para_archivos/

Opciones:
-v: verbose
-a: modo archive
-r: recursivo

Referencia:
http://n31m4d.wordpress.com/2007/04/16/copiar-archivos-desde-un-servidor-a-otro-con-rsync/

3. superpiwi - Abril 18, 2007

ARRANCAR/PARAR AUTOMATICAMENTE UNA BASE DE DATOS ORACLE EN LINUX

Coloca este codigo en /etc/init.d y crea enlaces en rc5.d y rc3.d para que Oracle pueda arrancar o parar automaticamente cuando arranquemos o hagamos shutdown del Sistema Operativo Linux.

# chkconfig: 35 95 1
# description: init script to start/stop oracle database 10g, TNS listener, EMS
#
#
# match these values to your environment:

export ORACLE_BASE=/usr/u01/app/oracle
export ORACLE_HOME=/usr/u01/app/oracle/product/10.2.0.1
export ORACLE_TERM=xterm
export PATH=/home/oracle/bin:$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl
export DISPLAY=:0
export ORACLE_USER=oracle

# see how we are called:
case $1 in
start)
su - “$ORACLE_USER”<<EOO
lsnrctl start
sqlplus /nolog<<EOS
connect / as sysdba
startup
EOS
emctl start dbconsole
EOO
;;

stop)
su - “$ORACLE_USER”<<EOO
lsnrctl stop
sqlplus /nolog<<EOS
connect / as sysdba
shutdown immediate
EOS
emctl stop dbconsole
EOO
;;

*)
echo “Usage: $0 {start|stop}”
;;
esac

Referencia:
http://sulistyoas.wordpress.com/2007/04/18/automatic-start-and-shutdown-for-oracle-database-in-linux/

4. superpiwi - Mayo 4, 2007

UNIR VARIOS FICHEROS PDF EN UNO NUEVO

Emplea la utilidad pdftk (http://www.accesspdf.com/pdftk/), el siguiente comando nos permite unir varios archivos PDF en uno nuevo:

pdftk Archivo1.pdf Archivo2.pdf … ArchivoN.pdf cat output ArchivoNuevo.pdf

Tambien pueden emplearse wildcarts, por ejemplo Archivo?.pdf o Archivo*.pdf

5. superpiwi - Mayo 7, 2007

LEER EL VALOR DE UNA KEY DESDE FICHERO DE PROPIEDADES

Permite leer un fichero donde tengamos claves de la forma key=value para recuperar el valor de la misma

Ejemplo, para un fichero de propiedades variables.txt como este:

# Listado de variables
VARIABLE_01=000000001
VARIABLE_02=PRUEBA

El siguiente shell script recupera el valor de la propiedad VARIABLE_01:

# Leer un fichero de propiedades y recuperar el valor de una KEY
RUTA_PROPERTIES=”/home/jose/Desktop/variables.txt”
KEY=”VARIABLE_01″
MI_VARIABLE_01=`cat $RUTA_PROPERTIES | grep $KEY | awk -F= ‘{print $2}’ `
export MI_VARIABLE_01
echo “El valor de la variable es $MI_VARIABLE_01″

6. superpiwi - Mayo 8, 2007

IMPRIMIR CONTENIDO DE UN DIRECTORIO A UN FICHERO CVS

De utilidad por ejemplo si tienes una carpeta con musica (ficheros.mp3) y quieres imprimir un listado de los mismos.

dir -C -1 -N -R /music/ > music-listing.csv

Referencia:
http://lcrm.wordpress.com/2007/05/07/print-directory-listing-to-a-csv-file/

7. superpiwi - Mayo 9, 2007

REDIMENSIONAR VARIAS IMAGENES SIMULTANEAMENTE

Requiere tener instalado el paquete imagemagick , que podemos obtener usando apt ( apt-get install imagemagick ) en nuesto sistema debian o ubuntu. Imagemagick son un conjunto de utilidades que nos permiten manipular imagenes desde la consola.

Código :

for i in `ls . *.jpg` ; do
convert $i -resize 800×600 -quality 70 peque_$i
done

Decir que donde pone `ls . ` , podemos modificar el directorio donde están nuestras imágenes , y se puede modificar “peque_$i” por otro prefijo que más te guste, así como las opciones del resize y la calidad de la imagen,

Para ejecutarlo, hay que grabar estas líneas en un fichero de texto , dentro de el directorio donde están las imágenes añadiendo en la primera línea
#!/bin/bash
y luego desde la consola darle permisos de ejecución con
chmod +x nombredelfichero
y ejecutarlo con ./nombredelfichero

Referencia:
http://xisnu.wordpress.com/2007/05/01/como-redimensionar-1000-fotos-en-un-momento-y-no-morir-en-el-intento/

8. superpiwi - Mayo 10, 2007

BORRAR LA PAPELERA DESDE CONSOLA

$ cd $HOME
$ cd .Trash
$ sudo -s
$ rm -r *

9. superpiwi - Mayo 17, 2007

RECUPERAR LA DIRECCION IP DE TU MAQUINA

ifconfig | grep “inet addr”

10. superpiwi - Mayo 17, 2007

BUSCAR UN FICHERO EN EL ARBOL DE DIRECTORIOS

Busca un fichero por todo el sistema de ficheros, o a partir de la ruta que se especifique.

Sintaxis: find ruta_desde_donde_buscar -nama fichero

Ejemplo: find / -name *.ppt

11. superpiwi - Mayo 18, 2007

VER LAS DEPENDENCIAS DE LIBRERIAS COMPARTIDAS QUE TIENE UN EJECUTABLE

ldd ejecutable

Ejemplo:
$ ldd gzip
linux-gate.so.1 => (0xffffe000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7dc3000)
/lib/ld-linux.so.2 (0xb7f0e000)

12. superpiwi - Mayo 18, 2007

VER DE QUE TIPO ES UN FICHERO

file fichero

Ejemplo:
$ file rm
rm: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for GNU/Linux 2.6.0, dynamically linked (uses shared libs), for GNU/Linux 2.6.0, stripped

13. superpiwi - Mayo 18, 2007

OBTENER VERSION DEL KERNEL ACTUAL E INFORMACION DE LA MAQUINA

Podemos usar el comando uname y lsb_release (Linux standard base)

Ejemplo:

$ uname -a
Linux soledad 2.6.17-10-generic #2 SMP Tue Dec 5 22:28:26 UTC 2006 i686 GNU/Linux

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 6.10
Release: 6.10
Codename: edgy

14. Lorgi - Mayo 19, 2007

CREAR TU PROPIO REPOSITORIO LOCAL

#!/bin/bash
##############################
# Genera un menú de opciones #
##############################
clear;
while [ “$OPCION” != 6 ]
do
echo “####################################################################”
echo ” Bienvenido a LRepository ”
echo “Nota: debes tener creadas las carpetas /media/tudisco/festy/apt ”
echo “caso contrario crealas primero y modifique sda5 por tu disco en el
codigo fuente, podria automatizarlo pero eso se los dejo a ustedes ”
echo “Un Saludo ”
echo “Reacondicionado by Lorgi ”
echo “####################################################################”
echo “[1] Sincronizar /var/cache/apt/archives/ en /media/sda5/feisty/apt/”
echo “[2] Sincronizar /media/sda5/feisty/apt/ en /var/cache/apt/archives/”
echo “[3] Crear repositorio en /media/backups/Dapper/apt/archives/”
echo “[4] Hacer aptitude update”
echo “[5] Eliminar todos los archivos del directorio /var/cache/apt/archives”
echo “[6] Salir”
echo “####################################################################”
read -p “Elija_una_opción:” OPCION
case $OPCION in
1) sudo rsync -avz /var/cache/apt/archives/ /media/sda5/feisty/apt/;clear;
echo “SINCRONIZACION REALIZADA”;;
2) sudo rsync -avz /media/sda5/feisty/apt/ /var/cache/apt/archives/;;
3) sudo dpkg-scansources /media/sda5/feisty/apt /dev/null | gzip -9c> /media/sda5/feisty/apt/Sources.gz;
sudo dpkg-scanpackages /media/sda5/feisty/apt /dev/null | gzip -9c> /media/sda5/feisty/apt/Packages.gz;;
4) sudo aptitude update;;
5) sudo rm /var/cache/apt/archives/*.*;;
6) clear; echo “Hasta Luego”; break;;
*) clear; echo “Opción ingresada invalida, intentelo de nuevo”;;

esac
done
exit 0

Referencia: lo siento no recuerdo de que blog saque las bases yo lo reacondicione pero espero les sirva.

Un saludo

15. Muchos scripts para GNU/Linux | Magarto - Junio 5, 2007

[...] En esta sección podréis encontrar un repositorio de scripts de lo más interesantes y abundantes como: [...]

16. juaco - Junio 10, 2007

script que devuelve un archivo al azar de un directorio que se le pase como argumento

#!/bin/bash
archivos=( $(echo $1/*) )
echo ${archivos[$(( $RANDOM % ${#archivos[@]} ))]}

si se reemplaza el echo $1/* por un uso mas especializado del comando find se puede obtener otro tipo de flexibilidad. yo lo acabo de escribir para cambiar el splash de grub :D

Salus!

17. sebastianstucke - Septiembre 3, 2007

para eliminar archivos recursivamente de directorios:
http://www.tuxero.com/2007/09/cmo-borrar-archivos-intiles-de-windows.html
Saludos!

18. Max Damage - Diciembre 16, 2007

Script para quitar los Thumbs.db que genera “un sistema operativo” automaticamente de un directorio que se le pase, por ejemplo, el directorio donde se monta una unidad extraible.

if test $# -eq 1
then
if test -d $1
then
find $1 -name “Thumbs.db” -print0 | xargs -0 rm
echo “Se han eliminado $(find $1 -name “Thumbs-db” | wc -l) archivos Thumbs.db”
else
echo “El parametro no es un directorio valido”
fi
else
echo “Comando con un solo parametro”
fi
exit

19. xgamanet - Marzo 22, 2008

wget -c -i nombre_del_archivo

/*
Para iniciar descargas con las URLs que tengas en un archivo …ayuda cuando tienes que descargar bastantes cosas y te sabes las direcciones.
es simple pero me ayudó un buen.
también funciona para FTPs
*/

20. T. A. C. - Abril 17, 2008

Ver la temperatura de un disco duro con tecnologia S.M.A.R.T.

Es muy sencillo y lo vamos a definir como un alias. Requiere tener instalado smartmontools. Si usais bash, hacéis

alias temp_hda=”smartctl -a /dev/hda | grep 194″

o bien

alias temp_hda=”smartctl -a /dev/hda | grep Temperature”

si teneis mas de un disco duro, cambiais hda por hdb, hdc, etc, o bien sda, según la configuración que tengáis.

21. Elidix - Abril 21, 2008

Para corregir automaticamente los errores con las llaves de GPG que suelen tener los repositorios de Debian y Ubuntu.

##=========================================================
## El Cerrajero — Version 0.3 por Sapphire
##=========================================================

##Si el UID es distinto a 0, entonces:
if [ "$UID" > 1 ]; then
echo ” ”
echo “El script tiene que ser ejecutado como ROOT.”
echo ” ”
return 0
fi

##Si los argumentos estan vacios:
if [ -z "$1" ]; then
echo ” ”
echo “Usage: sh cerrajero.sh -a | -s [GPG Error ID.] | –help”
echo ” ”
echo “–a Busca automaticamente los errores y los intenta corregir.”
echo “–s Poner junto al codigo de error para solucionar solo ese.”
echo “–v Version del script”
echo “–help Esta ayuda que esta viendo.”
echo ” ”
return 0

##Si el argumento –a esta puesto, entonces:
elif [ "$1" = --a ]; then

##Texto al azar que queda bien [?] xD
echo ” ”
echo “Updateando la lista: /etc/apt/sources.list”
echo ” ”
echo “Esto puede tomar un tiempo, espere..”
echo ” ”

##Hace un apt-get update y busca los codigos de error, guardandolo en variables
for k in $(apt-get update 2>&1 | grep -o NO_PUBKEY.*|sed ’s/NO_PUBKEY //’);

##Para cada codigo de variable hace un –recv-keys y consigue el respectivo key
do gpg –recv-keys –keyserver wwwkeys.eu.pgp.net $k;gpg –armor –export $k|apt-key add -;

##Fin del “FOR”
done

##Indicacion de fin
echo “Ya esta nene, tenes todas las llaves que necesitas”
echo ” ”
return 0

##Si el argumento –s esta siendo usado, entonces:
elif [ "$1" = --s ]; then
##Para el codigo del argumento 2 hace un –recv-keys y consigue el respectivo key
gpg –recv-keys –keyserver wwwkeys.eu.pgp.net $2;gpg –armor –export $2|apt-key add -;

##Si la –s fue elegida, pero no se puso el codigo del error..
if [ -z "$2" ]; then
echo “Es ./cerrajero.sh –s XXXXXXXXX (Donde X son las siglas del ID del error de GPG.)”
echo “Use –help para mas informacion.”
echo ” ”
##Fin del IF
return 0
fi

##Indicacion de fin
echo “Ya esta nene, tenes todas las llaves que necesitas”
echo ” ”

##Si el argumento –v esta siendo usado, entonces:
elif [ "$1" = --v ]; then
echo “El Cerrajero - Version 0.3 por Sapphire/Elidix.”
return 0

##Si el argumento –help esta siendo usado, entonces:
elif [ "$1" = --help ]; then
echo ” ”
echo “Usage: sh cerrajero.sh -a | -s [GPG Error ID.] | –help”
echo ” ”
echo “–a Busca automaticamente los errores y los intenta corregir.”
echo “–s Poner junto al codigo de error para solucionar solo ese.”
echo “–v Version del script”
echo “–help Esta ayuda que esta viendo.”
echo ” ”
return 0

##Fin del IF y del script
fi

##=========================================================
## Fin del script
##=========================================================