Problemes avec les redirections et pipe

Ici vous trouverez comment modifier les fichiers de configuration, mais aussi, pourquoi pas des applis comme apache, vsftp, samba et autres...

Modérateur : Francois

Répondre
Lange
Messages : 3
Enregistré le : dim. 20 déc. 2020 16:34

Problemes avec les redirections et pipe

Message par Lange » dim. 20 déc. 2020 17:08

Bonjour,
J'ai un problème avec un logiciel sur Raspberry4 et 3B+, et avec le logiciel rtl_433 qui comme son nom l'indique permet de décoder les transmissions en 433 Mhz. Logiciel qui fonctionne correctement, mais je n'arrive pas à récupérer les résultats
qui s'affichent dans un terminal, quoique je fasse avec une redirection du type
./rtl_433 -A >> fichier.txt ou ./rtl_433 -A | 1>fichier.txt, le fichier est bien crée mais toujours vide.
La seule solution est de faire du copier/coller sur le terminal.

https://github.com/merbanan/rtl_433.git

Merci pour la ou les réponses.

Salutations

Artemus24
Raspinaute
Messages : 1089
Enregistré le : ven. 15 sept. 2017 19:15

Re: Problemes avec les redirections et pipe

Message par Artemus24 » lun. 21 déc. 2020 18:01

Salut lange.

Quelque chose dans ce genre là :

Code : Tout sélectionner

commande >> fichier.txt  2>&1
@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

Lange
Messages : 3
Enregistré le : dim. 20 déc. 2020 16:34

Re: Problemes avec les redirections et pipe

Message par Lange » jeu. 24 déc. 2020 16:00

Bonjour,
Toutes mes excuses pour ce retard.
Suite à quelques coupures intempestives du réseau électrique, j'ai perdu quelques matériels
et je n'ai pas pu tout faire redémarrer correctement.
Merci pour votre réponse et après essais concluants votre syntaxe est parfaite.
Mais tout cela me rappelle ma jeunesse, ayant plus de 72 ans, j'ai repris mes cours Unix
des années 90, en particulier le livre UNIX Utilisation Administration système et réseau
de Christian Pélissier et ou j'ai trouvé également votre syntaxe, mais avec l'age je
n'ai pas trop compris l'utilisation du caractère & dans les redirections.
Je mets à tout hasard une partie scannée de la page qui concerne les redirections,
cela peut servir à d'autres personnes.
Je vais mettre ce livre à coté du raspberry, on ne sait jamais.

Merci pour votre réponse et bonnes fêtes de fin d'année.

Issu du livre UNIX Utilisation Administration système er réseau de Christian Pélissier
Le shell et le Korn shell

5.7 Compléments sur les redirections
Les redirections (le terme réaffectation ou réassignation conviendrait mieux)
ont été abordées dans le chapitre décrivant le système de fichiers.
La syntaxe des redirections est :
cde < file ou cde 0< file
cde > file ou cde 1> file
cde 2> file

II est possible de rediriger un descripteur sur un autre (en fait sur le fichier
associé à cet autre descripteur) au moyen de la syntaxe suivante :
n>&m # n et m sont des descripteurs de fichiers.

Par exemple il est possible d'afficher un message d'erreur sur stderr avec la commande écho.
$ écho "message" 1>&2

L'ordre des redirections est très important. Examinons les deux commandes suivantes :
$ ls 2> file 1>&2 (1) ou ls 1>file 2>&1
$ ls 1>&2 2> file (2)

Dans la commande (1) on réaffecte le descripteur 2 au fichier file, puis on
réaffecte le descripteur 1 sur 2 qui est maintenant assigné à file. On a donc
assigné 1 à file. La sortie standard de ls et les messages d'erreur seront donc
rangés dans le fichier file.

Dans la commande (2) on réaffecte 1 sur 2 qui est déjà assigné au terminal.
on a donc réaffecté 1 au terminal (elle l'était déjà), puis on réaffecte 2 au fichier file.
La sortie standard de la commande ls sera donc affichée sur le terminal,
les erreurs seront rangées dans le fichier file.

La syntaxe de redirection de descripteur s'applique aussi à l'entrée standard
de sorte qu'on peut rediriger l'entrée standard sur n'importe quel descripteur.
Ainsi la forme suivante lira depuis le descripteur de fichier numéro n.
exec n<filename
read var 0<&n

Il est possible de fermer un descripteur en utilisant les syntaxes suivantes :
>&-, <&-, 2>&-, etc. Ainsi la forme 3<&- fermera le descripteur 3.

5.7.1 La capture de la sortie standard
Le shell permet, la capture de la sortie standard pour la ranger dans une
variable ou pour donner le résultat d'une commande en argument d'une autre commande.
La sortie standard est capturée lorsqu'une commande est placée entre ` `

$ a=10
$ a='expr $a + 6' # incrémentation de la variable a.
$ echo $a
16
$ name='basename alpha.c .c'
$ echo $name
alpha

$ list=`ls *.mp`
echo $list
advcmd.mp bascmd.mp bashell.mp compil.mp cron.mp cshell.mp disk.mp ether.mp
files.mp hist.mp login.mp magtp.mp mail.mp miscmd.mp nroff.mp print.mp
shell.mp tape.mp tc.mp

domos
Messages : 75
Enregistré le : lun. 9 mars 2015 19:17

Re: Problemes avec les redirections et pipe

Message par domos » mar. 12 janv. 2021 18:10

Bonjour,

Tu peux utiliser d'autres methodes pour intégrer les données de rtl433:

Avec un serveur MQTT:

Code : Tout sélectionner

$ rtl_433 -F mqtt://mqtthost:1883

rtl_433 version 19.08-233-ga552abc branch master at 202002141216 inputs file rtl_tcp RTL-SDR
Use -h for usage help and see https://triq.org/ for documentation.
Trying conf file at "rtl_433.conf"...
Trying conf file at "/home/dan/.config/rtl_433/rtl_433.conf"...
Trying conf file at "/usr/local/etc/rtl_433/rtl_433.conf"...
Trying conf file at "/etc/rtl_433/rtl_433.conf"...
Publishing MQTT data to vesta port 1883
Publishing device info to MQTT topic "rtl_433/hestia/devices[/type][/model][/subtype][/channel][/id]".
Publishing events info to MQTT topic "rtl_433/hestia/events".
Publishing states info to MQTT topic "rtl_433/hestia/states".
Registered 122 out of 149 device decoding protocols [ 1-4 8 11-12 15-17 19-21 23 25-26 29-36 38-60 63 67-71 73-100 102-105 108-116 119 121 124-128 130-149 ]
Detached kernel driver
Found Rafael Micro R820T tuner
Exact sample rate is: 250000.000414 Hz
[R82XX] PLL not locked!
Sample rate set to 250000 S/s.
Tuner gain set to Auto.
Tuned to 433.920MHz.
Allocating 15 zero-copy buffers
MQTT Connected...
MQTT Connection established.

Messages MQTT:

```
2020-02-15 18:22:38,411 0  rtl_433/hestia/devices/Oregon-THGR122N/3/72/time  2020-02-15 18:22:37
2020-02-15 18:22:38,412 0  rtl_433/hestia/devices/Oregon-THGR122N/3/72/id  72
2020-02-15 18:22:38,412 0  rtl_433/hestia/devices/Oregon-THGR122N/3/72/channel  3
2020-02-15 18:22:38,413 0  rtl_433/hestia/devices/Oregon-THGR122N/3/72/battery_ok  0
2020-02-15 18:22:38,413 0  rtl_433/hestia/devices/Oregon-THGR122N/3/72/temperature_C  20.2
2020-02-15 18:22:38,414 0  rtl_433/hestia/devices/Oregon-THGR122N/3/72/humidity  46
2020-02-15 18:22:38,414 0  rtl_433/hestia/events  {"time":"2020-02-15 18:22:37","brand":"OS","model":"Oregon-THGR122N","id":72,"channel":3,"battery_ok":0,"temperature_C":20.2,"humidity":46}
2020-02-15 18:22:38,415 0  rtl_433/hestia/devices/Oregon-THGR122N/3/72/time  2020-02-15 18:22:37
2020-02-15 18:22:38,415 0  rtl_433/hestia/devices/Oregon-THGR122N/3/72/id  72
2020-02-15 18:22:38,415 0  rtl_433/hestia/devices/Oregon-THGR122N/3/72/channel  3
2020-02-15 18:22:38,416 0  rtl_433/hestia/devices/Oregon-THGR122N/3/72/battery_ok  0
2020-02-15 18:22:38,416 0  rtl_433/hestia/devices/Oregon-THGR122N/3/72/temperature_C  20.2
2020-02-15 18:22:38,417 0  rtl_433/hestia/devices/Oregon-THGR122N/3/72/humidity  46
```
Sortie en JSON renvoyée dans un fichier:

Code : Tout sélectionner

rtl_433 -F json:/tmp/rtl_433-json.log

{"time" : "2020-02-21 23:04:22", "model" : "Waveman-Switch", "id" : "M", "channel" : 1, "button" : 2, "state" : "off"}
{"time" : "2020-02-21 23:04:22", "model" : "Akhan-100F14", "id" : 21505, "data" : "0x4 (Mute)"}
{"time" : "2020-02-21 23:04:22", "model" : "Waveman-Switch", "id" : "M", "channel" : 1, "button" : 2, "state" : "off"}
{"time" : "2020-02-21 23:04:22", "model" : "Akhan-100F14", "id" : 21505, "data" : "0x4 (Mute)"}
{"time" : "2020-02-21 23:04:23", "model" : "Waveman-Switch", "id" : "M", "channel" : 1, "button" : 2, "state" : "off"}
{"time" : "2020-02-21 23:04:23", "model" : "Akhan-100F14", "id" : 21505, "data" : "0x4 (Mute)"}
{"time" : "2020-02-21 23:04:23", "model" : "Waveman-Switch", "id" : "M", "channel" : 1, "button" : 2, "state" : "off"}
...
Je suis parti de la version Github pour avoir les dernières évolutions:

Code : Tout sélectionner

```bash
$ git clone https://github.com/merbanan/rtl_433.git
$ cd rtl_433/
$ mkdir build
$ cd build/
$ cmake ../
$ make
$ sudo make install
```

Lange
Messages : 3
Enregistré le : dim. 20 déc. 2020 16:34

Re: Problemes avec les redirections et pipe

Message par Lange » ven. 15 janv. 2021 21:13

Bonsoir,

Merci pour cette réponse, c'est toujours bon à savoir pour cette nouvelle utilisation.

Salutations.

Répondre

Retourner vers « Les commandes Linux »