Gros problème avec la commande at :

-RoRo- Messages postés 103 Statut Membre -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour, je n'arrive pas à utiliser la commande at et pourtant ça fait une semaine que je cherche à l'exécuter. Tout, d'abord, j'ai feuilleté à multiple reprises les pages du man at et ensuite, j'ai regardé parout sur le net et je n'ai rien trouvé. Mon script consiste à envoyé un texte vers le .bashrc sans oublier qu'il y a plusieurs messages à exécuter pour différentes heures ( plusieurs script du style ci-dessous). Bref, j'espère enfin trouvé la solution grâce à votre aide car je galère énormemment. Voici le script que j'ai écrit :

#!/bin/bash
at 21:12
echo ' message' >>.bashrc
exit 0

Comme vous pouvez le constater, le script est court mais c'est la commande at qui me pose de très gros ennuis.
AIDEZ MOI SVP

Merci
Configuration: Windows Vista
Internet Explorer 7.0

16 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello

    vérifier les fichiers /etc/at.allow et /etc/at.deny

    #!/bin/bash
    at 21:12 << EOF
    echo ' message' >>.bashrc
    exit 0
    EOF

    pour vérifier
    atq
    0
  2. -RoRo- Messages postés 103 Statut Membre 1
     
    Salut, tout d'abord, merci pour ta réponse. J'ai donc vérifié la présence de at.allow et at.deny dans le répertoire etc et je ne distingue aucune présence de ces fichiers. Que faire alors ? Est ce important pour le fonctionnement du programme ?
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    voila le rôle de ces fichiers, voir la man page:
    Si le fichier /etc/at.allow existe, seuls les utilisateurs
    dont les noms sont mentionnés dans ce fichier peuvent
    utiliser at.

    Si /etc/at.allow n'existe pas, at vérifie si /etc/at.deny
    existe, et tous les utilisateurs non-mentionnés dans ce
    fichier ont le droit d'invoquer at.

    Si aucun de ces deux fichiers n'existe, seul le Super-
    utilisateur a le droit d'appeler at.

    Un fichier /etc/at.deny vide signifie que tous les util­
    isateurs ont le droit d'appeler ces commandes, c'est la
    configuration par défaut.
    0
  4. -RoRo- Messages postés 103 Statut Membre 1
     
    Alors, je me suis connecté en su et j'ai enregistré le script que tu as écrit sur le forum :

    #!/bin/bash
    at 12:28 << EOF
    echo ' message' >>.bashrc
    exit 0
    EOF

    lorsque j'exécute moi même ce script, le terminal m'affiche :
    root@rodolphe-laptop:/home/rodolphe/Documents/scriptshell/PINAPS# ./testat.sh
    warning: commands will be executed using /bin/sh
    job 37 at Sun Dec 28 12:28:00 2008

    et lorsque le temps est écoulé, je réexécute le script et ça me donne :

    root@rodolphe-laptop:/home/rodolphe/Documents/scriptshell/PINAPS# ./testat.sh
    warning: commands will be executed using /bin/sh
    job 37 at Sun Dec 28 12:28:00 2008

    Je regarde donc mon fichier .bashrc et rien n'apparaît, mon fichier est vide. Pourtant, je suis bien connecté en mode super utilisateur ( su ).
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Salut,

      Depuis où lances-tu ton script ?

      Si tu t'es connecté en tant que root avec la commande "su", tu es bien passé root, mais tu es resté dans l'environnement "$USER", autrement dit si tu étais dans le /home/$USER" tu est toujours dans ce répertoire. Voir Utiliser la commande "su"

      Autre chose, si tu exécutes ton script depuis "home/rodolphe/Documents/scriptshell/PINAPS", le "echo ' message' >>.bashrc " enverra "message" dans un fichier .bashrc qui sera créé dans le répertoire courant, autrement dit : /PINAPS

      ;-)
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    il faut attendre dimanche 12h 28 !!!!!
    que répond atq ?

    il est 12h
    si je lance une commande at 11:00 elle s'exécutera demain à 11h,si je la lance at 13:00 elle s'exécutera à 13h aujourd'hui
    0
  7. -RoRo- Messages postés 103 Statut Membre 1
     
    Ah, ok ! Je pensais que lorsqu'il est 11h00 et que l'on tape at 12:00, que la commande s'exécutera à 12h le même jour.
    voici ce que j'ai dans mon atq :

    root@rodolphe-laptop:/home/rodolphe/Documents/scriptshell/PINAPS# atq
    34 Sun Dec 28 12:24:00 2008 a root
    37 Sun Dec 28 12:28:00 2008 a root
    36 Sun Dec 28 12:25:00 2008 a root
    28 Sun Dec 28 11:25:00 2008 a rodolphe
    38 Sun Dec 28 12:28:00 2008 a root
    30 Sun Dec 28 11:30:00 2008 a rodolphe

    Je vous donnerai des nouvelles demain...
    0
  8. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    pour faire des tests, tu peux lancer une commande at:
    at now+3minutes
    0
  9. -RoRo- Messages postés 103 Statut Membre 1
     
    J'ai essayé la commande at now+3minutes et ça ne fonctionne pas
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Qu'est-ce qui ne fonctionne pas ? La modification du fichier ?

      As-tu tenu compte de ce message ?
      0
  10. -RoRo- Messages postés 103 Statut Membre 1
     
    Euh... non, j'ai oublié. J'ai donc mis mon petit programme

    #! /bin/bash
    at now+2minutes
    echo "message"
    exit 0

    le tout dans mon home et non dans le répertoire utilisateur.
    0
  11. -RoRo- Messages postés 103 Statut Membre 1
     
    Et ça ne fonctionne toujours pas...
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Tu peux essayer comme ça :
      #! /bin/sh
      
      at now + 1 minutes <<EOF >/dev/null 2>&1
      echo "Bonjour" > new_fich
      EOF
      ;-))
      0
  12. -RoRo- Messages postés 103 Statut Membre 1
     
    c'est bizzare, ça ne fonctionne toujours pas :
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Enlèves le ">/dev/null 2>&1" dans le script, lances ton script et affiches ce qui sort...
      0
  13. -RoRo- Messages postés 103 Statut Membre 1
     
    Merci de m'aider. Alors, lorsque la minute est écoulée, rien ne se passe. J'exécute manuellement mon script avant et après que la minute soit écoulée et ça m'affiche :

    root@rodolphe-laptop:/home# ./test.sh
    warning: commands will be executed using /bin/sh
    job 42 at Sun Dec 28 15:44:00 2008
    root@rodolphe-laptop:/home# ./test.sh
    warning: commands will be executed using /bin/sh
    job 43 at Sun Dec 28 15:45:00 2008
    root@rodolphe-laptop:/home#
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Donc tu n'as aucun fichier du nom de "new_fich" contenant "Bonjour" de créer dans le répertoire d'où tu lances le script ?
      0
  14. -RoRo- Messages postés 103 Statut Membre 1
     
    ah si !
    0
  15. -RoRo- Messages postés 103 Statut Membre 1
     
    Attends, je réessaie car j'avais exécuter le script manuellement en tapant ./test.sh
    0
  16. -RoRo- Messages postés 103 Statut Membre 1
     
    Finalement, ça ne fonctionne pas. Ca fonctionne si j'exécute le script en tapant ./test.sh
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Attends là, y'a un truc que je ne pige pas ;-\

      Ca fonctionne si j'exécute le script en tapant ./test.sh
      Et tu voudrais que ça fonctionne comment ?
      0
  17. -RoRo- Messages postés 103 Statut Membre 1
     
    en laissant at dans le script, si j'exécute en tapant ./test.sh ça fonctionne. Mais je voudrai que le at fonctionne !
    Je t'ai dis ça car tu me demandais :
    "lances ton script et affiches ce qui sort... "
    0
    1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Bon je ne comprends plus rien là ;-((

      Avec ce script (foo.sh) :
      #! /bin/sh
      
      at now + 1 minutes <<EOF
      echo "Bonjour" > new_fich
      EOF
      et en le lançant :
      ./foo.sh
      Qu'est-ce qui se passe ?
      0