sábado, 12 de noviembre de 2022

Crear repositorios git como servidor

  •  Instalas paquete adecuados
  • Vamnos a la carpeta donde vamos a tener los repos
  • Para crear un repo, creamos la carpeta donde va a ir, con el sifijo .git
  • Entramos en la carpeta y ejecutamos los sigientes comandos:
git init --bare

  • Ya en el cliente, apadimos en un proyecto ya inciado con git un repo remoto:

git remote add origin [usuario]@[git_server_ip]:[path-de-proyecto]/projectname.git
Es útil cachear las credenciales git para que no esté todo el tiempo pidiendolas:
git config --global credential.helper cache
git config --global credential.helper store


martes, 7 de abril de 2020

Raspbian -DS3231 Módulo hardware de tiempo

Este es el módulo de hora hardware barato DS3231

s-l225.jpg

Y esto es lo que necesitas hacer para instalarlo:

1. Pon la siguiente línea en el fichero:

1
dtoverlay=i2c-rtc,ds3231

2. Edita el fichero /lib/udev/hwclock-set y comenta el siguiente bloque:

1
2
3
if [ -e /run/systemd/system ] ; then
exit 0
fi

Que pasa a quedar así:

1
2
3
#if [ -e /run/systemd/system ] ; then
# exit 0
#fi

Y eso es todo lo que necesitas hacer. Reinicia el sistema, conecta el módulo y vuelve a encender. El siguiente comando leerá la hora directamente del módulo de reloj:

1
sudo hwclock -r

Otros comandos interesantes para trabajar con este módulo hardware son:


1
2
3
4
hwclock -r //Leer datos de modulo
hwclock -w  //Actualizar hora de modulo con datos del sistema
hwclock -s  //Actualizar datos del sistema con hora del modulo
hwclock -c  //Monitoriza la diferencia entre datos de sistema y hora del modulo

Los pines de conexión son:


1
2
3
4
5
Pin#1 3V3
Pin#3 SDA
Pin#5 SCL
Pin#7 GPIO4
Pin#9 GND

Y aquí puedes consultar la posición de los pines:  https://pinout.xyz


sábado, 28 de marzo de 2020

Pi-Raspbian: Backup, modificación y restauración de SD

Pasos:
  • Apagamos la raspberry y sacamos la tarjeta sd.
  • La contectamos al nuestro debian mediante un lector de tarjetas.
  • La detectamos:
1
2
3
4
5
# lsscsi 
[0:0:0:0]    disk    ATA      TOSHIBA-TR200    12.5  /dev/sda 
[1:0:0:0]    disk    ATA      ST500LT012-1DG14 SDM1  /dev/sdb 
[2:0:0:0]    cd/dvd  HUAWEI   Mass Storage     2.31  /dev/sr0 
[3:0:0:0]    disk    HUAWEI   MMC Storage      2.31  /dev/sdc 
  • El enlace del dispositivo es: /dev/sdc
  • Realizamos el backup:
1
# dd if=/dev/sdc of=/home/xxx/temp/image-200328a.img  count=10MB status=progress
  • Montar la imagen para modificarla y luego desmontarla:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# fdisk -l image-200328a.img
Disco image-200328a.img: 1,9 GiB, 1977614336 bytes, 3862528 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 512 bytes
Tamaño de E/S (mínimo/óptimo): 512 bytes / 512 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0x738a4d67

Disposit.          Inicio Comienzo   Final Sectores Tamaño Id Tipo
image-200328a.img1            8192  532479   524288   256M  c W95 FAT32 (LBA)
image-200328a.img2          532480 3862527  3330048   1,6G 83 Linux

  • Calculamos el offset de la partición linux: 512 * 532480 = 272629760
  • Montamos esta partición:
1
2
# mount -v -o offset=272629760 -t ext4 image-200328a.img /mnt/tmp/
mount: /dev/loop0 montado en /mnt/tmp.
  • Desmontamos tras los cambios que sean:
1
# umount /mnt/tmp/
  • Pasamos la imagen a la tarjeta:

1
# dd bs=1M if=./image-200328a.img of=/dev/sdc count=10MB status=progress

Y se acabó!


sábado, 14 de diciembre de 2019

noip2 en rasbian como servicio

Primero bajamos y construimos el ejecutable:

  $ wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
  $ tar xvf noip-duc-linux.tar.gz
  $ cd noip-2.1.9-1/
  $ make

Después los instalamos:
  $ sudo make install

Ahora nos pedirá los datos de acceso a noip2. Los completamos y terminamos.

Tras ello creamos un servicio para que no tengamos que estar lanzándolo a mano. Creamos el fichero /etc/init.d/noip2 con el siguiente contenido:

#! /bin/sh
# /etc/init.d/noip2

# Supplied by no-ip.com
# Modified for Debian GNU/Linux by Eivind L. Rygge <eivind@rygge.org>
# Updated by David Courtney to not use pidfile 130130 for Debian 6.
# Updated again by David Courtney to "LSBize" the script for Debian 7.

### BEGIN INIT INFO
# Provides:     noip2
# Required-Start: networking
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start noip2 at boot time
# Description: Start noip2 at boot time
### END INIT INFO

# . /etc/rc.d/init.d/functions  # uncomment/modify for your killproc

DAEMON=/usr/local/bin/noip2
NAME=noip2

test -x $DAEMON || exit 0

case "$1" in
    start)
    echo -n "Starting dynamic address update: "
    start-stop-daemon --start --exec $DAEMON
    echo "noip2."
    ;;
    stop)
    echo -n "Shutting down dynamic address update:"
    start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON
    echo "noip2."
    ;;

    restart)
    echo -n "Restarting dynamic address update: "
    start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON
    start-stop-daemon --start --exec $DAEMON
    echo "noip2."
    ;;

    *)
    echo "Usage: $0 {start|stop|restart}"
    exit 1
esac
exit 0

Damos permisos de ejecución:

  $ sudo chmod a+rx /etc/init.d/noip2

Comprobamos que todo está bien:

  $ sudo /etc/init.d/noip2 start
  $ sudo noip2 -S
  1 noip2 process active. 

  Process 7065, started as noip2
  Using configuration from /usr/local/etc/no-ip2.conf
  Last IP Address set 230.127.57.182
  Account kayon.toga@togaware.com
  configured for:
          group ktware
  Updating every 30 minutes via /dev/eth0 with NAT enabled.

Finalmente activamos la ejecución automática:

  $ sudo update-rc.d noip2 defaults

y se acabó, con esto debería estar todo hecho.

be happy!




domingo, 24 de noviembre de 2019

Notas Raspbian - Varios memoria y filesystems

Copiado de Raspbian a tarjeta de memoria


#sudo dd bs=1M if=rpi_35_v6_1_2_3_jessie_kernel_4_4_50.img of=/dev/mmcblk0

Congelación del kernel

#sudo apt-mark hold linux-image

Operaciones con memorias usb

Discover the location of a USB drive:

ls /dev/sda*

/dev/sda points to the 1st hard drive
/dev/sda1 If the drive is formatted, points to the drive’s 1st partition
/dev/sda2 If the partition exists, points to the 2nd partition, etc.

To mount a USB drive:

sudo mkdir /mnt/usbdrive
sudo mount /dev/sda1 /mnt/usbdrive
ls /mnt/usbdrive

To list your file systems:

sudo fdisk -l
sudo mount -l
df -h

Before disconnecting a USB drive:

sudo umount /dev/sda1

Format

Format a drive to EXT4
sudo mkfs.ext4 /dev/sda1 -L untitled

Add macOS HFS+ read/write support
sudo apt-get install hfsutils hfsprogs

Format a drive to HFS+
sudo mkfs.hfsplus /dev/sda1 -v untitled

Add Windows NTFS read/write support
sudo apt-get install ntfs-3g

Format a drive to NTFS
sudo mkfs.ntfs /dev/sda1 -f -v -I -L untitled

Add Windows/macOS exFAT read/write support
sudo apt-get install exfat-fuse exfat-utils

Format a drive to exFAT
sudo mkfs.exfat /dev/sda1 -n untitled

Add Windows/DOS FAT32 read/write support
sudo apt-get install dosfstools

Format a drive to FAT32
sudo mkfs.vfat /dev/sda1 -n untitled

Notas Raspbian - ip stática

Hemos de abrir el siguiente fichero:

sudo nano /etc/dhcpcd.conf
Vamos al final de fichero y veremos ejemplos comentados de como hemos de hacerlo.
Estas líneas son un ejemplo de lo que necesitaremos poner:
interface eth0
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

interface wlan0
static ip_address=192.168.43.233/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1

viernes, 8 de diciembre de 2017

Fallo en entrada Windows10 tras actualización de Grub, sistema sobre EFI

Pues eso, que si tras actualizar la versión de grub de nuestro debia, la entrada de Windows10 deja de funcionar, podemos hacer lo siguiente:

-Entramos en línea de comando como superusuario.

-Vemos la lista de particiones para identificar la patición EFI:
#fdisk -l
...
/dev/sda2    1230848   1845247    614400   300M EFI System
...

-Vemos el código UUID de esa partición:
# blkid /dev/sda2
/dev/sda2: LABEL="ESP" UUID="5CDG-R4C72" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="313a3cef-7483-43ba-a571-5ecd69c554f1"

-Editamos el fichero vi /etc/grub.d/40_custom, y añadimos al final lo siguiente:
menuentry 'Windows 10' {
    search --fs-uuid --no-floppy --set=root 5CDG-R4C72
    chainloader (${root})/EFI/Microsoft/Boot/bootmgfw.efi
}

-Actualizamos grub:

update-grub

-Reiniciar y a ver si hay suerte.

Si el sistema no está basado en EFI, hemos de localizar el identificador de la partición asociada al sistema Windows10 y con él añadir en el mismo fichero indicado más arriba lo siguiente:
menuentry "Windows 10" --class windows --class os {
   insmod ntfs
   search --no-floppy --set=root --fs-uuid CODIGO-UUID-PARTICION-WINDOWS
   ntldr /bootmgr
}


Con esto y un bizcocho...

viernes, 8 de septiembre de 2017

Configurar el acceso a internet de Android emulator tras un proxy

Arrancar la máquina virtual y seguir los siguientes pasos:

  1. Click en Menu
  2. Click en Ajustes
  3. Click en Wireless & Networks
  4. Ir a Redes Mobiles
  5. Ir a Nombres de Puntos de Acceso
  6. Click en el que esté dado de alta.
  7. En la sección Editar puntos de acceso, actualizar los campos proxy y puerto
  8. Actualizar el nombre de usuario y clave si es necesario para pasar el proxy.
  9. Dejar en blanco el resto de campos.
Con esto y un bizcocho debería funcionar.

A mandar!

lunes, 4 de septiembre de 2017

martes, 29 de agosto de 2017

Git notes

Taging:
     Go to link
Forcing pull:
   $git  fetch --all
   $git  reset --hard origin/[branch]
Creating new branch from master:
  $git checkout master
  $git branch [new branch name]
Push all branchs and tags:
  $git push --all
  $git push --tags

Maven: Skip tests


Option 1)
Define in pom.xml a new property and run the maven command

   <properties>
       <maven . test.skip >true< /maven .test. skip>
   </properties>

Option 2)

      $ mvn clean install -DskipTests

miércoles, 23 de agosto de 2017

Recuperacion arranque dual tras actualización windows 10

Si perdemos el arranque dual boot tras una actualización de Windows 10, perdiendo el acceso a nuestro Debia, hay muchas formas de actuar, pero una de mas las sencillas es:

  • Entrar en windows
  • Abrir una línea de comandos como administrador: cmd
  • Montar la unidad EFI para comprobar donde y como está configurado el arranque efi de debian: mountvol.exe s: /s
  • Entrar en la unidad recien montada s (s:) y ver la ruta donde está instalado el fichero grubx64.efi que queremos recuperar, en mi caso: \EFI\debian\grubx64.efi
  • Ejecutar el siguiente comando: bcdedit.exe /set {bootmgr} path \EFI\debian\grubx64.efi
  • Reiniciar el sistema
Si no hay suerte hay que arrancar con un livecd o equivalente y bien reinstalar grub o entrar en grub mode rescate y corregir el problema. Ambos casos está fuera del alcance de esta nota.

Suerte!

martes, 17 de enero de 2017

Instalación de Webmin (gui de administración apache) en debian

Webmin es un administrador amigable (GUI) de servidor Apache. 
De una manera rápida comentaré su instalación en debian.
  1. Añadirmos el repositorio a la lista de repositorios:
    sudo vi /etc/apt/sources.list.d/webmin.list
    
  2. Si no existe el fichero, se creará. Añadimos una última línea (o la única si es el caso):
    deb http://download.webmin.com/download/repository sarge contrib
    
  3. Descargamos e instalamos la llave:
    wget -q http://www.webmin.com/jcameron-key.asc -O- | sudo apt-key add -
    
  4. Actualizamos la lista del repositorio local:
    sudo aptitude update
    
  5. Instalamos Webmin:
    sudo aptitudo install webmin
    
Finalmente visitamos la página Webmin en local desde nuestro navegador: https://localhost:10000

sábado, 17 de octubre de 2015

Script para unir imágenes

Buenas, este es el código del script para unir imágenes png:

################################################################################
#Unión de imágenes
# Parametro 1: Nombres de ficheros a unir.
################################################################################

for a in $*; do 
  echo $a
  ficheros=$ficheros' '$a
done

#echo $ficheros
salida="${1/.png/_merged.png}"
echo 'Merged in ------------> '$salida
convert -append $ficheros $salida

Si lo que queremos es unir imágenes con otra extensión, cambiar la extensión png en la línea donde se da valor a la variable salida.

Como siempre, este escript hemos de copiarlo en un fichero de texto y guardarlo con extensión sh. Luego hemos de darle permisos de ejecución, bien desde vuestro administrador de ficheros, bien desde la línea de comandos:

#chmod +x script.sh

Donde script.sh es el nombre que hayais puesto al fichero.

¿Como funciona? Sencillo, llamar desde la línea de comando al script añadiendo como parámetro el nombre de los ficheros a unir. Se admiten nombre con comodines, lo cual da verdadera potencia a este script pues podremos unir cientos de ficheros png contan solo el nombre del script y un conjunto que comodines que los describan.

Os aconsejaría guardar todos estos scritps en un directorio único y añadirlo en la configuración del shell para que se ejecuten siempre, sin que tengáis que estar en el mismo directorio que los scripts.


martes, 15 de septiembre de 2015

Donde esta el adobe matarile rile rile

Pue eso, que adobe a abandonado linux, de cara al menos a su reader. Asi que bueno, mal vamos.

En cualquier caso, podemos bajar la última versión disponible para linus desde la siguiente url:

ftp://ftp.adobe.com/pub/adobe/reader/unix/9.x/9.5.5/enu/

Tras bajar el paquete seguir los siguientes pasos (todos desde línea de comandos):

  • Añadir arquitectura 32bits a nuestro sistema:
$ sudo dpkg --add-architecture i386
$ sudo apt-get update
  • Instalamos:
$ sudo dpkg -i AdbeRdr9.5.5-1_i386linux_enu.deb
  • Si nos dice que hay paquetes rotos, dejamos que apt-get haga el trabajo sucio:
$ sudo apt-get install -f
  • Lanzamos:
$ acroread
  • Si nos dá el siguiente error:
    /opt/Adobe/Reader9/Reader/intellinux/bin/acroread: error while loading shared libraries: libxml2.so.2: cannot open shared object file: No such file or directory
    • Buscamos el fichero perdido con apt-file.
      $ sudo apt-file update
      $ sudo apt-file search libxml2.so.2
      • Encontramos lalibrería libxml2. Así que la instalamos, en su versión i386:
        $ sudo apt-get install libxml2:i386
        • Lanzamos de nuevo:
        $ acroread
        • Y ya debería estar.
        Espero sea de utilidad.

        =:)

        jueves, 16 de abril de 2015

        Instalar libc6 >= 2.13

        Buenas,

        para poder instalar la última versión de Opera el sistema nos solicitará tener instalada una versión de la librería libc6 igual o superior a la 2.13, que no encontraremos en nuestros repositorios estables.

        Tendremos pues que añadir un repositorio donde sí esté, en este caso el oficial de test. Para ello añadiremos la siguiente línea al fichero /etc/apt/sources.list :

        # Repositorio Test
        deb http://ftp.debian.org/debian/ testing main contrib non-free

        Una vez hecho esto ejecutamos como root los siguientes comandos en un terminal:

        apt-get update
        apt-get -t testing install libc6

        Tras ello yo comentaría, anadiendo el carácter #,  la línea antes añadida al fichero sources.list

        Espero sea de utilidad.

        =:)



        lunes, 30 de marzo de 2015

        Red tor en nuestro Iceweasel


        Pues eso, rápidamente lo comentamos, que de tiempo sobrado no ando.

        Intalamos desde synaptic, aptitude o apt-get los paquetes tor y vidalia. Tor es el paquete en sí que implementa los protocolos de tor mientras que vidalia es un entorno gráfico para su gestión. Desde aptitude quedaría tal que así:

        #sudo aptitude update
        #sudo aptitude install tor vidalia

        Tras ello arrancamos iceweasel y nos vamos a la parte de plugis y ads on. Ahí buscamos el plugin foxyProxy standar y lo instalamos.
        Tras ello se reinicia el navegador y pulsamos en el zorro rojo que nos aparece a la derecha de la barra de direcciones.
        En la ventana que aparece pulsamos Archivo->Asistente tor.
        Nos sale una ventana emergente donde elegimos la opción sin Proxy.
        Dejamos el puerto por defecto (9050) y pulsamos Aceptar.
        Pulsamos Cerrar.
        Ya en el el Iceweasel pulsamos de nuevo el zorro, que ahora seŕa azul, pero con el botón derecho y en el menú emergente que sale marcamos la opción Usar el proxy Tor para todas las direcciones.

        Con esto y un bizcocho tendremos nuestro navegador favorito navegando anónimo por la red.

        Para más notas, ideas y configuraciones, a buscar, que para eso alguien creó los buscadores.

        Espero os sea últil.

        =:)

        domingo, 22 de febrero de 2015

        Ssh tunneling

        Buenas,

        copio y pego este interesante, breve y claro post sobre el tuneling ssh, obtenido de la página:

        http://www.revsys.com/writings/quicktips/ssh-tunnel.html

        Este es el post:

        Quick-Tip: SSH Tunneling Made Easy

        I was surprised at how long it took me to find a good HOWTO on setting up a simple SSH tunnel that I wanted to write up this Quick-Tip.
        Using OpenSSH on a Linux/Unix system you can tunnel all of the traffic from your local box to a remote box that you have an account on.
        For example I tunnel all of my outbound E-mail traffic back to my personal server to avoid having to change SMTP servers, use SMTP-AUTH, etc. when I am behind firewalls. I find that hotel firewalls, wireless access points, and the other various NATing devices you end up behind while traveling often do not play nice.
        To do this I use the following:
        ssh -f user@personal-server.com -L 2000:personal-server.com:25 -N
        The -f tells ssh to go into the background just before it executes the command. This is followed by the username and server you are logging into. The -L 2000:personal-server.com:25 is in the form of -L local-port:host:remote-port. Finally the -N instructs OpenSSH to not execute a command on the remote system.
        This essentially forwards the local port 2000 to port 25 on personal-server.com over, with nice benefit of being encrypted. I then simply point my E-mail client to use localhost:2000 as the SMTP server and we're off to the races.
        Another useful feature of port forwarding is for getting around pesky firewall restrictions. For example, a firewall I was behind recently did not allow outbound Jabber protocol traffic to talk.google.com. With this command:
        ssh -f -L 3000:talk.google.com:5222 home -N
        I was able to send my Google Talk traffic encrypted through the firewall back to my server at home and then out to Google. 'home' here is just an SSH alias to my server at home. All I had to do was reconfigure my Jabber client to use localhost as the server and the port 3000 that I had configured.
        Hopefully this helps you to better understand SSH tunneling. If you found this page useful, you may also be interested in how to make your SSH connections faster. If you find any errors or have any suggestions regarding this please feel free to E-mail me at frank@revsys.com.
        Books on SSH
        Here are some helpful books if you need further help with SSH.
         
         Muchas gracias a Frank Wiler por este post. Espero no le importe que lo republique. Si lees esto y no te parece bien, por favor, dímelo y lo retiraré en el instante.
         
        Espero os sea de utilidad!

        =:) 

        jueves, 8 de enero de 2015

        Creación de documento pdf desde ficheros de imagenes

        Buenas, breve por la falta de tiempo seré (es lo que hay por desgracia).

        Para generar un fichero pdf desde un grupo de imágenes de forma rápida y con herramientas gnu de nuestro debian ejecutamos el siguiente comando:

        #convert *.png salida.pdf

        Si el resultado es un fichero demasiado grande, podemos reducirlo con el siguiente comando:

        #gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=optimizado.pdf salida.pdf

        Para el primero es preciso tener instalado el paquete convert y para el segundo el paquete ghostscript.

        Con esto generaremos un pdf de imagenes. Para obtener un pdf de texto es preciso usar un programa OCR, pero eso es otra historía que veremos otro día.

        Espero sea de utilidad a alguien.

        =:)