Página 1 de 2
Aviso de torrent descargado
Publicado: 06 Abr 2022, 18:11
por danpacu
Buenas tardes a tod@s.
Tengo la siguiente pregunta:
Siguiendo el hilo de este forum (
https://forums.raspberrypi.com/viewtopic.php?t=114362) he intentado hacer que transmission me avise cuando acaba alguna descarga.
He creado un script en bash, tal como lo indica el hilo, con el servicio de transmission parado le añadi en settings.json la ruta del script, pero no me avisa cuando finaliza la descarga.
Mi pregunta es: ¿que no hice bien para que funcionase el transmission con el nuevo parametro de aviso? (no entendí bien la manera de hacer el script, siendo este el "culpable"?)
EL cambio de parametro mencionado es:
Código: Seleccionar todo
"script-torrent-done-enabled": true,
"script-torrent-done-filename": "/home/pi/aviso.sh",
y el script es:
Código: Seleccionar todo
#!/bin/bash
echo "$TR_TORRENT_NAME descargado" | sudo mail -s "Transmission - peli descargada" mimail@gmail.com
Si ejecuto el script con sudo ./aviso.sh si me llega el mail.
Gracias de antemano por la ayuda.
Re: Aviso de torrent descargado
Publicado: 06 Abr 2022, 19:43
por egrueda
danpacu escribió: 06 Abr 2022, 18:11
Si ejecuto el script con sudo ./aviso.sh si me llega el mail.
¿Y si lo ejecutas sin sudo?
Aunque la pregunta buena sería ¿bajo qué usuario se ejecuta transmission?
Re: Aviso de torrent descargado
Publicado: 06 Abr 2022, 20:35
por danpacu
egrueda escribió: 06 Abr 2022, 19:43
Aunque la pregunta buena sería ¿bajo qué usuario se ejecuta transmission?
Hola, @egrueda.
Yo pensaba que se ejecutaba bajo el usuario pi.
Pero, aqui veo otra cosa:
Código: Seleccionar todo
/etc/init.d $ cat transmission-daemon
#!/bin/sh -e
-....
....
NAME=transmission-daemon
DAEMON=/usr/bin/$NAME
USER=debian-transmission
STOP_TIMEOUT=30
Ya no se que decir... tengo que cambiar el user en /etc/init.d/transmission-daemon? O en otro sitio?
Aqui, en /etc/systemd/system tengo esto:
Código: Seleccionar todo
/etc/systemd/system $ cat transmission-daemon.service
[Unit]
Description=Transmission BitTorrent Daemon
After=network.target
[Service]
User=pi
Type=notify
ExecStart=/usr/bin/transmission-daemon -f --log-error
Acabo de ejecutar el script sin sudo (edite el aviso.sh y elimine de alli sudo también). Y lo ejecute así: ./aviso.sh. Me manda el mail igual.
Más, no se que decirte, o donde cometí el error.
Re: Aviso de torrent descargado
Publicado: 07 Abr 2022, 08:37
por egrueda
Si transmission está corriendo, puedes mostrar un listado de procesos para ver bajo qué usuario está corriendo:
Con eso confirmaremos si corre bajo el usuario pi (o no)
danpacu escribió: 06 Abr 2022, 20:35
Acabo de ejecutar el script sin sudo (edite el aviso.sh y elimine de alli sudo también). Y lo ejecute así: ./aviso.sh. Me manda el mail igual.
El comando sudo sólo se usa cuando se necesita.
Es decir, cuando queremos hacer algo que afecte a todo el sistema o a otros usuarios.
Para que el usuario pi envíe un correo, no es necesario elevar privilegios.
El comando sudo es peligroso, por eso no debe usarse. Además, el comando sudo genera archivos con propietario root que luego, como usuarios, no podemos modificar ni eliminar.
Por último, el archivo settings.json sólo se puede modificar con transmission-daemon parado.
Si el problema no está en el usuario de transmission, el siguiente lugar donde miraría es en el settings.json
Re: Aviso de torrent descargado
Publicado: 07 Abr 2022, 08:46
por danpacu
egrueda escribió: 07 Abr 2022, 08:37
Si transmission está corriendo, puedes mostrar un listado de procesos para ver bajo qué usuario está corriendo:
Buenos días, egrueda.
EL resultado del ps uax:
Código: Seleccionar todo
ps uax | grep transmission
pi 945144 0.7 0.3 259380 3356 ? Ssl abr04 25:45 /usr/bin/transmission-daemon -f --log-error
pi 1804376 0.0 0.0 6052 668 pts/0 S+ 08:43 0:00 grep --color=auto transmission
Entendí lo de comando sudo (apuntado a mi manual!).
Cuando modifiqué la ruta del script el transmission daemon estaba parado (la modificacion del settings.json con la ruta del script esta en el primer mensaje).
Así que no se que más puedo decir para ayudaros a que me ayudeis, jejeje, (perdon por la redundancia).
Re: Aviso de torrent descargado
Publicado: 07 Abr 2022, 09:15
por egrueda
El siguiente paso es habilitar el log de transmission para ver lo que está haciendo.
Paso 1: crear el archivo de log:
Código: Seleccionar todo
sudo touch /var/log/transmission.log
sudo chown pi /var/log/transmission.log
sudo chmod 644 /var/log/transmission.log
Paso 2: forzar el debug en transmission
Dentro de /etc/systemd/system/transmission-daemon.service cambiamos la línea:
ExecStart=/usr/bin/transmission-daemon -f --log-error
Por:
ExecStart=/usr/bin/transmission-daemon -f --log-debug --logfile /var/log/transmission.log
Paso 3: actualizar systemd:
Paso 4: reinciar transmission:
Paso 5: comprobar si está grabando en el log
Re: Aviso de torrent descargado
Publicado: 07 Abr 2022, 10:05
por danpacu
egrueda escribió: 07 Abr 2022, 09:15
El siguiente paso es habilitar el log de transmission para ver lo que está haciendo.
Ok. Hecho todo lo indicado hasta ahora. Paso a paso - espero poder adjuntar la captura del comando cat (salen errores, pero entiendo que si graba en el archivo de log).
Re: Aviso de torrent descargado
Publicado: 07 Abr 2022, 17:50
por danpacu
Buenas tardes.
Acabo de encontrar más errores:
Siguiendo este hilo, y añadiendo las dos lineas al final del sysctl.conf, al ejecutar el comando sudo journalctl -n 10 -o cat -e -u transmission-daemon me sale esto:
"Started Transmission BitTorrent Daemon.
transmission-daemon.service: Current command vanished from the unit file, execution of the command list won't be resumed.
connect: Connection timed out
connect: Connection timed out
connect: Connection timed out
connect: Connection timed out
2022-04-07 14:37:07 1ncRNr-000Vwt-Fg Failed to create spool file /var/spool/exim4//input//1ncRNr-000Vwt-Fg-D: Permission denied
2022-04-07 14:37:07 1ncRNr-000Vwt-Fg Cannot open main log file "/var/log/exim4/mainlog": Permission denied: euid=1000 egid=1000
mail: no se puede enviar el mensaje: El proceso terminó con un estado diferente a cero
exim: could not open panic log - aborting: see message(s) abov"
SI dice "Permission denied" quiere decir que el usuario pi no puede enviar correo con exim4? Ya realmente no se como interpretar este mensaje de error.
Re: Aviso de torrent descargado
Publicado: 07 Abr 2022, 17:53
por egrueda
¿Y qué hay en /var/log/transmission.log?
¿Has terminado de descargar un torrent?
¿Coincide esa hora?
Re: Aviso de torrent descargado
Publicado: 07 Abr 2022, 19:08
por danpacu
egrueda escribió: 07 Abr 2022, 17:53
¿Y qué hay en /var/log/transmission.log?
¿Has terminado de descargar un torrent?
¿Coincide esa hora?
Buenas. Descargué un torrent sobre las 12:30 aproximadamente (estaba en el trabajo). EN el log lo único que me sale, que coincida es esto:
[2022-04-07 12:45:01.127] UDP Failed to set receive buffer: requested 4194304, got 425984 (tr-udp.c:97)
[2022-04-07 12:45:01.128] UDP Failed to set send buffer: requested 1048576, got 425984 (tr-udp.c:105)
Y acabo de poner ahora mismo, a las 19.06 un torrent liviano, de 108 M, que ya se descargo pero en el log creado no sale nada distinto a lo de arriba mencionado.
Re: Aviso de torrent descargado
Publicado: 08 Abr 2022, 08:12
por egrueda
Ok, parece que el debug no está funcionando como esperaba.
Vamos a cambiar de nuevo el ExecStart del script de arranque, déjalo así
Después actualiza systemd y reinicia transmission
Código: Seleccionar todo
sudo systemctl daemon-reload
sudo systemctl restart transmission-daemon
Y ahora vamos a ver si tenemos debug en tiempo real.
Con el parámetro -f hacemos follow para ver el log según se genera.
Mientras se está ejecutando ese comando, pon algo a descargar y deberías ver un montón de líneas de debug.
Dime si te sale el debug
Re: Aviso de torrent descargado
Publicado: 08 Abr 2022, 08:49
por danpacu
egrueda escribió: 08 Abr 2022, 08:12
Mientras se está ejecutando ese comando, pon algo a descargar y deberías ver un montón de líneas de debug.
Dime si te sale el debug
Buenos días, egrueda.
Ahora si he visto el montón de lineas en el debug. Al final de la descarga salió esto:
Código: Seleccionar todo
abr 08 08:44:49 raspi4 exim[341603]: 2022-04-08 08:44:49 1nciMT-001Qrj-6O Failed to create spool file /var/spool/exim4//input//1nciMT-001Qrj-6O-D: Permission denied
abr 08 08:44:49 raspi4 exim[341603]: 2022-04-08 08:44:49 1nciMT-001Qrj-6O Cannot open main log file "/var/log/exim4/mainlog": Permission denied: euid=1000 egid=1000
abr 08 08:44:49 raspi4 exim[341603]: exim: could not open panic log - aborting: see message(s) above
abr 08 08:44:49 raspi4 transmission-daemon[341590]: mail: no se puede enviar el mensaje: El proceso terminó con un estado diferente a cero
EL contenido del script sigue siendo:
Código: Seleccionar todo
#!/bin/bash
echo "$TR_TORRENT_NAME descargado" | mail -s "Transmission - peli descargada" mi_mail@gmail.com
Y ayer probé el sript tal cual, con el sudo incluído en el comando, sin el sudo, con el sudo antes de ./, sin el sudo antes de ./ (no por desconsiderar lo que me enseñaste ayer, sino por pura curiosidad sobre la funcionalidad del script). y sigue funcionando.
Del error deduzco que transmission si quiere enviar el correo, pero es el programa de envio del correo el que no deja enviar el correo.
Tengo lo siguiente:
Código: Seleccionar todo
pi@raspi4:~ $ ps uax | grep exim4
Debian-+ 1395 0.0 0.0 18920 100 ? Ss abr07 0:00 /usr/sbin/exim4 -bd -q30m
pi 342615 1.0 0.2 6052 1924 pts/1 S+ 08:49 0:00 grep --color=auto exim4
La primera linea es edificante o no? La de Debian....
Ahora mismo recibo el mensaje con el journalctl: (repetido varais veces):
"abr 08 09:14:23 raspi4 transmission-daemon[341028]: [2022-04-08 09:14:23.942] UDP Couldn't parse UDP tracker packet. (tr-udp.c:278"
Re: Aviso de torrent descargado
Publicado: 08 Abr 2022, 09:42
por egrueda
Yo quiero ver, en el log, la línea que avisa de que está ejecutando el script.
Es el paso previo al error del correo, quiero ver que se ejecuta.
Al finalizar un torrent, deberías ver en ese log algo como "Calling script" seguido de la ruta del script.
¿Ves eso en el log? Justo debajo de la línea que indica "Completed"
Re: Aviso de torrent descargado
Publicado: 08 Abr 2022, 10:04
por danpacu
egrueda escribió: 08 Abr 2022, 09:42
Yo quiero ver, en el log, la línea que avisa de que está ejecutando el script.
Es el paso previo al error del correo, quiero ver que se ejecuta.
Al finalizar un torrent, deberías ver en ese log algo como "Calling script" seguido de la ruta del script.
¿Ves eso en el log? Justo debajo de la línea que indica "Completed"
Hola.
Pues me temo que no tengo la suerte de mostrarte lo que quieres ver.
Este es el resultado con un nuevo torrent puesto a descargar despues de leer tu respuesta (el final del log "en directo"):
Código: Seleccionar todo
2022-04-08 09:50:46 1ncjOH-001V2l-W3 Failed to create spool file /var/spool/exim4//input//1ncjOH-001V2l-W3-D: Permission denied
abr 08 09:50:46 raspi4 exim[357663]: 2022-04-08 09:50:46 1ncjOH-001V2l-W3 Cannot open main log file "/var/log/exim4/mainlog": Permission denied: euid=1000 egid=1000
abr 08 09:50:46 raspi4 exim[357663]: exim: could not open panic log - aborting: see message(s) above
abr 08 09:50:46 raspi4 transmission-daemon[357604]: mail: no se puede enviar el mensaje: El proceso terminó con un estado diferente a cero
abr 08 09:51:43 raspi4 transmission-daemon[341028]: [2022-04-08 09:51:43.971] Women Of 80s Pop (2020) Connection failed (announcer.c:1085)
abr 08 09:51:43 raspi4 transmission-daemon[341028]: [2022-04-08 09:51:43.986] Women Of 80s Pop (2020) Retrying announce in 3645 seconds. (announcer.c:1094)
abr 08 09:51:43 raspi4 transmission-daemon[341028]: [2022-04-08 09:51:43.986] Women Of 80s Pop (2020) Connection failed (announcer.c:1085)
abr 08 09:51:43 raspi4 transmission-daemon[341028]: [2022-04-08 09:51:43.986] Women Of 80s Pop (2020) Retrying announce in 3609 seconds. (announcer.c:1094)
abr 08 09:51:43 raspi4 transmission-daemon[341028]: [2022-04-08 09:51:43.986] Women Of 80s Pop (2020) Could not connect to tracker (announcer.c:1085)
abr 08 09:51:43 raspi4 transmission-daemon[341028]: [2022-04-08 09:51:43.986] Women Of 80s Pop (2020) Retrying announce in 3620 seconds. (announcer.c:1094)
abr 08 09:51:47 raspi4 transmission-daemon[341028]: [2022-04-08 09:51:47.940] Women Of 80s Pop (2020) Connection failed (announcer.c:1085)
abr 08 09:51:47 raspi4 transmission-daemon[341028]: [2022-04-08 09:51:47.940] Women Of 80s Pop (2020) Retrying announce in 1850 seconds. (announcer.c:1094)
abr 08 09:51:47 raspi4 transmission-daemon[341028]: [2022-04-08 09:51:47.940] Women Of 80s Pop (2020) Connection failed (announcer.c:1085)
abr 08 09:51:47 raspi4 transmission-daemon[341028]: [2022-04-08 09:51:47.940] Women Of 80s Pop (2020) Retrying announce in 1819 seconds. (announcer.c:1094)
abr 08 09:52:13 raspi4 transmission-daemon[341028]: [2022-04-08 09:52:13.939] Women Of 80s Pop (2020) Could not connect to tracker (announcer.c:1085)
abr 08 09:52:13 raspi4 transmission-daemon[341028]: [2022-04-08 09:52:13.939] Women Of 80s Pop (2020) Retrying announce in 1853 seconds. (announcer.c:1094)
abr 08 09:54:20 raspi4 transmission-daemon[341028]: [2022-04-08 09:54:20.942] Saved "/home/pi/.config/transmission-daemon/stats.json" (variant.c:1221)
abr 08 10:03:54 raspi4 transmission-daemon[341028]: [2022-04-08 10:03:54.943] Women Of 80s Pop (2020) Scrape error: Connection failed (announcer.c:1392)
abr 08 10:03:54 raspi4 transmission-daemon[341028]: [2022-04-08 10:03:54.943] Women Of 80s Pop (2020) Retrying scrape in 7225 seconds. (announcer.c:1401)
"
Re: Aviso de torrent descargado
Publicado: 08 Abr 2022, 10:19
por egrueda
En ese log veo cómo transmission intenta descargar el torrent "Women Of 80s Pop (2020)" pero no veo el momento en el que termina de descargarlo.
Es más, parece que no encuentra peers para descargar y que no lo descarga.
Haz otra cosa, prueba con un torrent "conocido":
https://releases.ubuntu.com/21.10/ubunt ... so.torrent
(puedes copiar la URL y pegarla en transmission)
Cuando empieces a descargar, verás muchas líneas con el texto "checking just-completed piece 12345"
Y al final verás la línea "Complete" y deberías ver a continuación la línea "Calling script"
Re: Aviso de torrent descargado
Publicado: 08 Abr 2022, 11:05
por danpacu
egrueda escribió: 08 Abr 2022, 10:19
Y al final verás la línea "Complete" y deberías ver a continuación la línea "Calling script"
Por fin!!!!!! apareció.
El resultado:
Código: Seleccionar todo
abr 08 10:58:58 raspi4 transmission-daemon[341028]: [2022-04-08 10:58:58.943] Saved "/home/pi/.config/transmission-daemon/resume/f1fcdc1462d36530f526c1d9402eec9100b7ba18.resume" (variant.c:1221)
abr 08 10:58:58 raspi4 transmission-daemon[341028]: [2022-04-08 10:58:58.943] ubuntu-21.10-desktop-amd64.iso Calling script "/home/pi/aviso.sh" (torrent.c:2270)
abr 08 10:58:58 raspi4 transmission-daemon[341028]: [2022-04-08 10:58:58.943] ubuntu-21.10-desktop-amd64.iso Announcing to tracker (announcer.c:1723)
abr 08 10:58:58 raspi4 transmission-daemon[341028]: [2022-04-08 10:58:58.943] ubuntu-21.10-desktop-amd64.iso Announcing to tracker (announcer.c:1723)
abr 08 10:59:00 raspi4 exim[373881]: 2022-04-08 10:59:00 1nckSK-001ZGL-Rv Failed to create spool file /var/spool/exim4//input//1nckSK-001ZGL-Rv-D: Permission denied
abr 08 10:59:00 raspi4 exim[373881]: 2022-04-08 10:59:00 1nckSK-001ZGL-Rv Cannot open main log file "/var/log/exim4/mainlog": Permission denied: euid=1000 egid=1000
abr 08 10:59:00 raspi4 exim[373881]: exim: could not open panic log - aborting: see message(s) above
abr 08 10:59:01 raspi4 transmission-daemon[373879]: mail: no se puede enviar el mensaje: El proceso terminó con un estado diferente a cero
abr 08 10:59:02 raspi4 transmission-daemon[341028]: [2022-04-08 10:59:02.943] ubuntu-21.10-desktop-amd64.iso Tracker gave HTTP response code 503 (Service Unavailable) (announcer.c:1085)
Re: Aviso de torrent descargado
Publicado: 08 Abr 2022, 11:10
por egrueda
Bien, ya tenemos la prueba de que está ejecutando el script:
Ahora podemos avanzar al error de Exim.
Exim4 para Debian se ejecuta bajo el usuario "Debian-exim"
Eso es correcto, debe ser así. Y por tanto ese usuario debe tener permisos para acceder al spool y al log:
Código: Seleccionar todo
pi@rpi3:~ $ sudo ls -la /var/spool/exim4/
total 20
drwxr-x--- 5 Debian-exim Debian-exim 4096 Apr 8 09:37 .
drwxr-xr-x 6 root root 4096 Apr 8 09:37 ..
drwxr-x--- 2 Debian-exim Debian-exim 4096 Apr 8 10:05 db
drwxr-x--- 2 Debian-exim Debian-exim 4096 Apr 8 11:05 input
drwxr-x--- 2 Debian-exim Debian-exim 4096 Apr 8 11:05 msglog
Código: Seleccionar todo
pi@rpi3:~ $ sudo ls -la /var/log/exim4/
total 12
drwxr-s--- 2 Debian-exim adm 4096 Apr 8 10:05 .
drwxr-xr-x 15 root root 4096 Apr 8 09:37 ..
-rw-r----- 1 Debian-exim adm 1049 Apr 8 11:07 mainlog
-rw-r----- 1 Debian-exim adm 0 Apr 8 10:05 rejectlog
¿Tienes los mismos permisos/propietarios?
Re: Aviso de torrent descargado
Publicado: 08 Abr 2022, 11:16
por danpacu
egrueda escribió: 08 Abr 2022, 11:10
Ahora podemos avanzar al error de Exim.
¿Tienes los mismos permisos/propietarios?
Espero que si... jejej. Tengo lo siguiente:
Código: Seleccionar todo
sudo ls -la /var/log/exim4
total 64
drwxr-s--- 2 Debian-exim adm 4096 abr 8 00:15 .
drwxr-xr-x 17 root root 4096 abr 8 00:00 ..
-rw-r----- 1 Debian-exim adm 4944 abr 8 10:59 mainlog
-rw-r----- 1 Debian-exim adm 8003 abr 7 23:59 mainlog.1
-rw-r----- 1 Debian-exim adm 1014 mar 29 23:50 mainlog.10.gz
-rw-r----- 1 Debian-exim adm 1288 abr 6 23:31 mainlog.2.gz
-rw-r----- 1 Debian-exim adm 928 abr 5 23:30 mainlog.3.gz
-rw-r----- 1 Debian-exim adm 1618 abr 4 23:30 mainlog.4.gz
-rw-r----- 1 Debian-exim adm 908 abr 3 23:30 mainlog.5.gz
-rw-r----- 1 Debian-exim adm 913 abr 2 23:30 mainlog.6.gz
-rw-r----- 1 Debian-exim adm 1322 abr 1 23:30 mainlog.7.gz
-rw-r----- 1 Debian-exim adm 1017 mar 31 23:50 mainlog.8.gz
-rw-r----- 1 Debian-exim adm 1277 mar 30 23:50 mainlog.9.gz
-rw-r----- 1 Debian-exim adm 819 mar 4 14:31 rejectlog.1
Y esto:
Código: Seleccionar todo
sudo ls -la /var/spool/exim4
total 20
drwxr-x--- 5 Debian-exim Debian-exim 4096 feb 19 23:11 .
drwxr-xr-x 7 root root 4096 feb 19 23:11 ..
drwxr-x--- 2 Debian-exim Debian-exim 4096 feb 19 23:17 db
drwxr-x--- 2 Debian-exim Debian-exim 4096 abr 8 06:25 input
drwxr-x--- 2 Debian-exim Debian-exim 4096 abr 8 06:25 msglog
Re: Aviso de torrent descargado
Publicado: 08 Abr 2022, 12:59
por egrueda
Ok, me llama la atención estos ids "efectivos"
Permission denied: euid=1000 egid=1000
En el /etc/passwd ¿a quién corresponde ese id?
Re: Aviso de torrent descargado
Publicado: 08 Abr 2022, 13:10
por danpacu
Hola.
No se si los saqué bien:
Código: Seleccionar todo
cat /etc/passwd | grep 1000
pi:x:1000:1000:,,,:/home/pi:/bin/bash[code]