• Capturar nombre de interfase

    From Gerardo Braica@21:1/5 to All on Wed Dec 7 00:20:02 2022
    This is a multi-part message in MIME format.
    Buenas a todos.
    Mi duda no es exactamente sobre Debian pero seguramente conocen la
    respuesta.
    Habitualmente uso scripts propios, muy simples , para tareas repetitivas.
    Por ejemplo hice uno para todo lo que sea actualizacion del sistema para
    que en lugar de escribir sudo apt update todos los dias solamente marco
    el 1.
    Ahora estoy haciendo uno para todo el proceso de macchanger, o sea cargar
    una variable con el nombre de la interfase de red, bajarla, macchanger -a y volver a subirla.
    El tema es que no se como obtener el nombre de la interfase, por el momento ejecuto ifconfig desde el script y hago que el script me pregunte el nombre para pegarlo "a mano" y de ahi sigue solo.
    ¿Hay alguna forma de ejecutar ifconfig y capturar la salida pero solamente
    el nombre de la interfaz?

    Muchas gracias.

    --
    */Gerardo Braica
    */gbraica@gmail.com.ar
    /*/*
    <html>
    <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    </head>
    <body>
    Buenas a todos. <br>
    Mi duda no es exactamente sobre Debian pero seguramente conocen la
    respuesta.<br>
    Habitualmente uso scripts propios, muy simples , para tareas
    repetitivas. <br>
    Por ejemplo hice uno para todo lo que sea actualizacion del sistema
    para <br>
    que en lugar de escribir sudo apt update todos los dias solamente
    marco el 1.<br>
    Ahora estoy haciendo uno para todo el proceso de macchanger, o sea
    cargar<br>
    una variable con el nombre de la interfase de red, bajarla,
    macchanger -a y <br>
    volver a subirla. <br>
    El tema es que no se como obtener el nombre de la interfase, por el
    momento<br>
    ejecuto ifconfig desde el script y hago que el script me pregunte el
    nombre<br>
    para pegarlo "a mano" y de ahi sigue solo.<br>
    ¿Hay alguna forma de ejecutar ifconfig y capturar la salida pero
    solamente<br>
    el nombre de la interfaz?<br>
    <br>
    Muchas gracias.<br>
     <br>
    <div class="moz-signature">-- <br>
    <font font="" size="2" face="Arial, MS Sans Serif" color="#706C6C">
    <b><i>Gerardo Braica
    <br>
    <b><i><a class="moz-txt-link-abbreviated" href="mailto:gbraica@gmail.com.ar">gbraica@gmail.com.ar</a>
    <br>
    </i></b></i></b></font></div>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?Miguel_=c3=81ngel_S=c3=a1@21:1/5 to All on Wed Dec 7 01:10:01 2022
    This is a multi-part message in MIME format.
    Buenas Gerardo.

    Seguramente tu máquina tenga más de una interfaz (al menos "lo" y la que quieres modificar), por lo que necesitas un criterio para escoger qué interfaz. Debería ser el mismo criterio que aplicas cuando seleccionas a
    mano el nombre de la interfaz.

    Si usas al menos Debian 10, con este comando puedes ver qué interfaces
    hay en tu máquina:

    ip -o link

    Necesitas un criterio específico para seleccionar una de esas
    interfaces. Te doy dos ejemplos [1]:

     - Por una dirección IP conocida (en este ejemplo: 192.168.1.2):

      ip -o a | grep 192.168.1.2 | awk '{ print $2 }'

     - Por una dirección MAC conocida (en este ejemplo: 00:15:2c:00:00:00):

      ip -o link | grep 00:15:2c:00:00:00 | awk '{ print substr($2,1,length($2)-1) }'

    Seguramente haya mejores formas de implementar eso.

    Si utilizas un Debian moderno (10+, creo) los nombres de interfaces
    deberían seguir una estructura determinada: "wlpXsY", "enpXsY", "enxMAC"
    ... [2]. Quizás esto te ayude a escoger el nombre de la interfaz si sólo tienes una de ese tipo.

    Por otra parte, sobre la automatización de apt para que actualice la
    lista de paquetes a diario, existen servicios de segundo plano ya hechos
    que te pueden interesar. Por ejemplo: "cron-apt" [3], que se puede
    ampliar si quisieses a 'upgrade' también, o "unattended-upgrades" [4],
    para ejecutar 'upgrade' también y es bastante configurable.

    Ya nos comentas, un saludo.


    1. Me baso en https://unix.stackexchange.com/a/445975

    2. Aquí tienes la lista de tipos de nombre de interfaz: https://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20

    3. https://packages.debian.org/stable/cron-apt

    4. https://wiki.debian.org/UnattendedUpgrades

    El 7/12/22 a las 0:10, Gerardo Braica escribió:
    Buenas a todos.
    Mi duda no es exactamente sobre Debian pero seguramente conocen la
    respuesta.
    Habitualmente uso scripts propios, muy simples , para tareas repetitivas.
    Por ejemplo hice uno para todo lo que sea actualizacion del sistema para
    que en lugar de escribir sudo apt update todos los dias solamente
    marco el 1.
    Ahora estoy haciendo uno para todo el proceso de macchanger, o sea cargar
    una variable con el nombre de la interfase de red, bajarla, macchanger
    -a y
    volver a subirla.
    El tema es que no se como obtener el nombre de la interfase, por el
    momento
    ejecuto ifconfig desde el script y hago que el script me pregunte el
    nombre
    para pegarlo "a mano" y de ahi sigue solo.
    ¿Hay alguna forma de ejecutar ifconfig y capturar la salida pero solamente el nombre de la interfaz?

    Muchas gracias.

    --
    */Gerardo Braica
    */gbraica@gmail.com.ar
    /*/*
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    <p>Buenas Gerardo.</p>
    <p>Seguramente tu máquina tenga más de una interfaz (al menos "lo" y
    la que quieres modificar), por lo que necesitas un criterio para
    escoger qué interfaz. Debería ser el mismo criterio que aplicas
    cuando seleccionas a mano el nombre de la interfaz.</p>
    <p>Si usas al menos Debian 10, con este comando puedes ver qué
    interfaces hay en tu máquina:</p>
    <p>ip -o link</p>
    <p>Necesitas un criterio específico para seleccionar una de esas
    interfaces. Te doy dos ejemplos [1]:</p>
    <p> - Por una dirección IP conocida (en este ejemplo: 192.168.1.2):</p>
    <p>  ip -o a | grep 192.168.1.2 | awk '{ print $2 }'<br>
    </p>
    <p> - Por una dirección MAC conocida (en este ejemplo:
    00:15:2c:00:00:00):</p>
    <p>  ip -o link | grep 00:15:2c:00:00:00 | awk '{ print
    substr($2,1,length($2)-1) }'<br>
    </p>
    <p>Seguramente haya mejores formas de implementar eso.<br>
    </p>
    <p>Si utilizas un Debian moderno (10+, creo) los nombres de
    interfaces deberían seguir una estructura determinada: "wlpXsY",
    "enpXsY", "enxMAC" ... [2]. Quizás esto te ayude a escoger el
    nombre de la interfaz si sólo tienes una de ese tipo.</p>
    <p>Por otra parte, sobre la automatización de apt para que actualice
    la lista de paquetes a diario, existen servicios de segundo plano
    ya hechos que te pueden interesar. Por ejemplo: "cron-apt" [3],
    que se puede ampliar si quisieses a 'upgrade' también, o
    "unattended-upgrades" [4], para ejecutar 'upgrade' también y es
    bastante configurable.</p>
    <p>Ya nos comentas, un saludo.</p>
    <p><br>
    </p>
    <p>1. Me baso en <a class="moz-txt-link-freetext" href="https://unix.stackexchange.com/a/445975">https://unix.stackexchange.com/a/445975</a></p>
    <p>2. Aquí tienes la lista de tipos de nombre de interfaz:
    <a class="moz-txt-link-freetext" href="https://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20">https://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c#n20</a></p>
    <p>3. <a class="moz-txt-link-freetext" href="https://packages.debian.org/stable/cron-apt">https://packages.debian.org/stable/cron-apt</a><br>
    </p>
    <p>4. <a class="moz-txt-link-freetext" href="https://wiki.debian.org/UnattendedUpgrades">https://wiki.debian.org/UnattendedUpgrades</a><br>
    </p>
    <div class="moz-cite-prefix">El 7/12/22 a las 0:10, Gerardo Braica
    escribió:<br>
    </div>
    <blockquote type="cite"
    cite="mid:5b87d9b7-00f2-5b29-0ab7-fd6c7c80f5a8@gmail.com">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    Buenas a todos. <br>
    Mi duda no es exactamente sobre Debian pero seguramente conocen la
    respuesta.<br>
    Habitualmente uso scripts propios, muy simples , para tareas
    repetitivas. <br>
    Por ejemplo hice uno para todo lo que sea actualizacion del
    sistema para <br>
    que en lugar de escribir sudo apt update todos los dias solamente
    marco el 1.<br>
    Ahora estoy haciendo uno para todo el proceso de macchanger, o sea
    cargar<br>
    una variable con el nombre de la interfase de red, bajarla,
    macchanger -a y <br>
    volver a subirla. <br>
    El tema es que no se como obtener el nombre de la interfase, por
    el momento<br>
    ejecuto ifconfig desde el script y hago que el script me pregunte
    el nombre<br>
    para pegarlo "a mano" y de ahi sigue solo.<br>
    ¿Hay alguna forma de ejecutar ifconfig y capturar la salida pero
    solamente<br>
    el nombre de la interfaz?<br>
    <br>
    Muchas gracias.<br>
     <br>
    <div class="moz-signature">-- <br>
    <font font="" size="2" face="Arial, MS Sans Serif"
    color="#706C6C"> <b><i>Gerardo Braica <br>
    <b><i><a class="moz-txt-link-abbreviated
    moz-txt-link-freetext"
    href="mailto:gbraica@gmail.com.ar"
    moz-do-not-send="true">gbraica@gmail.com.ar</a> <br>
    </i></b></i></b></font></div>
    </blockquote>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?utf-8?B?Q2FtYWxlw7Nu?=@21:1/5 to All on Wed Dec 7 08:40:01 2022
    El 2022-12-06 a las 20:10 -0300, Gerardo Braica escribió:

    Buenas a todos.
    Mi duda no es exactamente sobre Debian pero seguramente conocen la
    respuesta.
    Habitualmente uso scripts propios, muy simples , para tareas repetitivas.
    Por ejemplo hice uno para todo lo que sea actualizacion del sistema para
    que en lugar de escribir sudo apt update todos los dias solamente marco el
    1.
    Ahora estoy haciendo uno para todo el proceso de macchanger, o sea cargar
    una variable con el nombre de la interfase de red, bajarla, macchanger -a y volver a subirla.
    El tema es que no se como obtener el nombre de la interfase, por el momento ejecuto ifconfig desde el script y hago que el script me pregunte el nombre para pegarlo "a mano" y de ahi sigue solo.
    ¿Hay alguna forma de ejecutar ifconfig y capturar la salida pero solamente el nombre de la interfaz?

    Si sabes el nombre canónico de la interfaz, puedes usar la información
    del kernel que está estructurada y es perfecta para usarla en guiones
    de programación porque no hay que darle formato a la salida. Por ejemplo:

    sm01@stt008:~$ ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
    2: enp17s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group
    default qlen 1000
    link/ether 00:1d:0f:be:b6:ad brd ff:ff:ff:ff:ff:ff
    3: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast
    state UP group default qlen 1000
    link/ether 00:30:48:d9:08:27 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.8/24 brd 192.168.0.255 scope global enp0s25
    valid_lft forever preferred_lft forever
    inet6 2a0c:5a80:3103:c900:230:48ff:fed9:827/64 scope global dynamic mngtmpaddr
    valid_lft forever preferred_lft forever
    inet6 fe80::230:48ff:fed9:827/64 scope link
    valid_lft forever preferred_lft forever

    En mi caso la tarjeta de red activa es «enp0s25», ahora ya puedo
    ejecutar la consulta que me devuelve una sola cadena de texto con la
    dirección MAC del adaptador de red:

    sm01@stt008:~$ cat /sys/class/net/enp0s25/address
    00:30:48:d9:08:27

    Bonus: la utilidad «ip» también permite cambiar la dirección MAC.

    Saludos,

    --
    Camaleón

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?utf-8?B?Q2FtYWxlw7Nu?=@21:1/5 to All on Wed Dec 7 09:40:01 2022
    El 2022-12-07 a las 08:33 +0100, Camaleón escribió:

    El 2022-12-06 a las 20:10 -0300, Gerardo Braica escribió:

    Buenas a todos.
    Mi duda no es exactamente sobre Debian pero seguramente conocen la respuesta.
    Habitualmente uso scripts propios, muy simples , para tareas repetitivas. Por ejemplo hice uno para todo lo que sea actualizacion del sistema para que en lugar de escribir sudo apt update todos los dias solamente marco el 1.
    Ahora estoy haciendo uno para todo el proceso de macchanger, o sea cargar una variable con el nombre de la interfase de red, bajarla, macchanger -a y volver a subirla.
    El tema es que no se como obtener el nombre de la interfase, por el momento ejecuto ifconfig desde el script y hago que el script me pregunte el nombre para pegarlo "a mano" y de ahi sigue solo.
    ¿Hay alguna forma de ejecutar ifconfig y capturar la salida pero solamente el nombre de la interfaz?

    Si sabes el nombre canónico de la interfaz, puedes usar la información
    del kernel que está estructurada y es perfecta para usarla en guiones
    de programación porque no hay que darle formato a la salida. Por ejemplo:

    (...)

    Pensé que buscabas saber la dirección MAC de una interfaz concreta (de
    ahí el mensaje anterior) pero si lo que quieres saber es el nombre de la interfaz de red activa y almacenarlo en una variable, puedes usar:

    sm01@stt008:~$ myvar=`ip addr | awk '/state UP/ {print substr($2, 1, length($2)-1)}'`; echo $myvar
    enp0s25

    Saludos,

    --
    Camaleón

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Gerardo Braica@21:1/5 to All on Wed Dec 7 14:00:01 2022
    This is a multi-part message in MIME format.
    Buenos dias Camaleon.

    Exactamente eso preguntaba. No probe todavia la linea que enviaste
    pero suena perfecto, asigna a una variable dentro del script el nombre
    de la interfase.
    Ya otro compañero habia sugerido algo muy parecido.
    Cuestion de probar.

    Muchas gracias.


    El 7/12/22 a las 05:34, Camaleón escribió:
    El 2022-12-07 a las 08:33 +0100, Camaleón escribió:

    El 2022-12-06 a las 20:10 -0300, Gerardo Braica escribió:

    Buenas a todos.
    Mi duda no es exactamente sobre Debian pero seguramente conocen la
    respuesta.
    Habitualmente uso scripts propios, muy simples , para tareas repetitivas. >>> Por ejemplo hice uno para todo lo que sea actualizacion del sistema para >>> que en lugar de escribir sudo apt update todos los dias solamente marco el >>> 1.
    Ahora estoy haciendo uno para todo el proceso de macchanger, o sea cargar >>> una variable con el nombre de la interfase de red, bajarla, macchanger -a y >>> volver a subirla.
    El tema es que no se como obtener el nombre de la interfase, por el momento >>> ejecuto ifconfig desde el script y hago que el script me pregunte el nombre >>> para pegarlo "a mano" y de ahi sigue solo.
    ¿Hay alguna forma de ejecutar ifconfig y capturar la salida pero solamente >>> el nombre de la interfaz?
    Si sabes el nombre canónico de la interfaz, puedes usar la información
    del kernel que está estructurada y es perfecta para usarla en guiones
    de programación porque no hay que darle formato a la salida. Por ejemplo:
    (...)

    Pensé que buscabas saber la dirección MAC de una interfaz concreta (de
    ahí el mensaje anterior) pero si lo que quieres saber es el nombre de la interfaz de red activa y almacenarlo en una variable, puedes usar:

    sm01@stt008:~$ myvar=`ip addr | awk '/state UP/ {print substr($2, 1, length($2)-1)}'`; echo $myvar
    enp0s25

    Saludos,


    --
    */Gerardo Braica
    */gbraica@gmail.com.ar
    /*/*
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
    Buenos dias Camaleon.<br>
    <br>
    Exactamente eso preguntaba. No probe todavia la linea que enviaste<br>
    pero suena perfecto, asigna a una variable dentro del script el
    nombre <br>
    de la interfase.<br>
    Ya otro compañero habia sugerido algo muy parecido. <br>
    Cuestion de probar.<br>
    <br>
    Muchas gracias.<br>
    <br>
    <br>
    <div class="moz-cite-prefix">El 7/12/22 a las 05:34, Camaleón
    escribió:<br>
    </div>
    <blockquote type="cite"
    cite="mid:Y5BQHpzCjur6Amau@stt008.linux.site">
    <pre class="moz-quote-pre" wrap="">El 2022-12-07 a las 08:33 +0100, Camaleón escribió:

    </pre>
    <blockquote type="cite">
    <pre class="moz-quote-pre" wrap="">El 2022-12-06 a las 20:10 -0300, Gerardo Braica escribió:

    </pre>
    <blockquote type="cite">
    <pre class="moz-quote-pre" wrap="">Buenas a todos.
    Mi duda no es exactamente sobre Debian pero seguramente conocen la
    respuesta.
    Habitualmente uso scripts propios, muy simples , para tareas repetitivas.
    Por ejemplo hice uno para todo lo que sea actualizacion del sistema para
    que en lugar de escribir sudo apt update todos los dias solamente marco el
    1.
    Ahora estoy haciendo uno para todo el proceso de macchanger, o sea cargar
    una variable con el nombre de la interfase de red, bajarla, macchanger -a y volver a subirla.
    El tema es que no se como obtener el nombre de la interfase, por el momento ejecuto ifconfig desde el script y hago que el script me pregunte el nombre para pegarlo "a mano" y de ahi sigue solo.
    ¿Hay alguna forma de ejecutar ifconfig y capturar la salida pero solamente
    el nombre de la interfaz?
    </pre>
    </blockquote>
    <pre class="moz-quote-pre" wrap="">
    Si sabes el nombre canónico de la interfaz, puedes usar la información
    del kernel que está estructurada y es perfecta para usarla en guiones
    de programación porque no hay que darle formato a la salida. Por ejemplo: </pre>
    </blockquote>
    <pre class="moz-quote-pre" wrap="">
    (...)

    Pensé que buscabas saber la dirección MAC de una interfaz concreta (de
    ahí el mensaje anterior) pero si lo que quieres saber es el nombre de la interfaz de red activa y almacenarlo en una variable, puedes usar:

    sm01@stt008:~$ myvar=`ip addr | awk '/state UP/ {print substr($2, 1, length($2)-1)}'`; echo $myvar
    enp0s25

    Saludos,

    </pre>
    </blockquote>
    <br>
    <div class="moz-signature">-- <br>
    <font font="" size="2" face="Arial, MS Sans Serif" color="#706C6C">
    <b><i>Gerardo Braica
    <br>
    <b><i><a class="moz-txt-link-abbreviated" href="mailto:gbraica@gmail.com.ar">gbraica@gmail.com.ar</a>
    <br>
    </i></b></i></b></font></div>
    </body>
    </html>

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)