Mostrando entradas con la etiqueta consola. Mostrar todas las entradas
Mostrando entradas con la etiqueta consola. Mostrar todas las entradas

2015/09/11

Copiar archivos con conexiones lentas (windows)

La alternativa libre y válida para GNU/Linux, Mac y Windows es sin duda usar RSync, pero si estás en un windows desde Windows Vista, microsoft incorporado robocopy.exe como parte de la instalación estándar. La herramienta robocopy de línea de comandos es realmente útil para la copia masiva de ficheros en entornos windows, pudiendo programar con muchas opciones las copias, sincronizar carpetas, etc...

Entre las virtudes de este programa frente a una simple copia de ficheros con la interfaz de usuario o el comando "copy" están:

  • Posee un indicador de progreso de la copia.
  • Es tolerante a interrupciones en la copia de archivos.
  • Realiza reintentos automáticos si no se puede acceder a un archivo.
  • Permite copiar grandes cantidades de archivos.
  • Duplica información como propiedades, atributos, datos del propietario, fechas, etc. así como los permisos del archivo.

  • Una de las características más interesantes es el parámetro /IPG o Inter Packet Gap, que permite definir un tiempo en milisegundos entre cada paquete enviado. Esto permite que optimizar mucho el uso del ancho de banda en redes lentas o con problemas de conexión para no interferir en otros procesos. Para calcular mejor cómo configurar este parámetros IPG puede ser de utilidad el artículo "Copy files on slow links" y sobre todo su calculadora que me he permitido incorporar aquí traducida al español:

    Calculadora Robocopy IPG
    Tamaño
    Velocidad
    Valor IPG
    Paquetes
    Retardo (hh:mm:ss)
    Tiempo de copia (hh:mm:ss)
    Tiempo Total (hh:mm:ss)


    Para ver todos los parámetros que la herramienta ofrece visitar la página de documentación de microsoft sobre robocopy.
           
       

    2015/05/11

    Eliminar texto en consola al ejecutar script en sqlplus (Oracle)

    Cuando lanzamos un script muy largo a través de sqlplus del modo:
    sqlplus user/pass@db < myscript.sql
    a veces este genera un gran volumen de mensajes en consola que hacen que se pueda ralentizar el proceso. Para evitarlo, se puede apagar esta salida de texto introduciendo al comienzo del script los comandos:
    set termout off
    set feedback off
           
       

    2015/01/26

    No cerrar consola de windows al ejecutar un script

    Si tienes un script, por ejemplo de python, que quieres ejecutar en Windows con un acceso directo (asociando la ejecución con "pythonw.exe" para que se lance la consola) vemos que al hacer click sobre él se ejecuta, pero no podemos ver el resultado ya que se cierra rápidamente la terminal de línea de comandos.

    Un truco sencillo es usar el comando "pause" como última línea del script.
    Veamos un ejemplo:

    C:\Python\pythonw.exe myscript.py
    pause
    Con eso antes, tras finalizar el script de python se detiene la ejecución hasta que el usuario pulse una tecla y se puede ver la salida del programa en la consola. Esto también funciona scripts en otros lenguajes MSDOS, los .cmd".
           
       

    2014/04/11

    Ejecutar scripts con sqlplus de Oracle

    Este es un recordatorio de cómo ejecutar y poder ver el progreso de un script SQL para Oracle usando sqlplus.
    Para conectar
    sqlplus user/pass@connect
    Y una vez dentro del terminal SQL
    set timing on
    set echo on
    set serveroutput on
    @nombrescript.sql
    Con esto se verá cada sentencia ejecutada, el tiempo empleado para cada una y los dbms_output.put_line('').
           
       

    2010/07/29

    Usar editor externo en postgresql

    Aunque pgAdmin es un programa bastante cómodo e intuitivo para administrar bases de datos postgres, el cliente en línea de comandos es realmente potente y ágil.

    En algunas ocasiones es verdad que para programar sobre la base de datos, hacer consultas muy complejas o realizar otras operaciones trabajar en el terminal es algo engorroso. En el terminal no es tan sencillo editar y no tienen tantas ayudas como en un programa de edición de textos o un IDE.

    Existe la posibilidad de usar un editor externo para editar una consulta concreta.

    El comando
     \e 

    permite abrir un editor con el "Query Buffer" actual. La primera vez que se ejecuta este comando '\e' te pregunta qué programa externo usar; emacs con su sql-mode puede que sea el mejor ;). Admite como parámetro un fichero también.
     \e [FILE]


    Si quieres editar una función concreta, puedes utilizar:
     \ef [FUNCTION_NAME] 

    que si ejecutas sin parámetros te genera una plantilla básica para empezar a programar.

    En ocasiones puede pasar lo siguiente si queremos editar/ver una función:


    #\ef dropgeometrycolumn
    ERROR: more than one function named "dropgeometrycolumn"


    Esta función es de PostGIS y existe un conflicto de nombres debido a que es posible aplicar "polimorfismo". Si miramos la firma de las funciones:


    # \df dropgeometrycolumn

    Schema | Name | Result data type | Argument data types | Type
    --------+--------------------+------------------+---------------------+--------------
    public | dropgeometrycolumn | text | character varying, character varying | normal
    public | dropgeometrycolumn | text | character varying, character varying, character varying| normal
    public | dropgeometrycolumn | text | character varying, character varying, character varying, character varying | normal
    (3 rows)


    Para poder editar una de esas funciones concretas habría que espedificar los argumentos:


    # \ef addgeometrycolumn(character varying, character varying, integer, character varying, integer)
           
       

    2010/02/02

    Baixar videos de agalega.info

    Con GNU/Linux non son quen de ver os videos de agalega.info nin con Firefox nin cun video player usando mms.

    A solución foi baixar o arquivo usando o seguinte comando:

     mplayer mms://url -dumpstream -dumpfile foo.wmv 
           
       

    2010/01/27

    Copiando todo con los permisos

    Esto es un uso de tar simple que conviene tener a mano para cuando tienes que hacer un backup y necesitas que mantenga los permisos de los ficheros y directorios.

     tar -pczf foo_backup.tar.gz foo/ 

    Este comando creará (-c) un nuevo fichero foo_backup.tar.gz (-f), comprimido con gzip (-z) guardando todos los permisos (-p).

    Actualización:

    En caso de tener que volcarlo en un disco externo este post puede ser interesante para evitar el mensaje "File too large"... :)

    Todo junto quedaría:

     tar -to-stdout -pcz foo/ | split -b3500m - foo_backup.@


    Y cortesía de fpuga un par de links interesantes para usar la opción -L de tar y otras cosas más:
           
       

    2009/10/19

    Cambiar origen de un repositorio SVN

    Si el origen de un repositorio SVN del que eres cliente ha cambiado de host o IP, incluso has cambiado de nombre de usuario puedes ejecutar esta simple instrucción para, de un modo bastante poco elegante, cambiar todas las referencias de los archivos .svn.


    cd root_path_svn
    for i in `find | grep .svn`; do
    cat $i | sed s/'oldusername@xxx.xxx.xxx.xxx'/'newusername@yyy.yyy.yyy.yyy'/g > /tmp/foo.aux;
    sudo mv /tmp/foo.aux $i;
    done
           
       

    2008/12/13

    MDB en Linux

    A pesar de que se vive mucho mejor sin Windows, el uso extendido de ciertas aplicaciones dependientes de este sistema operativo hacen que los usuarios se encuentren a merced de los antojos comerciales de Microsoft. Un caso bien conocido son las herramientas de CAD que no acaban de encontrar su competidor en el mundo FLOSS (Free Libre Open Software Libre). Pero quizás, es la suite ofimática Microsoft Office la que más impide el paso de los usuarios al uso de Linux.
    OpenOffice es una alternativa plena para substituir a la suite ofimática de Microsoft, pero a veces la conversión de formatos no es satisfactoria y si hay macros de por medio menos. De todos modos, yo me resisto a volver a Windows y existen formas de lograr trabajar a gusto sobre Linux a pesar de la traba de los formatos propietarios.
    En mi caso actual me encuentro con una "base de datos" Access mdb con muchísimas tablas que quería poder manejar desde Linux. Para ello existe mdbtools que es un conjunto de herramientas para leer mdb. Se puede instalar mediante el comando:
    $sudo aptitude install mdbtools
    Para listar las tablas de un mdb podemos usar el comando:
    $mdb-table -1 nombrefichero.mdb
    Para exportar a CSV sin comillas y separado por comas he usado la siguiente sentencia:
    $mdb-export -S -q '' -d ';' -D '%Y-%m-%d' nombrefichero.mdb nombretabla > nombretable.csv
    Y para exportar todas las tablas a la vez...

    IFS=$'\n'
    for table in `mdb-tables -1 nombrefichero.mdb`; do
    echo '**** Exporting table: '$table '****'
    mdb-export -S -q '' -d ';' -D '%Y-%m-%d' nombrefichero.mdb $table > $table'.csv'
    echo 'Done.'
    done
    ***** Actualización *****
    Se puede abrir un MDB desde openoffice conectándose mediante ODBC. La receta:
    http://wiki.services.openoffice.org/wiki/Connecting_to_Microsoft_Access
           
       

    2008/06/12

    Descomprimir archivos ZIP

    Normalmente descomprimir un zip en Ubuntu es muy sencillo; se pincha sobre el archivo comprimido, se abre automáticamente el programa File-Roller (que viene por defecto en los escritorios GNOME), selecciona el directorio de destino y listo.

    Para descomprimir desde línea de comandos lo normal es usar el programa unzip.

    Ejemplo de uso:
    $unzip fichecho.zip -d destino
    Otra alternativa es usar File-Roller directamente desde linea de comandos. Para el mismo caso que antes escribiríamos:
    $file-roller -e destino -f fichecho.zip
    Usar file-roller tiene la ventaja de que ofrece soporte para muchos formatos de compresión con la misma forma de comprimirlos/descomprimirlos. Además, mi experiencia personal es que file-roller es más fiable que unzip descomprimiendo grandes ficheros.

    Formatos soportados a día de hoy por file-roller:
    • Zip (.zip)
    • Jar (.jar , .ear , .war)
    • Lha (.lzh)
    • Rar (.rar)
    • Zoo (.zoo)
    • Arj (.arj)
    • AR (.ar)
    • Paquetes Debian (.deb) (Read-only mode)
    • Paquetes RPM (.rpm) (Read-only mode)
    • 7-zip (.7z)
    • ISO (.iso) (Read-only mode)
    • Stuffit (.bin, .sit)
    • Ficheros gzip, bzip, bzip2, compress, lzo
    • ...y por supuesto, maneja ficheros tar
           
       

    2008/05/30

    Distintas formas de listar ficheros en linux

    Trabajando en consola es muy común listar los contenidos de los directorios.
    Lo típico es usar el comando ls que tiene muchisimas opciones, pero su uso normal es:


    Otra manera es usar el comando find sin parámetros:


    Hoy he aprendido una nueva: tree. ¿Quién necesita entorno gráfico? jejeje