Re: Capturar nombre de interfase
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 */gbra...@gmail.com.ar /*/*
Re: Capturar nombre de interfase
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
Re: Capturar nombre de interfase
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: 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: 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: 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
Re: Capturar nombre de interfase
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 */gbra...@gmail.com.ar /*/*
Capturar nombre de interfase
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 */gbra...@gmail.com.ar /*/*