Bonjour,

J'ai rédigé un script bash qui me permet de récupérer les données affichées a l'écran d'un programme éxécuté sur une machine distante et automatisé grace a "expect"

J'utilise le résultat des commandes passées par le expect et affichées a l'écran pour les mettre dnas un fichier et effectuer un traitement par la suite.

Le programme se déroule comme cela :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
script shell
  expect
    ssh vers machine distante
    expect ...
    expect ...
    log_file mon_fichier (permet d'écrire ce qui s'affiche dans le fichier mon_fichier)
    expect ...
    log_file (on clos le fichier mon_fichier)
    exit
  exit
récupération et traitement de mon_fichier
Tous se déroule bien lorsuqe j'execute moi mème mon script.

le problème est que lorsque je souhaite l'executer via crontab je ne récupère aucune donnée. mon_fichier est vide car crontab n'attribu pas d'écran (ni tty ni pts) et la sortie est donc perdue.

J'ai essayé de forcer l'allocation d'un tty via ssh avec l'option -t et -tt mais sans résultat.
également, les redirections de sortie standard ne donnent rien, a aucun niveau. Que ce soit dans l'expect, dans le script, en sortie de ssh ou directement dans le crontab.

Je suis a court de ressource mais je suis certain qu'il doit y avoir un moyen de récupérer ce données soit en forcant la création d'un tty par le crontab soit en effectuant une redirection de la sortie standard plus fine, ce que je ne parviens pas a faire.

Merci pour l'aide que vous pourez m'apporter.