Re: Capturar nombre de interfase

2022-12-07 Por tema Gerardo Braica

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

2022-12-07 Por tema Camaleón
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

2022-12-06 Por tema Camaleón
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

2022-12-06 Por tema Miguel Ángel Sánchez

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

2022-12-06 Por tema Gerardo Braica

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
/*/*