IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

Impression soffice xls avec crontab


Sujet :

Administration système

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 0
    Points
    0
    Par défaut Impression soffice xls avec crontab
    Bonjour,
    Malgre le parcours d'un certain nombre de forum je n'arrive pas a faire fonctionner mon script ci dessous qui fonctionne en ligne de commande :
    En fait, j'essaie d'imprimer un fichier xls depuis crontab
    Cela marche donc avec :
    PrintXls2ps.sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/sh
    /usr/lib/openoffice/program/soffice -p PSPRINTER /home/ftp/export/Excel/simple.xls
    Si je fais crontab -e (comme root)
    SHELL=/bin/sh
    PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin
    30 * * * * /usr/bin/PrintXls2ps.sh >>/home/frp/export/Excel/FileLog.txt 2>&1
    J'ai l'erreur
    /usr/lib/openoffice.org/program/soffice.bin X11 error: Can't open display:
    Set DISPLAY environment variable, use -display option
    or check permissions of your X-Server
    (See "man X" resp. "man xhost" for details)
    J'ai essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    1- 30 * * * * /bin/sh /usr/bin/PrintXls2ps.sh >>/home/frp/export/Excel/FileLog.txt 2>&1
    2- /usr/lib/openoffice/program/soffice -headless -p PSPRINTER /home/ftp/export/Excel/simple.xls
    3- using source /home/"username"/.bash_profile dans le sh script
    4- export DISPLAY:=0:0 dans le sh script
    5- 30 * * * * root /bin/sh /usr/bin/PrintXls2ps.sh >>/home/frp/export/Excel/FileLog.txt 2>&1
    6- 30 * * * * export DISPLAY=:0 /bin/sh /usr/bin/PrintXls2ps.sh >>/home/frp/export/Excel/FileLog.txt 2>&1
    Et rien ne marche
    Quelqu'un a une piste ?
    J'utilise etch with ooo 2.0.3
    Merci par avance

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 0
    Points
    0
    Par défaut Aucune idee
    Personne n'utilise de script dans crontab ?

    Merci d'avance

  3. #3
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    si tu lisais les man pages tu verrais que le & est interdit ... déjà .... à remplacer donc par \&

    de plus tu lances des commandes X sans X ....
    tu lances des commandes sans planification crontab....
    bref tu fais n'importe quoi là...

    mets tout ça dans un script et c'est lui que le crontab lance ça résoudra tes problèmes de logique.
    et en plus tu te permets de raler parce que tu as pas de réponses en moins de 24 faut arreter la moquette

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 0
    Points
    0
    Par défaut
    je ne suis pas un expert comme tu l'as gentiment noté. Sauf que la mise en forme du message laisse croire a un script entier : ce n'est qu'une ligne parmi le script plus haut donné en exemple.
    ou vois tu un & ?
    la ligne suivante fonctionne dans le crontab puisque j'ai bien un fichier de généré (avec le message d'erreur)
    30 * * * * export DISPLAY=:0 /bin/sh /usr/bin/PrintXls2ps.sh >>/home/frp/export/Excel/FileLog.txt 2>&1

    Ensuite il faut bien comprendre le code balisé :
    test 1 (ci dessous une ligne dans le crontab donné plus haut)
    30 * * * * /bin/sh /usr/bin/PrintXls2ps.sh >>/home/frp/export/Excel/FileLog.txt 2>&1
    test 2 (ci dessous une ligne dans le crontab donné plus haut)
    30 * * * * /usr/lib/openoffice/program/soffice -headless -p PSPRINTER /home/ftp/export/Excel/simple.xls
    test 3 dans le sh script PrintXls2ps
    using source /home/"username"/.bash_profile
    test 4 dans le sh script PrintXls2ps
    export DISPLAY:=0:0
    test 5 (ci dessous une ligne dans le crontab donné plus haut)
    30 * * * * root /bin/sh /usr/bin/PrintXls2ps.sh >>/home/frp/export/Excel/FileLog.txt 2>&1
    test 6 (ci dessous une ligne dans le crontab donné plus haut)
    30 * * * * export DISPLAY=:0 /bin/sh /usr/bin/PrintXls2ps.sh >>/home/frp/export/Excel/FileLog.txt 2>&1

    Je pense que ca doit etre plus clair maintenant

  5. #5
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    Citation Envoyé par chrisw135 Voir le message
    Bonjour,
    Malgre le parcours d'un certain nombre de forum je n'arrive pas a faire fonctionner mon script ci dessous qui fonctionne en ligne de commande :
    En fait, j'essaie d'imprimer un fichier xls depuis crontab
    Cela marche donc avec :
    PrintXls2ps.sh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/sh
    /usr/lib/openoffice/program/soffice -p PSPRINTER /home/ftp/export/Excel/simple.xls
    Si je fais crontab -e (comme root)
    SHELL=/bin/sh
    PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin
    30 * * * * /usr/bin/PrintXls2ps.sh >>/home/frp/export/Excel/FileLog.txt 2>&1
    pourquoi une ligne de cron dans le script ? je suppose que 'est une bourde de forumage (formattage du message).

    J'ai essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    1- 30 * * * * /bin/sh /usr/bin/PrintXls2ps.sh >>/home/frp/export/Excel/FileLog.txt 2>&1
    2- /usr/lib/openoffice/program/soffice -headless -p PSPRINTER /home/ftp/export/Excel/simple.xls
    3- using source /home/"username"/.bash_profile dans le sh script
    4- export DISPLAY:=0:0 dans le sh script
    5- 30 * * * * root /bin/sh /usr/bin/PrintXls2ps.sh >>/home/frp/export/Excel/FileLog.txt 2>&1
    6- 30 * * * * export DISPLAY=:0 /bin/sh /usr/bin/PrintXls2ps.sh >>/home/frp/export/Excel/FileLog.txt 2>&1
    Et rien ne marche
    Quelqu'un a une piste ?
    J'utilise etch with ooo 2.0.3
    Merci par avance
    là aussi c'était pas clair que tu avais fait divers essais mais bon c'est pas grave on avait quand meme deviné.

    tes "&" doivent avoir des "\&" dans le crontab

    tes export DISPLAY doivent être fait dans le script pas dans le cron qui n'a pas d'environnement bash complêt.

    et ton script doit s'assurer AVANT l'export display que X tourne et que le cas echéant il acceptes (en termes de droits) les DISPLAY importés.
    comment faire ça ?
    la commande à utiliser est xhost

    pour le test lui même une simple ps associé à grep suffira bien sur.


    un test genre ps -ef | grep "X" tu recupères le resultat et si ok tu t'assures que le display correspond bien X :0 & alors DISPLAY=....:0 par exemple
    idem pour 0.0 ou 1.0 etc....
    xhost +hostname ou xhost + pour les droits definitif ou à l'occurence.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #!/bin/sh
    fichier=/home/ftp/export/Excel/simple.xls
    #serait mieux avec $1 comme parametre que le truc en dur 
    PATH=/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin
    #sans test de X si c'est un script perso je suppose que X demarre demarre au bout ?
    EXPORT DISPLAY=localhost:0
    xhost +
    if [ $? -eq 0 ] ; then
     if [ -f ${fichier} ] ; then  /usr/lib/openoffice/program/soffice -p PSPRINTER ${fichier}
       # la ça imprime
       codesortie=$?
     else echo ${fichier} pose probleme > /tmp/$0.$(date +%Y%m%d).log
     #.... autres traitements ou mail auto de l'erreur par exemple
     codesortie=98
     fi
     else
     echo connection à X pose probleme > /tmp/$0.$(date +%Y%m%d).log
     #.... autres traitements ou mail auto de l'erreur par exemple
     codesortie=99
    fi
    exit $codesortie

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 4
    Points : 0
    Points
    0
    Par défaut
    Merci de ton retour detaillé
    J'ai par contre encore une erreur sur le export DISPLAY.
    Le format doit etre host:display.screen, du coup j'ai essayé
    localhost:0 => erreur "unable to open display "localhost:0"
    localhost:0.0 => erreur "unable to open display "localhost:0.0"

    Le resultat du ps -ef | grep "X" :
    root 3014 3009 61 Apr02 tty7 8-18:36:07 /usr/bin/X :0 -dpi 96 -audit 0 -auth /var/lib/gdm/:0.Xauth -nolisten tcp vt7

    j'ai bien "127.0.0.1 localhost" dans le hosts.
    comment interpréter le ps .... pour en extraire host:display.screen ?

  7. #7
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 264
    Points
    12 264
    Par défaut
    c'est le coup du xhost qui manque

Discussions similaires

  1. [Excel] XLS avec histogramme
    Par ericw78 dans le forum Documents
    Réponses: 4
    Dernier message: 19/03/2013, 15h26
  2. Impression du device avec directx et c#
    Par EPSFranck dans le forum DirectX
    Réponses: 2
    Dernier message: 06/04/2011, 10h41
  3. impression en paysage avec un css
    Par amarcil dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 15/04/2006, 17h54
  4. Création XLS avec histogramme
    Par ericw78 dans le forum Documents
    Réponses: 5
    Dernier message: 07/02/2006, 09h29
  5. Journal de sauvegarde avec crontab
    Par prefna dans le forum Administration système
    Réponses: 3
    Dernier message: 29/11/2005, 15h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo