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 (https://ubuntulife.wordpress.com)
Si la idea funciona, tal vez pueda montar una seccion o blog independiente.
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/
Tambien he usado esta combinación para realizar busquedas en varios ficheros dentro de ellos.
find | xargs grep «texto_palabra_a_buscar»
También es posible realizar la búsqueda en directorios, sólo con el comando GREP:
grep ‘texto’ / -R:
Ejemplo: grep ‘function’ /home/robin/public_html -R
Saludos!
grep -Hnrl texto_a_buscar directorio/*
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/
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/
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
Yo utilizo PDF Shuffler es muy grafico y simple de utilizar.. ademas de ser rapidísimo..
También se tiene como opción pdf Sam.
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»
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/
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/
dios santo, este script me hubiera salvado la vida en un trabajillo que estaba haciendo, y tuve que redimensionarlas una por una 😦
ahora me siento bastante tonto ahora que lo veo, de todas formas la informática es así, y mas aún linux jaja gracias
Hola!
El script siempre está bien para trabajar en línea de comandos, pero para salvar la vida 😉 habría bastado con instalar el conversor de imágenes de Nautilus:
sudo apt-get install nautilus-image-converter
Reinicias la sesión y dispondrás de una herramienta fabulosa para convertir imágenes en batch al tamaño o proporción que quieras, además de otras utilidades similares muy buenas, directamente con el botón derecho sobre una carpeta de imágenes.
Salu2!
PD: Muy buena sección.
BORRAR LA PAPELERA DESDE CONSOLA
$ cd $HOME
$ cd .Trash
$ sudo -s
$ rm -r *
Con permiso… esto no funciona creo recordar que desde Ubuntu 8.04… como hacemos para hacerlo al cambiar la papelera en los ultimos ubuntus? Gracias !
rm -rf /home/*/.local/share/Trash/*/** &> /dev/null
rm -rf /root/.local/share/Trash/*/** &> /dev/null
gracias!
RECUPERAR LA DIRECCION IP DE TU MAQUINA
ifconfig | grep «inet addr»
De forma mas precisa se puede usar:
/sbin/ifconfig eth0 | grep -o «inet addr:[0-9\.]*» | sed ‘s/[^0-9\.]//g’
Excelente Blog por cierto.
CF
Para todas la interfaces:
/sbin/ifconfig -a | grep -o «inet addr:[0-9\.]*» | sed ‘s/[^0-9\.]//g’
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
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)
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
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
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
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 😀
Salus!
para eliminar archivos recursivamente de directorios:
http://www.tuxero.com/2007/09/cmo-borrar-archivos-intiles-de-windows.html
Saludos!
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
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
*/
y donde se pone el URL de la pag y donde e guardan?
creo que la URL seria donde pone nombre de archivo, al menos yo lo hago así (aunque sin opciones -c y -i) y me guarda el archivo en el directorio donde pongo el comando wget. Espero haber ayudado después de unos meses 🙂
El wget se puede usar para la descarga de un fichero pasandole de argumento la url del mismo; o la descarga de varios ficheros pasandole de argumento un archivo en texto plano (con la opción -i)que contenga todas las url’s deseadas.
La opción -c es para que si hay algún fallo al renaudar la descarga del fichero comience desde donde se quedó antes del fallo.
Referencias:
$ man wget
el aria2 funciona de forma similar:
aria2c -i fichero_con_direcciones
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.
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
##=========================================================
Está muy bueno. Lo voy a probar, porque es muuy requerido xd
Sigue programando. (si lo hiciste tu)
El script en si esta bien pero he corregido unos errores que me daba con lo de root (iniciaba con root y el error seguia) y con los return aqui son exit, aqui pongo el script arreglado por mi
#!/bin/bash
##=========================================================
## El Cerrajero — Version 0.3 por Sapphire
##=========================================================
##Si el UID es distinto a 0, entonces:
if [ «$USER» != «root» ]; then
echo ” ”
echo “El script tiene que ser ejecutado como ROOT.”
echo ” ”
exit
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 ” ”
exit
##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 ” ”
exit
##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
exit
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.”
exit
##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 ” ”
exit
##Fin del IF y del script
fi
##=========================================================
## Fin del script
##=========================================================
Hola, me he permitido la libertad de adaptar el script para que use ventanitas y eso. Al ejecutarlo me da algunos errores. En concreto, en la opción primera me dice:
sed: -e expresión #1, carácter 1: orden desconocida: «�»
la opción segunda debería funcionar, pero como no tengo ningún código de error GPG no la he podido comprobar.
¿Podríais echarle un vistazo?
#!/bin/bash
##=========================================================
## El Cerrajero — Version 0.3 por Sapphire
## Modificado y adaptado para Zenity por Lacasito
##=========================================================
##Si el UID es distinto a 0, entonces:
if [ «$USER» != «root» ]; then
zenity –error –text=»El script tiene que ser ejecutado como ROOT.
Por ejemplo: sudo cerrajero.sh»
exit 0
fi
OPCION=$(zenity –title «Seleccionar una acción para El Cerrajero» –list –text «Por favor, seleccione la acción que desee.» –radiolist –column «Opción» –column «#» –column «Descripción» TRUE 1 «Buscar errores y corregirlos» FALSE 2 «Corregir un error» FALSE 3 «Info y ayuda» –width 350 –height 180)
# Si en la ventana de selección pulsamos Cancelar, la aplicación se despide y se cierra.
if [ ${?} != «0» ]; then
zenity –info –text=»¡Que pase buen día…!»
exit 0
fi
# Si hemos pulsado Aceptar, seguimos..
case ${OPCION} in
1) zenity –info –text=»Actualizando el fichero /etc/apt/source.list
Esto puede llevar cierto tiempo. Por favor, espere.»
for k in $(apt-get update 2>&1 | grep -o NO_PUBKEY.*|sed ‘s/NO_PUBKEY //’);
do gpg –recv-keys –keyserver wwwkeys.eu.pgp.net $k;gpg –armor –export $k|apt-key add -;
done
if [ ${?} != «0» ]; then
zenity –info –text=»Trabajo realizado. Todas las llaves están listas»
exit 0
else
zenity –error –text=»Hubo un error.
Ejecute El Cerrajero en una consola para ver qué le dice»
fi
exit 0;; # Busca errores y los intenta corregir
2) zenity –info –text=»Debe introducir el valor NNNNNNNN,
donde N es el ID del error de GPG.»
ERROR=$(zenity –entry –title=»Entrada de datos» –text=»Escriba ID del error de GPG.
El texto del campo es sólo un ejemplo» –entry-text=»AX3ERD1A»)
gpg –recv-keys –keyserver wwwkeys.eu.pgp.net ${ERROR};gpg –armor –export ${ERROR}|apt-key add -;
if [ ${?} != «0» ]; then
zenity –info –text=»Trabajo realizado. Todas las llaves están listas»
exit 0
else
zenity –error –text=»Hubo un error.
Ejecute El Cerrajero en una consola para ver qué le dice»
fi
exit 0;; # Corrige un error
3) zenity –info –text=»El Cerrajero – Version 0.3 por Sapphire/Elidix.
Adaptado para zenity por Lacasito
Texto de ayuda para usar El Cerrajero:
El cerrajero le ayuda a corregir los errores GPG que le den los repositorios
Si selecciona en la ventana de opciones la número uno, El Cerrajero buscará los errores y procurará corregirlos
Si selecciona la opción 2 deberá introducir los ocho dígitos que le aparezcan en el error de GPG
Si está leyendo esto es porque ha seleccionado la opción 3″
exit 0;; # Info y Ayuda
esac
exit 0
##=========================================================
## Fin del script
##================================================
APAGAR EL MONITOR (util notebooks)
Apaga el monitor CRT o LCD sin apagar ni suspender el equipo.
xset dpms force off
Fuente: lo hice yo, lo busque en la Bash.
HOLA ESTA EXELNTE TU BLOG…!!!! OYE TENGO UNA DUDA COMO PUEDO INSTALL EL PLUGIN DE ATLANTIS CUBE PARA UBUNTU 8.04?? ESPERO QUE ME AYUDES!!!
buenos dias soy nueva en bajar repositorios he buscado cantidad de veces y no he logrado conseguir nada quisiera saber que pasos debo realizar para bajar los repositorios del paquete ofimatica en español u otro, si alguien puede ayudarme lo agradeceria
Muy buena esta iniciativa.
PROGRAMAR EL APAGADO O REINICIO DEL EQUIPO
$ sudo shutdown -h 22:55 (se apagará a las 22:55h)
$ sudo shutdown -r +35 (se reiniciará dentro de 35 minutos)
DIVIDIR UN ARCHIVO EN VARIOS MÁS PEQUEÑOS Y VOLVER A UNIRLOS
Para dividir:
$ split -b 1m/k (divide en archivos de 1 Mb/Kb)
Para volver a unirlos:
$ cat archa archb archc archN > archivo (o también: $ cat arch[abcN] > archivo)
CV FACIL
Programita con Interface Grafica en Bash que Crea Curriculums Vitae Automaticamente,
Diseñado para Ubuntu, pero deberia funcionar en cualquier GNU/Linux.
No puedo postear la fuente solo, por que necesita DATA (imagenes, etc)
Descargar:
http://tecnicoslinux.com.ar/cvfacil/cvfacil.tar.gz
Mirror:
http://www.adrive.com/public/b0412ed9a25992fe84f5d482b651741bd7de5f1bdf746cf53956894cf3d8360f.html
salu2
Muy bueno!
Listar paquetes instalados y guardar la info para eventualidades.
Aca les dejo uno que realiza una lista de todos los paquetes intalados en la distribucion guardandolos en un plano con dia y hora de nombre.
Me es muy util a la hora de actualizar la distribucion, para tener presente los paquetes que antes tenia.
Tambien lo utilizo en caso de una pifia, para poder restaurar los paquetes como los tenia antes del ultimo apt-get instal.
#!/bin/bash
# Lista de Paquetes
# se forma el nombre del archivo
DIA=`date +%d`
MES=`date +%m`
AnO=`date +%Y`
time=`date +%R`
ARCHIVO=paquetes.$AnO-$MES-$DIA.$time.lst
# lista y ordena los paquetes instalados
dpkg –get-selections | grep -v deinstall | sort > ~/Documentos/Respaldo/$ARCHIVO
hacer una lista completa de las aplicaciones instaladas.
como root
dpkg-get-selections> / home / usuario / package.selections
Deep Freeze para Linux + Source Code
DIP FRISS PARA UBUNTU, OPEN SOURCE VERSION
Este programa que diseñe yo,
intenta ser el reemplazo libre del Software Propietario pago de codigo cerrado » Deep Frezee »
logrando funcionalidad similar y instalacion sencilla (Deep Frezee esta disponible para Linux).
FUNCIONA PARA EL USUARIO /HOME/INVITADO
SI DESEAS USAR OTRO USUARIO EDITA EL .SH MANUALMENTE CON UN EDITOR DE TEXTO,
BUSCANDO Y REEMPLAZANDO » /HOME/INVITADO » POR EL HOME DEL USUARIO QUE DESEAS USAR.
NO ES JODA!!!, FREEZA LA PC!!!,
LOS CAMBIOS SE BORRAN!!!, HACE BACKUP!!!
Performance Tip:
Cuantas mas cosas halla en el HOME del usuario, me refiero a PESO en MB, no en cantidad de archivos,
al momento de instalar este Dip Friss, mas demorara la maquina en reiniciar cada vez.
Para saber que lineas tenes que editar en el .sh, en la Terminal en la carpeta donde esta el .sh
cat DIPFRISS.SH | grep «/home/invitado»
recordemos que en el Ubuntu 8.10 o version posterior la cuenta de Invitado ya esta Freezada,
pero bueno cuando hice el Script aun esa version de Ubuntu no habia salido,
en versiones futuras pensaba incluirle una ventanita grafica que te pregunte que usuario freezar,
para no tener que editar manualmente el .sh
#!/bin/bash
# Dip Friss : Programa y Codigo Fuente libre, gratis, free. Licencia G.P.L. Autor: Anonimo
# Este programa intenta ser el reemplazo libre del Software Propietario pago de codigo cerrado » Deep Frezee » logrando funcionalidad similar y instalacion sencilla (Deep Frezee esta disponible para Linux).
# Deep Frezee es copyright y marca registrada de Faronics, se agradece a los mismos crear la version para Linux del software, ojala todas las empresas hicieran lo mismo.
#
# Este es un script para Bash de Linux, entonces comprueba que estamos en la bash, sino no funcionara
if [ «$SHELL» = «/bin/bash» ]; then
# Bienvenida al programa incluye breve explicacion
zenity –info –title=»Dip Friss» –text=» Dip Friss : Bienvenid@, este programa intenta ser el reemplazo del Software Propietario pago de codigo cerrado Deep Frezee, logrando funcionalidad similar y instalacion sencilla. Diseñado para Ubuntu. »
zenity –info –title=»Dip Friss» –text=» Deep Frezee esta disponible para Linux, Deep Frezee es copyright y marca registrada de Faronics, se agradece a los mismos crear la version para Linux del software, ojala todas las empresas hicieran lo mismo. »
#
# Testea si ya tenemos instalado el Dip Friss, si lo tenemos vamos al proceso de Desinstalacion, si no lo tenemos Instalado vamos al proceso de Instalacion.
file –preserve-date /etc/init.d/dipfrissautorestore.sh | grep ASCII
if [ $? -ne 0 ]; then
#
#
#
# Comienza la creacion del Backup comprimido del /home/$USER que se usara mas adelante para restaurar Configuraciones y Datos del usuario por mas que los mismos fueran alterados
zenity –info –title=»Dip Friss» –text=» Ahora realizaremos un Backup Comprimido de tu Carpeta Personal que contiene Configuraciones y Datos, que se restaurara automaticamente cada vez que la PC reinicia o bootea. »
(
rm –verbose –force /home/.backup_usuario.tar
tar –verbose –ignore-failed-read –preserve-order –preserve-permissions –absolute-names –totals –create –verify –file /home/.backup_usuario.tar /home/invitado
) | zenity –progress –title=»Dip Friss» –text=» Realizando backup comprimido del estado actual del sistema para este usuario » –pulsate –percentage=2
xkbbell
zenity –info –title=»Dip Friss» –text=» Backup Comprimido Listo : `du –human-readable –time /home/.backup_usuario.tar` . »
# se crea el script que auto-restaurara el estado actual guardado en el archivo comprimido
zenity –info –title=»Dip Friss» –text=» Crearemos el juego de Scripts Ejecutables que manejaran Auto-Restauraciones. »
(
echo » #!/bin/bash » > dipfrissautorestore.sh
echo «# Dip Friss : Script de Autorestauracion durante el Booteo » >> dipfrissautorestore.sh
echo «killall gdm » >> dipfrissautorestore.sh
echo «ifconfig eth0 down » >> dipfrissautorestore.sh
echo «ifconfig eth1 down » >> dipfrissautorestore.sh
echo «/etc/init.d/networking stop » >> dipfrissautorestore.sh
echo «rm -rf /tmp/home » >> dipfrissautorestore.sh
echo «mkdir /tmp/home » >> dipfrissautorestore.sh
echo «mv /home/invitado /tmp/home » >> dipfrissautorestore.sh
echo «tar -xpPf /home/.backup_usuario.tar » >> dipfrissautorestore.sh
echo «/etc/init.d/networking restart » >> dipfrissautorestore.sh
echo «mount -a » >> dipfrissautorestore.sh
echo «gdm » >> dipfrissautorestore.sh
# Mueve el script creado a /etc/init.d/
mv –verbose –force dipfrissautorestore.sh /etc/init.d/
chmod –verbose +x /etc/init.d/dipfrissautorestore.sh
rm –verbose –force dipfrissautorestore.sh
) | zenity –progress –title=»Dip Friss» –text=» Creando Scripts : Por favor, espere… » –pulsate –percentage=2
zenity –info –title=»Dip Friss» –text=» Scripts Listos! : `file –preserve-date /etc/init.d/dipfrissautorestore.sh` »
# Una vez que todo esta listo, activa el Dip Friss
zenity –info –title=»Dip Friss» –text=» Dip Friss : Activando la autorestauracion ahora. »
ln –force –symbolic –verbose /etc/init.d/dipfrissautorestore.sh /etc/rc2.d/S33dipfrissautorestore
chmod –verbose +x /etc/rc2.d/S33dipfrissautorestore
ln –force –symbolic –verbose /etc/init.d/dipfrissautorestore.sh /etc/rc4.d/S33dipfrissautorestore
chmod –verbose +x /etc/rc4.d/S33dipfrissautorestore
xkbbell
zenity –info –title=»Dip Friss» –text=» Dip Friss : Ya Estas Freezado. »
#
#
#
else
#
#
#
# Proceso de Desinstalacion de Dip Friss.
xkbbell
zenity –info –title=»Dip Friss» –text=» ADVERTENCIA : Dip Friss ya esta instalado en el equipo. »
zenity –info –title=»Dip Friss» –text=» Se supone que si ejecuto este programa de nuevo es por que quiere Desinstalarlo, a continuacion se desinstalara Dip Friss del equipo. »
# Se borra los Scripts y el Backup
(
rm –verbose –force dipfrissautorestore.sh
rm –verbose –force /home/.backup_usuario.tar
rm –verbose –force /etc/init.d/dipfrissautorestore.sh
rm –verbose –force /etc/rc2.d/S33dipfrissautorestore
rm –verbose –force /etc/rc4.d/S33dipfrissautorestore
) | zenity –progress –title=»Dip Friss» –text=» Desinstalando Dip Friss, por favor espere… » –pulsate –percentage=2
# Se avisa al usuario que se Desinstalo el programa
xkbbell
zenity –info –title=»Dip Friss» –text=» Dip Friss : Ya Estas Des-Freezado. »
#
#
#
fi
# Si NO estamos en la Bash, terminamos aqui, en este mensaje de error
else
xkbbell ; xkbbell ; xkbbell ; echo » ERROR INFERNAL » ; zenity –info –title=»Dip Friss» –text=»E R R O R I N F E R N A L ! ! ! imposible continuar. »
fi
#
.
Me gustaria que me pusieras en tu blogroll
http://culturacion.wordpress.com/
Sabes mi blog necesita un toque de Ubuntu, me gustaria que entrearas a darle un viztaso me des tu opninión, y seas un autor.
Limpieza de cola de correo personalizada para Postfix
Si tienes una cola de correos en la que no quieras limpiarla completamente, y solo quieras ir limpiando por remitente especifico, este script les puede servir mucho:
mailq|grep -i $1 |awk ‘{print $1}’|sed -e s/\*//g > clean
for i in `cat clean`; do postsuper -d $i; done
esto se guarda en un archivo de texto, por ejemplo «limpiar.sh»
se le dan permisos de ejecución con «chmod +x limpiar.sh»
y se usaria de esta forma : ./limpiar.sh correo-spam@spam.com
con eso, se borraran todos los mensajes que tengan a «correo-spam@spam.com» como remitente.
tambien sirve para eliminar rebotes de correo, que tienen como remitente a «MAILER-DAEMON» : ./limpiar.sh MAILER-DAEMON
si tienen muchos mensajes con remitentes diferentes, pero solo quieren borrar a los que tengan info:
./limpiar.sh info
saludos
Buenas tardes a ver si me podeis ayudar tengo un usb para ver la tv : http://www.t-visto.com/productos/tratamiento_video.htm y no consigo hacerlo funcionar y que me detecte todos los canales como en windows.. uso ubuntu 9.04.
Esta semana me ha surgido otro problema.. intentando q funcionara el virtualbox.. sin querer me quete los permisos tanto de usuario como de root. Ahi alguna posibilidad de recuperar los permisos ya que no me deja acceder ni a usuarios y grupos ni a cosas del terminal q necesite ponerme como sudo , Ayuda no hace ni una semana q lo instale y me gustaría librarme de tener q instalar todo de nuevo. Gracias
Aqui un comando util para averiguar el peso de las carpetas archivos etc…
du -kh –max-depth=0
Opciones:
-kh = Nos devuelve peso en KB y la «h» nos da el resultado entendible para la mente normal.
–max-depth = Se trata del nivel de profundidad o recursividad en el caso de que este usando el comando en una carpeta con contenidos multiples y subcarpetas.
Saludos
Me auto-respondo puse el comando con signos de menor/mayor y se los comio.
du nombre_fichero -kh –max-depth=0
Saludos
Hola amigos,
he encontrado un script para que transforme las sucesivas fotos (JPG) de un árbol de directorios en un pdf con el nombre de cada directorio (fuente: ubuntuforums.org)
for i in $(find /home/al/fotos -type d) ; do
pdfname=$(basename «${i}»)
convert -verbose «${i}»/*.JPG «${i}»/${pdfname}.pdf
done
El ‘problemilla’ es que todos los archivos y directorios no pueden tener espacios en blanco.
Por lo demás, va de lujo.
Ójala os sirva… yo ya me veía las horas muertas ejecutando comando por cada directorio… 😉
Viva Linux y su shell.
hola en la nuva vercion de ubuntu 9.10 como puedo cambira los temas gdm no encuentro la utilidad que traian los anteriores
Hola,
me ha parecido muy interesante tu blog y he puesto un enlace en el mio.
Espero que no tengas inconveniente pero por si acaso te pongo la url, donde está también la dirección de correo electrónico.
http://www.zienzia.com
Os dejo un script que no recuerdo de donde lo saqué,pero a mí me es muy util.
Función: Abrir la carpeta donde estés ubicado en ese momento como root.
#!/bin/bash
for uri in $NAUTILUS_SCRIPT_SELECTED_URIS; do
gksudo «gnome-open $uri»
done
olasss
Felicitaciones por tan variados y utiles scrips.
Muy util el uso de wget para descargar archivos varios, algo similar no habra por alli en php ?
Se agradece la info
Quiero un script que me escriba en archivo la horas que se paga la pc ,enciende y reinicia
Hola, me parece una muy buena idea.
Soy nuevo en Ubuntu, tengo instalado 9.04.
Alguien puede ayudarme a hacer un script para reiniciar el JDownloader?
Gracias.
SUERTE
Eso ya lo tiene implementado el mismo jdownloader dentro de ajustes/complementos si no recuerdo mal. Hay abilitas el complemeto y ya lo ajustas a tu gusto
hola, soy nuevo en el area y necesito que me ayuden con un script que se ejecute a una hora especifica, muestre los procesos activos en ese momento y los guarde en un archivo texto
para que un script se ejecute a una hora especifica, puedes usar cron.
ver procesos: ps -ef
guardarlos a un archivo de texto:
>> fichero.txt
ejemplo:
INTERVALO=`date`
echo «guardando datos a las $INTERVALO» >> log.txt
ps -ef >> log.txt
echo «****************» >> log.txt
Uno de mis scripts del que estoy muy orgulloso, jejeje 😀 es uno que apaga el equipo cuando la carga del procesador disminulle a un valor dado. Una versión de éste en bash es el siguiente. Para mayor referencias y otras versiones de este programa ver el hilo http://ubuntumexico.org/forum/viewtopic.php?showtopic=6957
#!/bin/bash
#--- m_cpu_load_v02.sh $st_p
#
# st_p: Carga máxima a cumplir para salir del bucle. Tiene el formato xx.xx donde la
# parte entera está entre 0 y 99 y se debe tener forzosamente dos decimales.
#
# Con la orden
# m_cpu_load_v02.sh -c
# Se puede saber la carga actual del procesador.
#
# CAMBIOS: Ya no es necesario el programa 'sar', ya que se creó una función que hace
# el cálculo de la carga del cpu.
# m_cpu_load_v02.sh permite ejecutar una serie de ordenes a programar (como apagar el equipo)
# una vez que el cpu tiene una carga menor.
# Autor: aztk
# Fecha: Diciembre del 2009
# CopyLeft
#### DECLARACIONES
f_stat="/proc/stat"; # Fichero con info de interés sobre el cpu
# END DECLARACIONES
#### FUNCTIONS
#
# get_cpu_load: Calcula la carga actual del cpu y la deposita en $cpu_load
# tiene un dt de 1s. Como bash no tiene punto flotante, el resultado está
# escalado por 100 (aparte del por-ciento)
function get_cpu_load(){
# primero se obtiene la primer linea del fichero $f_stat (/proc/stat)
# para dos tiempos distintos (dt = 1s)
values_t0=$(head -n 1 $f_stat);
sleep 1; # dt = 1s
values_t1=$(head -n 1 $f_stat);
# Se adecúan para usar el espacio como delimitador
values_t0=$(echo $values_t0 | tr -s ' ');
values_t1=$(echo $values_t1 | tr -s ' ');
# Se procede a los cálculos
load_t0=$(($(echo $values_t0 | cut -d' ' -f2-4 | sed 's/ / + /g')));
uscpu_t0=$(($load_t0 + $(echo $values_t0 | cut -d' ' -f5)));
load_t1=$(($(echo $values_t1 | cut -d' ' -f2-4 | sed 's/ / + /g')));
uscpu_t1=$(($load_t1 + $(echo $values_t1 | cut -d' ' -f5)));
cpu_load=$((10000 * ($load_t1 - $load_t0) / ($uscpu_t1 - $uscpu_t0)));
#echo "Carga actual: ($cpu_load/100)%"; # Imprimir carga actual
echo "Carga actual: $(($cpu_load / 100))%"; # Existe perdida de información por truncamiento a entero
}
# END FUNCTIONS
#### MAIN PROGRAM
#
if [ $# -ne 1 ]
then
echo
echo " Usar: m_load_cpu | "
echo
exit 1
fi
# Si el argumento pasado al programa es -c,
# imprimir la carga actual del cpu y salir
if [ $1 = "-c" ]
then
get_cpu_load
exit 0
fi
# Asignación del valor esperado de la carga del cpu
cpu_load_esperado=$1; echo "Carga del procesador a cumplir: $cpu_load_esperado%";
# IMPORTANTE: Ya que bash no maneja punto flotante, el valor entrante debe
# tener el formato xx.xx (dos dígitos después del punto).
# Aquí se quita el punto, equivalente a multiplicar por 100 el dato
cpu_load_esperado=$(echo $cpu_load_esperado | sed 's/\.//g');
echo -----;
# Bucle al que se sale solo cuando la carga del cpu
# es menor a cpu_load_esperado, 3 veces seguidas.
contador=3; echo "Contador: $contador"; # Modificar el valor de contador si es necesario
while [ $contador -gt 0 ]
do
sleep 7 # Si es necesario, modificar el delay
get_cpu_load
if [ $cpu_load -le $cpu_load_esperado ]
then
(( contador-- )); echo "Contador: $contador"
else
contador=3; echo "Contador: $contador" # para contador, también aquí
fi
done
# Código a realizar una vez fuera del bucle
#shutdown -h now
echo "Funciona :)"
# END MAIN PROGRAM
# REFERENCIAS
# http://quierolinux.blogspot.com/2008/10/clculo-del-uso-de-cpu-en-linux.html
Otro script.
Este es una modificación del airoscript pero para usar especificamente en una AcerAspireOne con U>=9.04.
Y solo para llaves wep.
http://ubuntumexico.org/forum/viewtopic.php?showtopic=3275
GRACIAS TOYSAN ASESORIA INMOBILIARIA.
Por fin hemos encontrado piso en Barcelona, llevabamos seis meses buscando uno y al final de la manera mas casual hemos tenido la suerte de ir a Toysan asesoria inmobiliaria y dar con la vivienda de dos habitaciones que queriamos. No esta nada facil encontrar un piso a tu medida sobre todo si las condiciones economicas que tienes no son altas, pero gracias al trabajo de la administración Toysan lo hemos podido conseguir. Tambien hace falta constancia y paciencia.
Vosotros habeis tenido suerte, pero con estos politicos que tenemos vamos muy mal en muchos asuntos pero en el de la vivienda aun mas.
Vamos que esto se esta animando. Esto tiene que cambiar de una vez por todas, seguro. ANIMO ANIMO ANIMO
Me gustaria saber como ejecutar un script para Ubuntu cuando se iniciel el salvapantallas..Muchas Gracias
hola. haber si me podéis ayudar, necesitaría un script que borre un archivo a los 10minutos de ser creado.
Muchas gracias
CAMBIAR LA FECHA Y HORA DESDE LA TERMINAL
Se utiliza para cambiar la fecha y hora del sistema.
Para ajustar la hora del sistema
date -s «06/16/2010 15:37:00″
Para ajustar la hora de la maquina
hwclock –set –date=»2010-06-16 15:37»
Hola a todos, he hecho un pequeño script que busca una clave en distintos servidores y la añade, para así evitar esos molestos errores al actualizar el sources.list.
Necesita ejecutarse como root, y permite una clave cada vez.
Simplemente ejecútenlo con la clave como argumento (pueden ser los 8 últimos dígitos o la clave completa):
sudo add-key XXXXXXXX
Y el script buscará la clave en distintos servidores y una vez la tenga la añadirá.
También si lo desean pueden añadir más servidores siguiendo el mismo esquema del script.
Si alguien no sabe cómo ejecutarlo simplemente hagan estos pasos:
1) Abran su editor de texto favorito y copien el código, después guárdenlo con el nombre que quieran (yo lo he llamado add-key).
2) Para mayor comodidad muévanlo a «/usr/bin»:
sudo mv /DIRECTORIO_DONDE_LO_GUARDARON/NOMBRE_QUE_LE_PUSIERON /usr/bin
3) Luego denle permisos:
sudo chmod 777 /usr/bin/NOMBRE_QUE_LE_PUSIERON
4) Y por último ejecútenlo de la forma que expliqué antes.
Os dejo aquí el código:
#¡/bin/bash
# Script simple para agregar claves GPG.
# By zant95.
#
VAR1=$(echo $1 | wc -m) # Cuenta el número de caracteres que tiene la clave.
if [ «$(id -u)» != «0» ] # Comprueba que se tienen privilegios de administrador.
then
echo «key: debe ejecutar este comando como root.»
exit 1
else
if [ -z $1 ] # Comprueba que se haya escrito una clave.
then
echo «key: falta una clave GPG como argumento.»
exit 2
else
if [ $# -ge 2 ] # Comprueba que solo haya un argumento.
then
echo «key: solo puede haber un argumento.»
exit 3
else
if [ $VAR1 = 9 ] # Comprueba que la contraseña tiene 8 o 16 caracteres.
then # Si tiene 8 caracteres sale del «if» principal y comienza a trabajar con la clave.
continue
else
if [ $VAR1 = 17 ]
then
continue
else
echo «key: la clave GPG debe tener 8 o 16 caracteres.»
exit 4
fi
fi
fi
fi
fi
# Busca las claves en distintos servidores.
echo «Buscando clave en subkeys.pgp.net…»
gpg –keyserver subkeys.pgp.net –recv-key $1 > /dev/null 2>&1
echo «Buscando clave en pgpkeys.mit.edu…»
gpg –keyserver pgpkeys.mit.edu –recv-key $1 > /dev/null 2>&1
echo «Buscando clave en wwwkeys.eu.pgp.net…»
gpg –keyserver wwwkeys.eu.pgp.net –recv-key $1 > /dev/null 2>&1
echo «#############################################################»
VAR2=$(gpg -a –export $1 | apt-key add -) # Intenta añadir la clave obtenida y guarda la salida del comando.
if [ -z $VAR2 ] # Determina si el proceso ha salido bien.
then
echo «key: su clave {$1} no se ha podido añadir correctamente.»
else
echo «key: su clave {$1} se ha añadido correctamente.»
fi
echo «#############################################################»
exit 0 # Fin del script.
PD: lo he probado en dos ordenadores, ambos con Ubuntu Lucid 64bits, si da problemas en otras versiones díganmelo y lo corregiré lo antes posible.
Para facilitar su comprensión he puesto bastantes comentarios.
Saludos.
Para que funcione mi anterior script deben sustituir esas comillas por unas tradicionales.
SISTEMA DE LIMPIEZA DE UBUNTU
Limpia Ubuntu de paquetes y referencias innecesarias y actualiza el apt-get.
#!/bin/bash
clear
echo Sistema de Limpieza de Ubuntu
echo _____________________________
echo Presione una tecla para continuar…
echo [Si desea cancelar solo cierre la terminal]
read -n 1
clear
echo ‘#!/bin/bash’ > temp.sh
echo clear >> temp.sh
echo echo Borrando paquetes innecesarios >>temp.sh
echo ‘apt-get autoremove &’ >>temp.sh
echo «sleep 2» >>temp.sh
echo clear >>temp.sh
echo echo Borrando referencias innecesarias >>temp.sh
echo ‘apt-get autoclean &’>>temp.sh
echo «sleep 2» >>temp.sh
echo clear >>temp.sh
echo echo Borrando cache >>temp.sh
echo ‘apt-get clean &’ >>temp.sh
echo «sleep 2» >>temp.sh
echo clear >>temp.sh
echo echo Listo! >>temp.sh
echo ‘read «$*»‘ >>temp.sh
echo exit >>temp.sh
chmod +x temp.sh
clear
echo Despues de presionar Enter, solo escriba ‘»./temp.sh»‘
echo [Puede que se le solicite su contrasena]
read «$*»
clear
sudo -s
Saludos
Ave, paseando por San Google, y copiando de aquí y allí, me he montado este script que milagrosamente funciona por ser el primero. Este convierte de JPEG a DJVU todos los archivos contenidos en las carpetas, cambiando los espacios por «_». Agracecería cualquier ayuda para mejorarlo, es bastante «chorra» como veréis. En Ubuntu 10.04 funciona como mínimo –
#!/bin/bash
script=$0
command=$1
for f in echo *
do
if [ -d «$f» ]
then
cd «$f»
for i in *.[Jj][Pp][Gg]; do mv «$i» `echo $i | tr ‘ ‘ ‘_’`; done
for i in *.JPG; do c44 «$i» «`basename «$i» .JPG`.djvu»; done
for i in *.jpg; do c44 «$i» «`basename «$i» .jpg`.djvu»; done
$script $command
cd ..
else
$command «$f»
fi
done
Me dejé de explicar que para que el anterior script funcione, se ha de tener instalado el DjvuLibre, en Ubuntu 10.04 viene por defecto (creo). En tal caso si lo que te interesa es otra salida de Djvu, sólo se ha de cambiar el «c44» por el comando de Djvulibre que te interese.
También lo he probado con el PDF2DJVU y funciona.
Hola a todos, tengo instalado el oracle 10g express en linux ubuntu, si me pueden dar un ejemplo de como preparar un script que me haga el export de la base de datos en la hora que yo le indique todos los dias
Gracias
Son muy buenos y útiles esos scripts. Yo tengo un problema que no consigo resolver. Tengo un script que lanza otros procesos. Me gustaría saber qué debo añadir para que pare cualquier proceso después de un cierto tiempo. Por ejemplo,
script1 lanza los procesos 1, 2 y 3 y quiero que los detenga si en 1hora no han finalizado.
Gracias y buen repositorio!
no tengo un ejemplo exacto, no me he visto en esa necesidad, pero tal vez te pueda server asignar una variable a tu tarea, dentro del mismo script al final de la linea que quieres matar agrega sin espacio:
&tarea1
mete esa variable $tarea1 en un while comparando con la hora que deseas, asi llegado el tiempo definido solo le metes un kill $tarea1
Hola a todos!
Me gustaria dejar un script de predicción meteorologico para territorio de España
Hagalo ejecutable y pongale en Gnome Schedule programarlo a su gusto.
#!/bin/bash
#### Modifica zona. Copia lo último de la dirección aemet sin incluir / #########
zona=valencia-46001
#Verifica si existe la carpeta misscript donde guardará ficheros temporales del script. Si no existe lo crea.
carpetaMisscript=~/misscript
if [ -d $carpetaMisscript ]; then
cd ~/misscript
else
echo «Se crea carpeta misscript»
cd ~/; mkdir misscript; cd misscript
fi
wget http://www.aemet.es/es/eltiempo/prediccion/localidades/$zona
#Día del mes y de la semana
#Paso el archivo a utf para que salgan tildes, busco lineas que aparezcan los días de las semana, quito etiquetas html.
iconv -f iso-8859-1 -t utf-8 $zona | grep -e «\»lun.» -e «\»mar.» -e «\»mi» -e «\»jue.» -e «\»vie.» -e «r=\»s» -e «\»dom.»| sed ‘s/^[ \t]*//;s/[ \t]*$//’ | sed -e :a -e ‘s/]*>//g;/ dia
#Busco lineas que contengan texto_rojo, quito etiquetas html y tabulados. Temperatura máxima
cat $zona | grep «>» > max;sed ‘1d’ max > max2; sed -e :a -e ‘s/]*>//g;/ max; sed ‘s/^[ \t]*//;s/[ \t]*$//’ max > max2; sed ‘s/ //g’ max2 > max
#Busco lineas que contengan texto_zul, quito etiquetas html y tabulados. Temperatura mínima
cat $zona | grep «>» > min2;sed -e :a -e ‘s/]*>//g;/ min; sed ‘s/^[ \t]*//;s/[ \t]*$//’ min > min2; sed ‘s/ //g’ min2 > min
#Estado del cielo. Está muy mal implementado. Posiblemente salga alguna vez un código adiccional molesto
cat $zona | grep «estado_cielo»| sed ‘s/^[ \t]*//;s/[ \t]*$//’ | grep borde_rb |cut -c74-120 | sed ‘s/\» alt=\»/:/’ | sed ‘s/gif\» title=\»//’ | sed ‘s/\///’g | sed ‘s/td//g’ |sed ‘s/>//g’ | sed ‘s/ estado2; awk -F : ‘{ print $1 }’ estado2 > estado
#Direccion del viento.
cat $zona | grep «viento»| sed ‘s/^[ \t]*//;s/[ \t]*$//’ | grep borde_rb |cut -c74-120 | sed ‘s/\» alt=\»/:/’ | sed ‘s/gif\» title=\»//’ | sed ‘s/\///’g | sed ‘s/td//g’ |sed ‘s/>//g’ | sed ‘s/ viento2; awk -F : ‘{ print $1 }’ viento2 > viento
#Velocidad del viento.
cat $zona |head -n 358| tail -n 10| grep «<td"|sed -e :a -e 's/]*>//g;/ km
#Probabilidad de lluvia
cat $zona |head -n 306| tail -n 10| grep «<td"|sed -e :a -e 's/]*>//g;/ problluvia
#Muestro por shell la información.
for i in `seq 1 7`
do
vdia=`sed -n «${i}p» dia`
vestado=`sed -n «${i}p» estado`
vproblluvia=`sed -n «${i}p» problluvia`
vkm=`sed -n «${i}p» km`
vmax=`sed -n «${i}p» max`
vmin=`sed -n «${i}p» min`
vviento=`sed -n «${i}p» viento`
echo «$vdia» | iconv -f utf-8 -t iso-8859-1 |espeak -ves
echo «Estado del cielo $vestado» | iconv -f utf-8 -t iso-8859-1 |espeak -ves
echo «Probilidad de lluvia $vproblluvia» | iconv -f utf-8 -t iso-8859-1 |espeak -ves
echo «Temperatura maxima $vmax grados » | iconv -f utf-8 -t iso-8859-1 |espeak -ves
echo «Temperatura minima $vmin grados » | iconv -f utf-8 -t iso-8859-1 |espeak -ves
echo «Direccion del viento $vviento» | iconv -f utf-8 -t iso-8859-1 |espeak -ves
echo «Velocidad del viento $vkm kilometros por hora» | iconv -f utf-8 -t iso-8859-1 |espeak -ves
echo «******************»
done
rm $zona max max2 min min2 dia estado estado2 viento km
IMAGENES PARA SALVAPANTALLAS Kindle3
Genera imagenes adecuadas para funcionar con salvapantallas del Kindle 3 partiendo de las que tengas seleccionadas.
=====================
#!/usr/bin/env python
# -*- coding: latin-1 -*-
# ==============================================================================================
# Convierte las imagenes seleccionadas a imagenes apropiadas para salvapantallas del Kindle 3
# ==============================================================================================
import gtk
import os, sys
import string
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])),»..»))
import Process
def alerta (cadena, tipo):
dialogo = gtk.MessageDialog(None, gtk.DIALOG_MODAL, tipo, gtk.BUTTONS_CLOSE, cadena)
dialogo.set_title(«Imagenes Kindle 3»)
dialogo.run()
dialogo.destroy()
def ClickAceptar(widget):
archivos = os.environ[‘NAUTILUS_SCRIPT_SELECTED_FILE_PATHS’].split(«\n»)
for archivo in archivos:
if archivo != «»:
if os.path.isdir(archivo):
ProcesarDirectorio(archivo)
else:
ProcesarImagen(archivo)
alerta(«El proceso ha finalizado satisfactoriamente», gtk.MESSAGE_INFO)
gtk.main_quit()
def ClickCancelar(widget):
gtk.main_quit()
def ProcesarDirectorio(directorio):
archivos = os.listdir(directorio)
for archivo in archivos:
archivo = directorio + «/» + archivo
if os.path.isdir(archivo):
ProcesarDirectorio(archivo)
else:
ProcesarImagen(archivo)
def ProcesarImagen(archivo):
if Process.getExtension(archivo) == «JPG» or Process.getExtension(archivo) == «PNG» or Process.getExtension(archivo) == «BMP»:
# Construimos nombre de fichero resultado
destino = Process.getPath(archivo) + «/kindle_» + Process.getName(archivo) + «.png»
# rotamos si es necesario para mantener la mejor resolucion
pb=gtk.gdk.pixbuf_new_from_file(archivo)
if pb.get_height() -gravity center -background Gray -extent 550×750 » + destino + » » + destino)
# añadimos borde en negro para completa 600×800
Process.ProcessFileByArgument(«convert -border 25×25 -bordercolor black » + destino + » » + destino)
# añadimos texto centrado en la base y con espaciado entre letras
titulo=»Slide and release the power switch to wake»
Process.ProcessFileByArgument(«convert -kerning 2 -font Ubuntu-Regular -fill white -pointsize 20 -draw \»gravity south text 0,0 ‘» + titulo + «‘\» \»» + destino + «\» \»» + destino + «\»»)
# añadimos credito en vertical
credito=entryName.get_text()
Process.ProcessFileByArgument(«convert -font Ubuntu-Regular -fill white -pointsize 12 -draw \»translate 590,150 rotate -90 text 0,0 ‘» + credito + «‘\» \»» + destino + «\» \»» + destino + «\»»)
# añadimos titulo de imagen en vertical
nombre=Process.getName(archivo)
if cbNomFic.get_active()==True:
Process.ProcessFileByArgument(«convert -font Ubuntu-Regular -fill white -pointsize 15 -draw \»translate 20,775 rotate -90 text 0,0 ‘» + nombre + «‘\» \»» + destino + «\» \»» + destino + «\»»)
else:
nombre=»»
else:
alerta(archivo + «\n\nTipo no soportado.», gtk.MESSAGE_WARNING)
# PROGRAMA
if Process.verifyCommands(«convert%ImageMagick»)==False:
sys.exit()
w = gtk.Window(gtk.WINDOW_TOPLEVEL)
w.set_title(«Imagenes Kindle 3»)
w.set_border_width(20)
w.connect(«destroy», gtk.main_quit)
# tabla
tableMin = gtk.Table(3, 2, False)
tableMin.set_border_width(10)
tableMin.set_row_spacings(10)
tableMin.set_col_spacings(8)
lBegin = gtk.Label(«Este proceso generara imagenes adecuadas\npara usar de salvapantallas en el Kindle 3.»)
tableMin.attach(lBegin, 0, 2, 0, 1)
lName = gtk.Label(«Nombre (margen derecho):»)
tableMin.attach(lName, 0, 1, 1, 2)
entryName = gtk.Entry()
entryName.set_text(«soymicmic»)
tableMin.attach(entryName, 1, 3, 1, 2)
cbNomFic = gtk.CheckButton(«Incluir nombre de fichero (margen izquierdo).»)
cbNomFic.set_active(True);
tableMin.attach(cbNomFic, 0, 2, 2, 3)
# botones
aligBotones = gtk.Alignment(1.0, 0.0)
boxBotones = gtk.HBox(True, 4)
bAceptar = gtk.Button(«Aceptar», gtk.STOCK_OK)
bAceptar.connect(«clicked», ClickAceptar)
boxBotones.pack_start(bAceptar, False, False, 0)
bCancelar = gtk.Button(«Cancelar», gtk.STOCK_CANCEL)
bCancelar.connect(«clicked», ClickCancelar)
boxBotones.pack_start(bCancelar, False, False, 0)
aligBotones.add(boxBotones)
tableMin.attach(aligBotones, 1, 2, 4, 5)
w.add(tableMin)
w.show_all()
gtk.main()
=====================
Referencia: http://gtk-apps.org/content/show.php/Linux+script+for+images+to+Kindle+Screen?content=137930
Versión corregida para que admita nombres con espacios: http://gtk-apps.org/content/show.php/Linux+script+for+images+to+Kindle+Screen?content=137930
Hola a todos!
Les dejo el script de acpi control de bateria.
Dependencias necesarias: espeak,acpi, mpg123, zenity
Tener privilegios de apagado.
#!/bin/bash
# Esta hecho por Alex, e-mail: alexiy_z@hotmail.com
# Licencia GNU GPL v3
# —————————————————-
# Se recomienda usar con crontab cada 1 o 2 minutos
# Por defecto:
# Avisa a los 1000 mAh
# Alarma a los 800 mAh
# Apaga a los 400 mAh
# Alarma que avisa de bateria baja e hiberna el equipo
# previo aviso.
Min=1000 #Primer Nivel
Low=800 # Segundo nivel
Apa=400 #Se apaga el equipo
#Si esta en ‘charging’ salimos, no tiene sentido…
Cargando=$(cat /proc/acpi/battery/BAT0/state | grep «charging» | cut -c26-33)
if [ $Cargando = «charged» ]; then
echo «Cargando y trabajando con adaptador de corriente al 100%»
exit 0
fi
if [ $Cargando = «charging» ]; then
echo «Cargando y trabajando con adaptador de corriente»
exit 0
fi
#Obtenemos el nivel actual y directo a la variable Nivel
Nivel=$(cat /proc/acpi/battery/BAT0/state | grep «remaining» | cut -c25-29)
echo «Nivel actual de bateria es $Nivel miliamperios y esta en proceso » $Cargando | iconv -f utf-8 -t iso-8859-1 |espeak -ves
#Si es muy bajo, se apaga automaticamente, avisando antes con la voz
if (( «$Nivel» < "$Apa" )); then
CONTADOR=10
until [ $CONTADOR -lt 0 ]; do
echo "Apagado automatico en $CONTADOR segundos " | iconv -f utf-8 -t iso-8859-1 |espeak -ves
let CONTADOR-=1
done
sudo shutdown -h now
exit 0
fi
#Comparamos, primero si esta debajo de Low, tocamos alarma
if (( "$Nivel" < "$Low" )); then
echo "Bateria en nivel critico conecta urgente el cargador" | iconv -f utf-8 -t iso-8859-1 |espeak -ves
sleep 1
mpg123 /home/tunombredecarpeta/Musica/alarma.mp3
function contar {
for (( i=0; i >(zenity –progress –text=»Bateria en nivel critico, conecta urgente el cargador» –auto-close –auto-kill)
contar >&3
exec 3>&-
exit 0
fi
#Estamos por encima de Low, asi que verificamos contra Min
if (( «$Nivel» < "$Min" )); then
echo "Bateria esta en nivel bajo" | iconv -f utf-8 -t iso-8859-1 |espeak -ves
function contar {
for (( i=0; i >(zenity –progress –text=»Bateria esta en nivel bajo,conecta el cargador» –auto-close –auto-kill)
contar >&3
exec 3>&-
exit 0
fi
Excelentes script…
Yo humildemente estoy desarrollando uno que ya lleva casi 4.000 lineas de código, es algo como un técnico virtual que configura, instala, repara, hace mantenimientos actualizaciones, sobre DEBIAN y nuestra Distro nacional Canaima 3.0, pronto montare una actualización que integrara Ubuntu, DEBIAN y Canaima.
Para ver este desarrollo vean mis Blogs:
http://proyectotictac.wordpress.com/
http://www.albertccs1976.blogspot.com/
Amigos si algunos de ustedes me pudiese ayudar, necesito un script que haga lo siguiente, soy muy novato en linux:
Lista los archivos que contengan cierto string (puede ser una palabra o mas de una) mas cerca del principio y mas cerca del final de su contenido. Deben incluirse en el resultado sólo aquellos archivos que sea de tipo texto (ASCII) y que pesen menos de 2024 bytes. Tanto el string a buscar como el directorio donde realizar la búsqueda serán entregados como parámetro por el usuario de la shell ($1 y $2). Su solución debe incluir validación de parámteros.
cualquier ayuda es de suma utilidad, gracias.
HOLA me dejaron una tarea y tal vez me puedan ayudar xq yo soy novata en scripts (en la vida he hecho uno), les agradezco!
1-Realice un scripr en lixus q muestre datos del equipo(nombre, usuarios conectados, fecha y hora, procesador, nombre de la distribucion de linux (estoy usando ubuntu 11.10), cantidad de memoria usada y disponible con porcentajes, cantidad de procesos, porcentaje de utilizacion del procesador)
2- realice un script en linux q lea un archivo q contenga una lista de directorios, para cada directorio se debe crear un archivo de respaldo comprimido en una carpeta cuyo nombre sera la fecha actual en formato yyyy-mm-dd . Se debe mostrar la hora de inicio y finalizacion asi coomo el tiempo transcurrido
3- realice un scrip q agregue en el cronograma de linux el script generadp en el item dos. La tarea se debe ejecutar todos los viernes a las 10:00pm
QUIEN SABE COMO ALMACENAR DATOS PLANOS DE JAVASCRIPT EN LA UNIDAD DE DISCO DURO
Hola Necesito instalar una impresora Canon LBP300 en ubuntu 10.10 y no he podido
Hola a todos ,Ocupo crear un comando que me indique cuantos directorios hay en un directorio dado, si alguien me puede ayudar con esto, se los agradeseria…
Hola a todos!!!!
Tengo muchas dudas de como hacer el siguiente scrip.
Aunque sea podrias decirme algunos pasos??? ya aré lo que pueda! 🙂
Un scrip, que abra un terminal i varias carpetas en un escritorio, un fichero de open office en otro escritorio, un fichero para programar en otro escritorio y por ultimo un navegador (chromium por ejemplo) en el ultimo escritorio.
Este scrip facilitaria el trabajo a cualquier programador, pudiendo modificar el scrip para abrir lo que se quiera, en mi caso, para trabajo de la universidad donde necesito tenerlo todo bien organizado, pero esto hace que pierda mucho tiempo en dejar todos los ficheros en su sitio.
Estaria muy bien que se pudiera iniciar desde un terminal con una linea donde se incluyan las carpetas y ficheros a abrir. y de esta manera reducir el tiempo de puesto en marcha.
Si no es mucho pedir jajaja alguna idea??? 🙂
muchas gracias!
mira esto:
http://askubuntu.com/questions/3363/how-to-open-a-nautilus-directory-and-select-a-file-in-it-from-the-command-line
urgente para hoy necesito un script muy sencillo que no soy capaz de hacer para una tarea crear un usuario x medio de un script necesito todo los pasos gracias
hola a todos, soy contador y saben, no tengo nada de experiencia en todos estos rollos, pero ahorita para un proyecto que necesito terminar de la empresa donde trabajo y que de eso depende mi chamba, necesito un software que pueda partir un pdf en varios pdf’s por cada vez que se repita por ejemplo en los encabezados «Constancia de Sueldos y Salarios», y que pueda nombrar cada pdf conforme al RFC de la persona, ya que éstos pdf’s se deben subir a un servidor y luego treparlos en la intranet de la cía, para que cada empleado pueda ver ese documento pero solo el suyo y no el de otra persona. Alguien puede orientarme qué software podría usar para esto???
si te interesa, puedo crear un sistema que gestione practicamente cualquier tarea que necesites ya sea basado en web o una aplicacion nativa
hola soy novato en lunix me podrian ayudar a realizar un script que reinicie la computadora cada 30 minutos porfavor
alguien me puede ayudar a realizar un script que te de la opcion de apagar o reiniciar la computadora gracias
IMPORTAR ARCHIVO .SQL
Comando que permite importar un archivo .sql a nuestro localhost para testear bases de datos
mysql -h localhost -u root -p nombre_bdd /ruta_de_archivo/archivo.sql
Buen dia, muy buen sitio web me ha sido de gran ayuda toda la informacion que se encuentra aca, thanks.
soy un novato en informatica… ¿que es un script?
Este script ejecuta todos los scripts .sql (oracle, por dentro no contenian «exit» )
for i in `ls -1`; do echo «@$i ; exit; «| sqlplus user/pass@DB1; done;
no se porque se pone lenta mi linux ubuntu 9.10 al abrir esta pagina
Has probado actualizar tu Ubuntu 9.10 a una versión mas reciente?
Hola Buen Dia
Gracias por crear cosas como estas nos ayudan mucho
Puede que mi pregunta sea tonta pero estoy atorado
Tengo un script que me verifica la existencia de un archivo y aparir de si existe o no ejecuto ciertos comando. Pero uno de esos comando de antemano se que puede ciclarse y debo terminarlo como si hiciera en consola un «ctrl + c», pero no se como aplicarlo en el script.
de antemano agradezco la ayuda
Hola he visto muchos script interesantes y espero que me puedan ayudar con lo que quiero hacer.
Quiero hacer un script que me cree y guarde en un fichero los datos que le paso.
Por ejemplo:
find /home/ -type f -iname «*.exe» -exec rm {} \; -print
esto quiero guardarlo en un fichero y que me actualize el fichero creado en caso de que ya exista.
Muchas Gracias
hola que tal? soy nueva en programacion tengo un codigo en python y quiero abrir automaticamente una serie de ficheros para correr el programa y crear un nuevo archivo .txt con todas las salidas alguien que pueda ayudarme? muchas gracias, lo que no logro hacer es el script que aba los archivos automaticamente
for i in `ls -1 *archivos* ; do ./programa $i >> archivo_output.txt ; done ;
Reconocimiento de voz usando Google (bash script).
http://pastebin.com/zSW1trx9
Ayuda alguien me puede decir como realizar este script???
Realice un script que lea un fichero llamado red.txt tal y como puede verse en el ejemplo:
#ip host
192.168.0.1 gamma.edu
127.0.0.3 ares.uca
80.58.0.33 dns.movistar
Deberá de construir un fichero llamado nombres.txt con la siguiente salida:
equipo1: gamma.pc41
equipo2: ares.pc43
equipo3: dns.pc73
Donde XX son los últimos números de la dirección IP sumados con 40.
Evidentemente, el fichero red.txt puede tener un número indeterminado de líneas
Algunos comandos para exim para los que tienen servidores de hosting
Ver en lo que esta haciendo exim:
exiwhat
Ver las cabeceras del mail:
exim -Mvh »
Ver las cabeceras de un mail:
exim -Mvh »
Buscar correos en cola:
exiqgrep -f [usuario]@dominio
Eliminar la cola de correo completa de tu servidor
exim -bp | awk ‘/^ *[0-9]+[mhd]/{print «exim -Mrm » $3}’ | sh
Un saludo